Hi,
I've just hit a problem when using git-svnimport to import a big subversion repository: it doesn't import correctly a commit when the commit renames (or copies) and modify a file at the same time.
At the bottom of this message, there is a script that reproduces the bug.
The result of the final 'diff' command on the script is:
diff -u --exclude .git --exclude .svn checkout/universe.py git/universe.py --- checkout/universe.py 2006-02-14 14:55:37.000000000 -0200 +++ git/universe.py 2006-02-14 14:55:38.000000000 -0200
@@ -1 +1 @@ -print "Hello, universe!" +print "Hello, world!" git-svnadmin is just taking the original version of the file when the commit has a 'file copy', even if this copy was modified before the commit. However I can't see a way to fix this problem without making the script ignore completely the the "copied from" information from the svn commits (and always fetching the resulting files from the repository). It seems that subversion doesn't tell us if the copied file was changed (or this information is hidden somewhere else).
-- Eduardo #!/bin/sh set -e mkdir repos svnadmin create $PWD/repos repos=file://$PWD/repos svn mkdir $repos/trunk -m 'creating trunk' svn co file://$PWD/repos/trunk checkout cd checkout cat >hello.py <<EOF print "Hello, world!" EOF svn add hello.py svn commit -m 'adding hello.py' svn mv hello.py world.py svn commit -m 'renaming to world.py' svn mv world.py universe.py sed -i -e 's/world/universe/' universe.py svn commit -m 'universe, now' cd .. mkdir git cd git git svnimport $repos cd .. diff -u --exclude .git --exclude .svn checkout git # will report differences