Re: cvs2svn conversion directly to git ready for experimentation
- From
Steffen Prohaska <prohaska@zib.de>
- Date
- Aug 2, 2007, 22:02 UTC
- Message-ID
- <6715F560-FE69-4F15-8C5F-B5B6071D97ED@zib.de>
- In-Reply-To
- <46B2309E.3060804@fs.ei.tum.de>
Simon,
On Aug 2, 2007, at 9:29 PM, Simon 'corecode' Schubert wrote:
Show 9 quoted lines
> Steffen Prohaska wrote: >> I remember that togit reported a broken pipe. My feeling was >> that git-fastimport aborted, which may be reason why tohg >> worked better. I didn't try to understand more details. I never >> read ruby code before and it was already a challenge for me to >> get everything up and running (rcs, rbtree). > > yah, that pretty much tells me it is shawn's bug :) but without > more details, it is very hard to diagnose.
I tried again. Interestingly now togit works but tohg still fails.
togit starts with reporting
fatal: Not a valid object name
as the first line. But besides that it seems to work fine. What concerns me a bit is that the last line togit reports is
committing set 18100/18173
I'd expect it should report 18173/18173. The rest are git-fast-import statistics.
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.
> tohg should tell you which rcs revs are the offenders. be sure to > use a recent fromcvs however.
tohg fails (on the same repo that togit imported) with the following error
Traceback (most recent call last):
File "./tohg.py", line 102, in <module>
destrepo.dispatch()
File "./tohg.py", line 98, in dispatch
func(*l[1:])
File "./tohg.py", line 78, in cmd_commit
extra = {'branch': branch})
File "/sw/lib/python2.5/site-packages/mercurial/localrepo.py",
line 736, in commit
mn = self.manifest.add(m1, tr, linkrev, c1[0], c2[0], (new,
remove))
File "/sw/lib/python2.5/site-packages/mercurial/manifest.py", line
191, in add
_("failed to remove %s from manifest") % f)
AssertionError: failed to remove X/Y.cpp from manifest
transaction abort!
rollback completed
./tohg.rb:200:in `readline': End of file reached while handling set
[core/X/Y.cpp,v:1.19,core/X/Z.cpp,v:1.22,core/X/Attic/W,v:1.12]
(EOFError)
from ./tohg.rb:200:in `_commit'
from ./tohg.rb:154:in `commit'
from ./fromcvs.rb:894:in `commit'
from ./fromcvs.rb:965:in `commit_sets'
from ./tohg.rb:228The versions I used are listed below. I adjusted tohg a bit to use python 2.5 installed by fink. I'm working on Mac OS X.
$ cd fromcvs $ hg tip changeset: 103:cccdab84e9e5 tag: tip user: Simon 'corecode' Schubert <corecode@fs.ei.tum.de> date: Mon Jul 16 23:49:52 2007 +0200 summary: Add error handling on committing sets. $ hg diff diff -r cccdab84e9e5 tohg.rb
--- a/tohg.rb Mon Jul 16 23:49:52 2007 +0200 +++ b/tohg.rb Fri Jul 20 17:06:30 2007 +0200 @@ -60,7 +60,7 @@ class HGDestRepo @status = status @outs, @ins = \ - Open2.popen2('python', File.join(File.dirname($0), 'tohg.py'), hgroot) + Open2.popen2('python2.5', File.join(File.dirname($0), 'tohg.py'), hgroot) @last_date = Time.at(@ins.readline.strip.to_i) @branches = {} while l = @ins.readline do $ cd rcsparse $ hg tip changeset: 37:e871e108f2e4 tag: tip user: Simon 'corecode' Schubert <corecode@fs.ei.tum.de> date: Sun Feb 18 15:46:29 2007 +0100 summary: Return revision date in GMT, like RCS/CVS uses everywhere. rbtree-0.2.0.tar.gz ruby 1.8.2 (2004-12-25) [universal-darwin8.0] $ cd git $ git describe master v1.5.3-rc3-120-g68d4229 $ hg --version Mercurial Distributed SCM (version 0.9.3) Copyright (C) 2005, 2006 Matt Mackall <mpm@selenic.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ /sw/bin/python2.5 --version Python 2.5.1 Hope this helps. Steffen