Skip to contentSkip to conversation

git-svn changing file:// to svn+ssh://

DISCUSSION Pascal Obry 3 participants 3 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw
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" project

Not 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

#2 lore raw
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