[OT] Anyone w/ svn->git experience and advice?

Nick Sabalausky a at a.a
Thu Jan 12 19:32:25 PST 2012


I apologize for going so far offtopic with this. But I've taken this to the 
git mailing list, and after working on it for days it's still not working 
and I'm just about pulling my hair out. What makes it even more frustrating 
is that when I attempted SVN->Hg and SVN->Bzr, those were even *more* 
problematic (especially Bzr).

I know DMD made the switch from SVN to Git at one point, so I'm hoping 
someone here might be able to help out before I finally go nuts:

Summary:
--------------

I'm trying to use "git svn clone --preserve-empty-dirs ..." (Git v1.7.8.3, 
Linux) but after it gets through only a fraction of the revisions, it just 
bails with some cryptic:

On one SVN repo:
Failed to strip path 'bin/lang/.gitignore' ((?-xism:^trunk(/|$)))

On the other SVN repo:
Failed to strip path 'src/nonFatalAssertTest/.gitignore' 
((?-xism:^trunk(/|$)))


The Full Picture:
-------------------------

I want to convert these to Git:

http://svn.dsource.org/projects/semitwist
http://svn.dsource.org/projects/goldie

Notes:

- Goldie has some tags.
- Neither repo has branches.
- Being SVN, I wasn't shy about including required empty dirs in the repo 
(since every F&*#&$@ filesystem on the G*#$*%^$ planet handles them fine.) I 
need to keep these.
- For awhile I had been including compiled binaries in the repo. Don't ask 
me why, I just did :) I need to remove these.
- Obviously not interested in preserving the "downloads" directory (just a 
DSource-ism anyway).
- Both repos are small enough that known-to-be-slow git-svn should still be 
plenty fast enough for this task.

I did get some help at the git mailing list:
http://git.661346.n2.nabble.com/SVN-gt-Git-but-with-special-changes-td6840904.html

They showed me how to strip the binaries from the Git repo after it's 
converted (although I haven't gotten that far yet). And I've found some 
tutorials that help out with the author conversions, etc. The problem is 
actually converting the dang repos, and doing it while preserving tags and 
*all* directories (not just the ones that Git's decided are worthy of 
existing). But like I said above, git-svn is just crapping out:

$ git svn clone 
http://svn.dsource.org/projects/semitwist --prefix=svn/ --preserve-empty-dirs - 
-authors-file=semitwistdtools-authors.txt  --trunk=trunk --tags=tags 
SemiTwistDTools
...the first few revisions (out of 242 total) here...
r46 = 61d45b1e70c129a5096bb35686f0d024786c1204 (refs/remotes/svn/trunk)
        A       cmdTest.pnproj
Failed to strip path 'src/nonFatalAssertTest/.gitignore' 
((?-xism:^trunk(/|$)))

$ git svn clone 
http://svn.dsource.org/projects/goldie --prefix=svn/ --preserve-empty-dirs --authors-file=goldie-authors.txt   
--trunk=trunk --tags=tags Goldie
...the first few revisions (out of 557 total) here...
r85 = 60d792abf9957f41f70d7ae399fee7ecda0b66f1 (refs/remotes/svn/trunk)
        M       README.txt
Failed to strip path 'bin/lang/.gitignore' ((?-xism:^trunk(/|$)))




More information about the Digitalmars-d mailing list