Using git-svn with svnsync mirror

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Using git-svn with svnsync mirror

From: Phillip Hutchings <hidden>
Date: 2016-06-15 22:50:03

Hi,

I've got an svnsync mirror of a large repository, and I'm trying to do
a git-svn clone from the mirror as the main server is off site. This
works well until I try to dcommit or use git svn info.

My investigations show that working_head_info in git-svn doesn't
account for using svnsync properties, so it cannot find a log entry
that matches a config entry.

My perl isn't good enough to patch this yet, so I was wondering if
anyone else had encountered it.

I could change the config URL to match, but I'm worried this will
break things.

Re: Using git-svn with svnsync mirror

From: Tim Stoakes <hidden>
Date: 2016-06-15 22:50:03

Phillip Hutchings(sitharus@sitharus.com)@161110-02:08:
Hi,

I've got an svnsync mirror of a large repository, and I'm trying to do
a git-svn clone from the mirror as the main server is off site. This
works well until I try to dcommit or use git svn info.

My investigations show that working_head_info in git-svn doesn't
account for using svnsync properties, so it cannot find a log entry
that matches a config entry.

My perl isn't good enough to patch this yet, so I was wondering if
anyone else had encountered it.

I could change the config URL to match, but I'm worried this will
break things.
You want to use rewriteRoot option so that changing the URL does not
break things (the URL is stored in each git commit's log).

I use something like this all the time:
[svn-remote "svn"]
  rewriteRoot = svn://svn.foo.com/repo/blah   <-- the master
  url = svn://svn-mirror.foo.com/repo/somewhere/else/blah  <-- a slave

If you've imported from the mirror without this option, then you're
stuck I think. You could work around it by swapping the URLs in the
rewriteRoot and url fields (essentially rewriting the URLs in the wrong
order), but this is strictly 'wrong'.

Tim

-- 
Tim Stoakes

Re: Using git-svn with svnsync mirror

From: Phillip Hutchings <hidden>
Date: 2016-06-15 22:50:03

On 16/11/2010, at 5:23 PM, Tim Stoakes wrote:
Phillip Hutchings(sitharus@sitharus.com)@161110-02:08:
quoted
Hi,

I've got an svnsync mirror of a large repository, and I'm trying to do
a git-svn clone from the mirror as the main server is off site. This
works well until I try to dcommit or use git svn info.

My investigations show that working_head_info in git-svn doesn't
account for using svnsync properties, so it cannot find a log entry
that matches a config entry.

My perl isn't good enough to patch this yet, so I was wondering if
anyone else had encountered it.

I could change the config URL to match, but I'm worried this will
break things.
You want to use rewriteRoot option so that changing the URL does not
break things (the URL is stored in each git commit's log).

I use something like this all the time:
[svn-remote "svn"]
 rewriteRoot = svn://svn.foo.com/repo/blah   <-- the master
 url = svn://svn-mirror.foo.com/repo/somewhere/else/blah  <-- a slave

If you've imported from the mirror without this option, then you're
stuck I think. You could work around it by swapping the URLs in the
rewriteRoot and url fields (essentially rewriting the URLs in the wrong
order), but this is strictly 'wrong'.

I cloned using --use-svnsync-props, this resulted in the log entries
having the correct url to the master, but git-svn being unable to
link that url back to the config entry.

Guess I'm in for a recloning then.

--
Phillip Hutchings
sitharus@sitharus.com


Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help