views:

119

answers:

7

I am working with four developers on a compiler project. Our problem: we have yacc file (about 5000 line of code) , and every one of us has some changes on this big code so we need a method to merge our changes.

What do we need to do that?

How we can do that?

+2  A: 

You can use TortoiseSVN. Here's a getting started guide if you're new to Subversion.

J. Vermeire
+6  A: 

You need a source code management system. Whether it be git, subversion, bzr, Visual SourceSafe, Perforce, or whatever. (Don't start using cvs or rccs, though. Those are beyond their usefulness for newly started projects.)

Christopher Creutzig
that's pretty obvious essential part. Still, even with good source control program, 4 people working on one file simultaneously can change into nightmare as automatic merges go wrong. And they will.
SF.
Automatic merges can and will fail. Fixing the clashes in an automated merge is, in my experience, still less work than merging everything manually, though. Obviously, if you can split the work or the code better, that saves effort.
Christopher Creutzig
+1  A: 

1) don't allow for "huge changes". Change by little, incrementally, often. 2) within a team of 4 people, arrange work pieces not to tread on each others' toes. 3) Merge Often.

If possible, split the file into smaller ones for development, join after it's done.

SF.
A: 

First , I don't know if it is possible in yacc , but if so then I recommand that you disassemble the file to several files . This will reduce the possibility the same file is changed by several developers at the "same time".

To share code , You can use TutoiseSVN as a Source control.

A: 

A source code management system is indeed the way to go.

Subversion (SVN) is frequently used (and efficient) but you might also consider using git, which is better (imho) when it comes to do some "offline" work and merge the code later.

The choice is yours.

ereOn
A: 

You have to use Source Control.

If you and your team are Dot Net developers so it is better to get started with Team Foundation Server (TFS) which microsoft supports it. and distribute it with VS2010.

If you and your team are Java developers so it is better to use GIT (or SVN)

There are so many Source control which you can use andbased on your platform it is better to use different source control

Nasser Hadjloo
A: 

I would drop a Continuous Integration server like Hudson into the mix so each commiter is aware when he/she broke the code with the change.

javydreamercsw