Hi there,
I'm currently preparing our move from CVS to SVN. We've got a rather
large application consisting of several modules some of which are
specific for some customers.
Our repository will look like this:
/trunk/core-module
/trunk/xyz-module
/trunk/customerABC-module-1 (several modules per customer)
/trunk/customerDEF-module-1
/branches/customerABC/solution1/1.0/core-module
/branches/customerABC/solution1/1.0/xyz-module
/branches/customerABC/solution1/1.0/customer1-module1
/branches/customerABC/solution1/1.1/core-module
/branches/customerABC/solution1/1.1/xyz-module
/branches/customerABC/solution1/1.1/customer1-module1
/branches/customerDEF/solution2/1.0/core-module
/branches/customerDEF/solution2/1.0/xyz-module
/branches/customerDEF/solution2/1.0/customer2-module1
So, we only get some of the modules (read: subdirectories) of /trunk in
the customer branches. When converting using cvs2svn it generates SVN
commits like this:
add /branches/customerABC/solution1/1.0/ (copy from /trunk)
delete /branches/customerABC/solution1/1.0/customer2-module
Of course, when reintegrating to trunk, I'm guaranteed to get a tree
conflict if anything has been changed there (and if not, the module gets
deleted which is even worse).
After the move to SVN, merging will not be a problem since I've created a
wrapper script which allows us to branch only certain modules (using SVN
copy with multiple sources). This has the disadvantage that the topmost
branch directory like /branches/customerDEF/solution2/1.0/ is not a
parent of /trunk/ but we can work around that by applying "svn merge" to
each module sequentially, then committing everything at once.
So back to my original question: How do I manage these kinds of merges?
- How do I avoid tree conflicts when merging trunk to branch and there are
changes in a module not present in the branch?
- How do I avoid merging back the "delete module" operation generated by
cvs2svn?
Thanks,
Tino.
--
"What we nourish flourishes." - "Was wir nähren erblüht."
www.tisc.de
Received on 2010-09-20 12:44:31 CEST