[cvsnt] Branches for multiple applications using common modules
Dieter Rapp
dieter.rapp at de.opel.com
Tue Apr 5 14:53:37 BST 2005
Hello,
I'm using CVS-NT to archive a set of related applications. Although each
application has got its own pool of source files, there are many files
used commonly. Hence, I put the common source files into an own module
while keeping the other files together in application specific modules.
Introducing alias modules, I'm able to combine the files from the common
module with the files from the application specific modules. That's
working pretty fine. However, I'm now running into the situation that when
developing a certain application I had to change common files. These
modifications, however lead to inconsistencies with the other applications
to that those could no longer compile with the head of the common files.
To solve that problem I introduced application specific branches like e.g.
"B-Application1", "B-Application2", etc. With that approach I'm able to go
ahead change common files for Application1 while still allowing
Application2 and all others to use the old files. However, the drawback of
that solution is that revision differences in the archives are stored
multiple times.
Example:
Application1 causes a modification to CommonFile1.h
-> The archive CommonFile1.h,v stores the differences caused by
Application1
After I while, I'm going to use the newest set of common files for the
remaining applicatios, too. Hence, I have to merge them into the various
branches. Using the new common file may cause inconsistencies and I need
to adapt the application's files to compile again before I can commit
everything.
When committing CommonFile1.h to "B-Application2", CVS detects
modifications which actually have been caused by Application1 a while ago.
-> The archive CommonFile1.h,v now contains the differences caused by
Application1 a second time
When committing CommonFile1.h to "B-Application3", CVS again detects the
same modifications.
-> The archive CommonFile1.h,v now contains the differences caused by
Application1 a third time
....
Although CVS still works, it was not my intention to "split" source files
in a lot of branches which in most cases have identical heads.
Is there a way to check out a consistent set of files from several modules
which are not the head? I know that tags can be used to keep consistent
files together. But checking out a tag leads to a sticky project (a
problem branches don't have).
Thanks for comments.
Best regards,
Dieter Rapp
More information about the cvsnt
mailing list