Re: git-svnimport.perl bug when copy source path has a revision
- From
- Pete Harlan <pgit@pcharlan.com>
- Date
- Oct 16, 2008, 06:43 UTC
- Message-ID
- <48F6E29F.1050807@pcharlan.com>
- In-Reply-To
- <quack.20081015T1211.lth8wsp65dk@roar.cs.berkeley.edu>
Karl Chen wrote:
Show 32 quoted lines
> This looks like a bug in git-svnimport.perl. If a tag (or > branch?) is created retroactively, git-svnimport doesn't respect > the copy source revision. > > To reproduce: > > svnadmin create somerepo; export R=file://$PWD/somerepo > > svn co $R wc && cd wc > > mkdir trunk tags && svn add trunk tags && svn commit -m "" # rev 1 > > cd trunk > echo a > a > echo b > b > echo c > c > > svn add a && svn commit -m "commit a" # rev 2 > svn add b && svn commit -m "commit b" # rev 3 > # Copy from revision 2 instead of HEAD: > svn cp -m "tag rev 2" $R/trunk@2 $R/tags/mytag # rev 4 > svn add c && svn commit -m "commit c" # rev 5 > > svn ls $R/tags/mytag > # Lists only 'a' > > mkdir /tmp/gitrepo && cd /tmp/gitrepo > perl /usr/share/doc/git-core/contrib/examples/git-svnimport.perl $R > > git log mytag > # 'mytag' includes "commit b"; it was created as if it were tagged > # at r3; the "@2" was ignored.
If you replace this:
> perl /usr/share/doc/git-core/contrib/examples/git-svnimport.perl $R
with:
git svn init -T trunk -t tags $R git svn fetch git log tags/mytag
you get a log that doesn't include "commit b". (And it does include the tag commit, as svn does.) tags/mytag is a branch, visibile via "git branch -r", instead of a tag. I'm not fluent enough in git svn to know if this is a bug or a feature.
According to git logs (8cb070a4, fee9832a), git-svnimport.perl hasn't been maintained in a while, presumably because git svn provides a superset of its functionality.
HTH,
--Pete