Re: cvs2svn conversion directly to git ready for experimentation
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Aug 2, 2007, 23:50 UTC
- Message-ID
- <46B26DA8.6010102@alum.mit.edu>
- In-Reply-To
- <46B25FC3.6000205@fs.ei.tum.de>
Simon 'corecode' Schubert wrote:
Show 10 quoted lines
> Steffen Prohaska wrote: >> BTW, togit creates much more complex branching patterns than cvs2svn >> does. The attached file branching.png displays a small view of a >> branching pattern that extends downwards over a couple of screens. >> I checked the cvs2svn history again. It doesn't contain anything >> of similar complexity. > > haha yea, there is still some issue with duplicate branch names and the > branchpoint. if it doesn't get the branch right, it will always "pull" > files from the parent branch.
This sounds very much like the problem reported by Daniel Jacobowitz [1]. The problem is that if you create a branch A on a file, then create branch B from branch A before making a commit on branch A, then CVS doesn't record that branch A was the source of branch B. (It treats B as if it sprouted directly from the revision that was the *source* of branch A.) The same problem exists if "B" is a tag.
The only way to determine the correct branch hierarchy is to consider the branch hierarchy of multiple files at the same time.
cvs2svn 2.0 includes code to choose a "preferred parent" of each branch and try to use that parent for every file that is on the branch. It helps simplify branch creation quite a bit. The main limitation is that it still doesn't consider the revision copied back to trunk from a vendor branch as the possible parent of a branch whose nominal source was on the vendor branch (a limitation that has come up elsewhere in this thread).
Michael
[1] http://cvs2svn.tigris.org/servlets/ReadMsg?list=dev&msgNo=1441