Re: git-svn: importing branches later

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

Re: git-svn: importing branches later

From: Seth Falcon <hidden>
Date: 2016-06-15 22:43:09

Karl Hasselström [off-list ref] writes:
On 2007-05-07 13:07:06 -0600, Michael Hendricks wrote:
quoted
Now I want to import the 'foo' branch from the same SVN repo without
grabbing all the branches. Any suggestions?
I seem to recall that just adding another "fetch" line to the git-svn
configuration in .git/config will do this for you.
Yes, this should work.  As long as you started out with a fairly
recent git (sorry, I don't know how recent is needed) you should have
in your repository a git/config file containing something like:

    [svn-remote "svn"]
    	url = http://main.svn.url.com/
    	fetch = trunk:refs/remotes/git-svn
    	fetch = branches/b1:refs/remotes/b1  <-- this line added by you

Then a 'git svn fetch' should pull it all down and you can checkout
the branch using 'git checkout -b myb1 remotes/b1'.  At this point,
'git svn rebase' is smart enough to know where the branch comes from.

What may not work when you add branches in this way is that the
history may not connect with the actual branch commit in svn.  I'm
fairly sure there is some way to fix that, but I haven't done it.

+ seth

Re: git-svn: importing branches later

From: Michael Hendricks <hidden>
Date: 2016-06-15 22:43:09

On Tue, May 08, 2007 at 07:51:10AM -0700, Seth Falcon wrote:
Karl Hasselström [off-list ref] writes:
quoted
On 2007-05-07 13:07:06 -0600, Michael Hendricks wrote:
quoted
Now I want to import the 'foo' branch from the same SVN repo without
grabbing all the branches. Any suggestions?
I seem to recall that just adding another "fetch" line to the git-svn
configuration in .git/config will do this for you.
Yes, this should work.  As long as you started out with a fairly
recent git (sorry, I don't know how recent is needed) you should have
in your repository a git/config file containing something like:

    [svn-remote "svn"]
    	url = http://main.svn.url.com/
    	fetch = trunk:refs/remotes/git-svn
    	fetch = branches/b1:refs/remotes/b1  <-- this line added by you
Thanks Seth and Karl, that does indeed work.

I noticed that after changing .git/config and running fetch, git-svn
retrieves the log for the entire project (presumably because it doesn't
know when the new branch was created).  In one project with ~30,000
revisions, I found it beneficial to specify "git svn fetch -r
12345:HEAD" where revision 12345 is somewhere close to and before the
point at which the new branch was created from trunk.  That makes the
initial fetch must faster.

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