Subject: Re: git-svn clone on a central server

From: Bruno Harbulot <[email-masked]>
Date: Sun, 16 Mar 2008 14:47:11 +0000

Peter Harris wrote:
> On Sat, Mar 15, 2008 at 3:38 PM, Bruno Harbulot
> <[email-masked]> wrote:
>>  I'm trying to follow example 3 of the git-svn manpage, since I'd like to
>>  keep a "central" clone of a subversion repository (and rebase it
>>  regularly) on a server and work on local git repositories based on that
>>  server's git repository.
> ...
>>  I get this error:
>>
>>  $ git-svn rebase
>>  fatal: ambiguous argument 'HEAD': unknown revision or path not in the
>>  working tree.
> 
> You have to git reset --hard <branch> to create 'master' based on a
> particular svn branch, or git-svn won't know what to rebase.
> 
> I sent a documentation patch to this list back in February, but it
> appears to have been dropped. I should probably re-send it...
> 
> http://article.gmane.org/gmane.comp.version-control.git/72954

Thank you. This works. 'git reset --hard' was the key.

I've also managed to get it to work without '-s' (for just a 
sub-directory of the trunk) this way:
   ssh server "cd /pub && git svn clone -s 
http://svn.foo.org/project/trunk/subproject"
   mkdir subproject
   cd subproject
   git init
   git remote add origin server:/pub/subproject
   git config --add remote.origin.fetch +refs/remotes/*:refs/remotes/*
   git fetch
   git svn init http://svn.foo.org/project/trunk/subproject
# The following line creates a master branch
   git reset --hard origin/master
   git svn rebase

The way I'm planning to use this is to create a "central" bare 
repository on the server (by moving the '.git' directory and setting 
bare=true in the config file) that I would like to keep in sync with the 
original SVN repository (and also push by own branches).
I'd like then to pull these changes to my working copies of that central 
repository. I'm not quite sure how to update this central bare git 
repository (and then its clones) with the changes in the SVN repository 
upstream. (By the way, I'm not planning to 'dcommit' anything directly, 
just reading from this SVN.) Are there any recommendation on how to 
achieve this?

Best wishes,

Bruno.