Re: reviving a git-svn clone
- From
Sam Vilain <sam@vilain.net>
- Date
- Apr 21, 2009, 06:51 UTC
- Message-ID
- <1240296712.3424.8.camel@maia.lan>
- In-Reply-To
- <20090420104316.GA11433@lapse.rw.madduck.net>
On Mon, 2009-04-20 at 12:43 +0200, martin f krafft wrote:
Show 5 quoted lines
> I am now trying to revive the clone, but git-svn remains "unable to > determine the upstream SVN information from the working tree > history". This baffles me. > > Here are my steps:
Show 15 quoted lines
> -8<--8<--8<- > alioth:~|master|% git clone /git/collab-maint/hibernate.git hibernate-svnsync > Initialized empty Git repository in /srv/alioth.debian.org/chroot/home/users/madduck/hibernate-svnsync/.git/ > > alioth:~|master|% cd hibernate-svnsync > > alioth:~/hibernate-svnsync|master|% git branch --no-track upstream origin/upstream > > alioth:~/hibernate-svnsync|master|% cat >> .git/config <<_eof > heredoc> [svn-remote "svn"] > heredoc> url = svn+ssh://svn.suspend2.net/svn/hibernate-script > heredoc> fetch = trunk:refs/remotes/upstream/trunk > heredoc> branches = branches/*:refs/remotes/upstream/* > heredoc> tags = tags/*:refs/remotes/upstream/tags/* > heredoc> _eof
for git-svn to resume, it needs the refs all in the right place. If you clone a git-svn repository they will be in the wrong place.
eg for this use case something like this to copy the refs/remotes/origin/* refs to refs/remotes/upstream/*:
git for-each-ref --format="%(refname)" refs/remotes/origin/* |
perl -le '$x = $_; $x =~ s{origin}{upstream};
system "git update-ref $x $_"'It's a bit hard to test without access to the upstream svn!
Good luck, Sam.