# git-svn or git problem...

3 messages from 2007-05-21 to 2007-05-22. Participants: David Kastrup, Eric Wong.
Thread: https://gitlist.dev/t/8263

## David Kastrup, 2007-05-21 07:54

Subject: git-svn or git problem...
Message-ID: <86abvylihb.fsf@lola.quinscape.zz>
URL: https://gitlist.dev/e/86abvylihb.fsf%40lola.quinscape.zz

```

Hi,

I have used git-svn for checking out the trunk of a large Subversion
archive.  The .git subdirectory now sits in the /rep/texlive/trunk
directory.

But I actually would now want to have the branches (which are pretty
small in comparison) available in git as well, without checking the
whole trunk out again.

Is there a way to move the .git tracking one directory level upwards
and get the branches into it as well, without checking out the trunk
again (the trunk is several Gigabytes of size)?

-- 
David Kastrup

```

## Eric Wong, 2007-05-22 09:16

Subject: Re: git-svn or git problem...
Message-ID: <20070522091619.GA17099@muzzle>
URL: https://gitlist.dev/e/20070522091619.GA17099%40muzzle
In-Reply-To: <86abvylihb.fsf@lola.quinscape.zz>

```
David Kastrup <dak@gnu.org> wrote:
> 
> Hi,
> 
> I have used git-svn for checking out the trunk of a large Subversion
> archive.  The .git subdirectory now sits in the /rep/texlive/trunk
> directory.
> 
> But I actually would now want to have the branches (which are pretty
> small in comparison) available in git as well, without checking the
> whole trunk out again.
 
> Is there a way to move the .git tracking one directory level upwards
> and get the branches into it as well, without checking out the trunk
> again (the trunk is several Gigabytes of size)?

If you're using a 1.5.1 or later version of git-svn, you can do so
pretty easily by editing your .git/config:

If you already have something like:

[svn-remote "svn"]
	# url here is the repository root, and 'mpc/trunk' in fetch
	# is the relative path within the repository
        url = https://svn.musicpd.org
        fetch = mpc/trunk:refs/remotes/git-svn

You can just add the following lines to the config in the above section:

        branches = mpc/branches/*:refs/remotes/*
        tags = mpc/tags/*:refs/remotes/tags/*


If you have something like:

[svn-remote "svn"]
	# url here is the full path of what you're tracking,
        url = https://svn.musicpd.org/mpc/trunk
        fetch = :refs/remotes/git-svn

Change it to something like in the first example (assuming you
have read permissions to the repository root).


If recompiling SVN is feasible for you and the branches (as a fresh
checkout) are as big as trunk, I highly recommend the do_switch patch
for SVN which lets you transfer only a delta between the branch/tag
point of trunk:

http://svn.haxx.se/dev/archive-2007-01/0936.shtml

-- 
Eric Wong

```

## Eric Wong, 2007-05-22 09:36

Subject: do_switch()-enabled SVN binaries for git-svn
Message-ID: <20070522093602.GB17099@muzzle>
URL: https://gitlist.dev/e/20070522093602.GB17099%40muzzle
In-Reply-To: <20070522091619.GA17099@muzzle>

```
Eric Wong <normalperson@yhbt.net> wrote:
> If recompiling SVN is feasible for you and the branches (as a fresh
> checkout) are as big as trunk, I highly recommend the do_switch patch
> for SVN which lets you transfer only a delta between the branch/tag
> point of trunk:
> 
> http://svn.haxx.se/dev/archive-2007-01/0936.shtml

In case you're using Debian x86-32, I've uploaded .deb packages
(with full, Debian sources) here:

http://git-svn.bogomips.org/svn/

The patch by itself is available here:

http://git-svn.bogomips.org/svn/switch-editor-perl.diff

-- 
Eric Wong

```
