|From:||ATD Hill, Bruce|
|Subject:||Re: How to avoid conflicts avalanche|
|Date:||Tue, 26 Jun 2001 10:59:31 -0700|
On Tue, 26 Jun 2001, Sergiy wrote:
> Our software has different modifications for different countries. Thus
> in our cvs repository we have the main development trunk, and country
> branches. When we cut a new major release on the trunk, we need to merge
> from the trunk to all country branches. These merges result in a large
> number of conflicts. It requires time and significant programming
> efforts to resolve those conflicts.
> One way to avoid this is to do interim merges regularly. The other way
> could be to pursue developers to use some script which automatically
> does the merge to country branches every time they commit to the trunk.
> But they often forget to follow such procedures, and apparently CVS
> doesn't have any way of enforcing this automatically.
It may be too late for your project, but it seems to me that you're using
the wrong tool for the job. CVS branches work well for experimental work
which you intend to merge back into the main branch if successful. Using
CVS branches for multiple variations of a single release guarantees conflict
resolution will be part of your development cycle. A better approach is to
localize such variations using an abstraction layer and maintain a separate
version of the abstraction layer files for each variation of your release.
This requires more design time but will pay off big in the long run.
We've used this approach with good success for OS abstraction, HW abstraction,
Just my 2 cents ...
- Bruce Hill
Staff Software Engineer
ATD - Azad Technology Development
2953 Bunker Hill Lane, Suite 201
Santa Clara, CA 95054
|[Prev in Thread]||Current Thread||[Next in Thread]|