git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: CVS -> SVN -> Git

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Jul 15, 2007, 11:48 UTC
Message-ID
<469A099E.6060906@alum.mit.edu>
In-Reply-To
<7154c5c60707141623s3f70e967s226e5da29965a173@mail.gmail.com>
David Frech wrote:
Show 8 quoted lines
> I have a modest svn repo (about 800 commits) that contains fifteen or
> so small projects. It started life as a CVS repo, and as the projects
> grew and changed, and as I learned more about CVS, things got moved
> around. Later, when I got interested in svn (in 2005) I converted the
> repo, using cvs2svn. It got a few things wrong - mostly, that it
> thought there was one project in the repo, and created toplevel
> trunk/, branches/, and tags/ directories, and lumped everything below
> these.

I know this tangential to the main point of your post, but BTW multiproject conversions were added to cvs2svn in release 1.5.

> It took a day and half to get the svn dump parsing right (it's an
> egregiously bad format) but only a couple of hours to write the
> fast-import backend.

I'm surprised you think that; I find the svn dump format quite easy and straightforward. (Of course it assumes some Subversionisms, like easy deep directory copies, which I can imagine would be annoying in other contexts.) What don't you like about the format?

Show 7 quoted lines
> Having done all this, I realized that this is a good way to go.
> Separating, as Michael suggests, the "parsing" part from the "commit
> generating" part, not only makes the tools easier to write, but makes
> them more flexible. If hg or bzr had a git-like fast-import (maybe
> they do) it would take me about 35 minutes to target that instead. And
> in the process I came across some "missing features" in fast-import,
> which Shawn Pearce was able to quickly add.

Yes, fast-import is a very easy-to-write format and looks to be very well documented. I don't think that having to write output in fast-import format would be any kind of a hindrance for such a tool.

Michael
Previous: Shawn O. PearceNext: Martin Langhoff
Message 16 of 31 in “CVS -> SVN -> Git”
  1. Julian PhillipsJul 13, 2007
  2. Michael HaggertyJul 13, 2007
  3. Martin LanghoffJul 14, 2007
  4. Michael HaggertyJul 14, 2007
  5. Chris ShoemakerJul 14, 2007
  6. Michael HaggertyJul 14, 2007
  7. Steffen ProhaskaJul 14, 2007
  8. Shawn O. PearceJul 15, 2007
  9. Eric S. RaymondJul 14, 2007
  10. Junio C HamanoJul 14, 2007
  11. Oswald BuddenhagenJul 14, 2007
  12. Michael HaggertyJul 14, 2007
  13. Karl FogelJul 14, 2007
  14. David FrechJul 14, 2007
  15. Shawn O. PearceJul 15, 2007
  16. Michael HaggertyJul 15, 2007
  17. Martin LanghoffJul 16, 2007
  18. Julian PhillipsJul 16, 2007
  19. Karl FogelJul 16, 2007
  20. Eric S. RaymondJul 15, 2007
  21. Michael HaggertyJul 15, 2007
  22. Eric S. RaymondJul 15, 2007
  23. Martin LanghoffJul 16, 2007
  24. Markus SchiltknechtJul 19, 2007
  25. Karl FogelJul 20, 2007
  26. Simon 'corecode' SchubertJul 19, 2007
  27. Markus SchiltknechtJul 20, 2007
  28. Scott LambJul 15, 2007
  29. Simon 'corecode' SchubertJul 19, 2007
  30. Simon 'corecode' SchubertJul 19, 2007
  31. Julian PhillipsJul 20, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.