git-svn changing file:// to svn+ssh://
I'm working on preparing Git SVN mirrors.
I had tested my procedure on a small project and it was working fine.
On a large project it is failing. Here is what I have done:
I have cloned the repository using:
$ git svn clone --prefix=svn/ file:///path/repo \ --revision=15314:HEAD --trunk=trunk/project \ --tags=tags/project --branches=branches/project \ --branches="branches/global/*/project" project
Not simple, ok but working :)
Now I have converted the file:// to svn+ssh:// using:
$ git gc
$ git filter-branch --msg-filter \
'sed "s,git-svn-id: file:///path/repo,git-svn-id:
svn+ssh://server/repo,g"' \
$(cat .git/packed-refs | awk '// {print $2}' | grep -v 'pack-refs')$ rm -fr .git/svn
I have edited .git/config to change the url string too.
Up to there, no problem. But when trying to rebase and reconstruct all rev_map files with:
$ git svn rebase
I get the following lines again and again:
Rebuilding .git/svn/svn/trunk/.rev_map.f8352e7e-cb20-0410-8ce7-b5d9e71c585c ... Done rebuilding .git/svn/svn/trunk/.rev_map.f8352e7e-cb20-0410-8ce7-b5d9e71c585c Rebuilding .git/svn/svn/trunk/.rev_map.f8352e7e-cb20-0410-8ce7-b5d9e71c585c ... Done rebuilding .git/svn/svn/trunk/.rev_map.f8352e7e-cb20-0410-8ce7-b5d9e71c585c
...
The file .git/svn/svn/trunk/.rev_map.f8352e7e-cb20-0410-8ce7-b5d9e71c585c is in fact not created.
What could be wrong?
How should I proceed to debug this?
Any help appreciated.
Last note I've tried all this with Git 1.6.4 and 1.6.5.
Thanks,
Pascal.
Signature · 8 lines
--|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://www.obry.net - http://v2p.fr.eu.org --| "The best way to travel is by means of imagination" --| --| gpg --keyserver keys.gnupg.net --recv-key F949BD3B
Quoted 4 lines · Pascal Obry
On a large project it is failing. Here is what I have done:
I have cloned the repository using:
Quoted 8 lines
$ git svn clone --prefix=svn/ file:///path/repo \ --revision=15314:HEAD --trunk=trunk/project \ --tags=tags/project --branches=branches/project \ --branches="branches/global/*/project" projectNot simple, ok but working :)
Now I have converted the file:// to svn+ssh:// using:
I'm not sure about the actual bug you're experiencing, but you could have done this more simply using the --rewrite-root option to git-svn.
It might still save you time to just do that from scratch.
If you really want to debug it, you might want to run it through 'strace' and see if it's having any trouble creating those files.
Have fun,
Avery
Quoted 5 lines · Avery Pennarun
Quoted 1 line
Now I have converted the file:// to svn+ssh:// using:
I'm not sure about the actual bug you're experiencing, but you could have done this more simply using the --rewrite-root option to git-svn.
It might still save you time to just do that from scratch.
Another thing: if your file:// repository was copied from the original location using SVN::Mirror or svnsync, then git-svn is capable of reading the breadcrumbs left by those tools with a switch and rewriting the git-svn-id: lines accordingly.
Sam