Re: CVS -> SVN -> Git
- From
Eric S. Raymond <esr@thyrsus.com>
- Date
- Jul 15, 2007, 13:36 UTC
- Message-ID
- <20070715133655.GA9302@thyrsus.com>
- In-Reply-To
- <469A0D54.8010303@alum.mit.edu>
Michael Haggerty <mhagger@alum.mit.edu>:
Show 9 quoted lines
> For example, cvs2svn internally deduces which files should be added to a > given branch in a given commit. But the information cannot be output to > SVN in that form. Instead, cvs2svn has to figure out which > *directories* to copy to the branch directory, then which files to > remove from the copied directory (because they shouldn't have been > tagged), and which other files to copy from other sources. This extra > work, which is quite time- and space-consuming, is worse than pointless > when converting to git, because git has to invert the process to figure > out which individual files have to be tagged!
OK, that's a fair point. I might have known the showstopper would be somewhere near Subversion's tags-are-directories assumption. And this also neatly explains why I didn't see any problems or poor performance during my recent conversions; the projects I was lifting had no tags.
Show 6 quoted lines
> The interface between the two halves does not necessarily need to be a > serialized data stream; it could just as well be via the Python API that > is used internally by cvs2svn to access the reconstructed commits and > supporting databases. This would require the second half to be written > in Python, but otherwise would be very flexible and would avoid the need > to find a be-all serialized format.
Or...wait for it...the generator for the serialized format could be one of the back ends! Probably a good idea to have for debugging reasons, if nothing else.
-- <a href="http://www.catb.org/~esr/">Eric S. Raymond</a>