# [PATCH] Documentation/git-svn: Instructions for cloning a git-svn-created repository

5 messages from 2007-08-06 to 2007-08-10. Participants: Adam Roben, Junio C Hamano, Eric Wong, Steven Grimm.
Thread: https://gitlist.dev/t/9403

## Adam Roben, 2007-08-06 08:16

Subject: [PATCH] Documentation/git-svn: Instructions for cloning a git-svn-created repository
Message-ID: <1186388203181-git-send-email-aroben@apple.com>
URL: https://gitlist.dev/e/1186388203181-git-send-email-aroben%40apple.com

```
These instructions tell you how to create a clone of a repository created with
git-svn, that can in turn be used with git-svn.

Signed-off-by: Adam Roben <aroben@apple.com>
---
> gitster: (3) you prepare one git-svn managed git repository, allow others to
> clone it via git, and have each of these cloned git repositories to interact
> with svn via git-svn -- this third mode of operation is not supported.
> 
> spearce: be nice if someone who cared about git-svn supporting (3) either wrote
> a patch for the documentation, or taught the tool how to do this more
> automatically.

Here's that patch. Maybe I'll get around to Shawn's second (far more ideal)
suggestion sometime.

 Documentation/git-svn.txt |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
index 0a210e4..3e3b597 100644
--- a/Documentation/git-svn.txt
+++ b/Documentation/git-svn.txt
@@ -435,6 +435,25 @@ Tracking and contributing to an entire Subversion-managed project
 # of dcommit/rebase/show-ignore should be the same as above.
 ------------------------------------------------------------------------
 
+The initial 'git-svn clone' Subversion can be quite time-consuming (especially
+for large repositories). If multiple people (or one person with multiple
+machines) want to use git-svn to interact with the same Subversion repository,
+you can do the initial 'git-svn clone' to a repository on a server and have
+each person clone that repository with 'git clone':
+
+------------------------------------------------------------------------
+# Do the initial import on a server
+	ssh server "cd /pub && git-svn clone http://svn.foo.org/project
+# Clone locally
+	git clone server:/pub/project
+# Tell git-svn which branch contains the Subversion commits
+	git update-ref refs/remotes/git-svn origin/master
+# Initialize git-svn locally (be sure to use the same URL and -T/-b/-t options as were used on server)
+	git-svn init http://svn.foo.org/project
+# Pull the latest changes from Subversion
+	git-svn rebase
+------------------------------------------------------------------------
+
 REBASE VS. PULL/MERGE
 ---------------------
 
-- 
1.5.2.2

```

## Junio C Hamano, 2007-08-06 08:34

Subject: Re: [PATCH] Documentation/git-svn: Instructions for cloning a git-svn-created repository
Message-ID: <7v643tdptt.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v643tdptt.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <1186388203181-git-send-email-aroben@apple.com>

```
Thanks.

As I said on #git, I was just saying I got the impression that
this mode of operation is not supported from the #git traffic
during the past few days, without knowing if it is myself.

Making it clear how to do this in our documentation would help
those people who come to #git and ask about it, as it seems that
many people want to clone and share a git repository created by
git-svn.

```

## Eric Wong, 2007-08-09 19:37

Subject: Re: [PATCH] Documentation/git-svn: Instructions for cloning a git-svn-created repository
Message-ID: <20070809193759.GA4545@untitled>
URL: https://gitlist.dev/e/20070809193759.GA4545%40untitled
In-Reply-To: <1186388203181-git-send-email-aroben@apple.com>

```
Adam Roben <aroben@apple.com> wrote:
> These instructions tell you how to create a clone of a repository created with
> git-svn, that can in turn be used with git-svn.
> 
> Signed-off-by: Adam Roben <aroben@apple.com>
> ---
> > gitster: (3) you prepare one git-svn managed git repository, allow others to
> > clone it via git, and have each of these cloned git repositories to interact
> > with svn via git-svn -- this third mode of operation is not supported.
> > 
> > spearce: be nice if someone who cared about git-svn supporting (3) either wrote
> > a patch for the documentation, or taught the tool how to do this more
> > automatically.
> 
> Here's that patch. Maybe I'll get around to Shawn's second (far more ideal)
> suggestion sometime.
> 
>  Documentation/git-svn.txt |   19 +++++++++++++++++++
>  1 files changed, 19 insertions(+), 0 deletions(-)
> 
> diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
> index 0a210e4..3e3b597 100644
> --- a/Documentation/git-svn.txt
> +++ b/Documentation/git-svn.txt
> @@ -435,6 +435,25 @@ Tracking and contributing to an entire Subversion-managed project
>  # of dcommit/rebase/show-ignore should be the same as above.
>  ------------------------------------------------------------------------
>  
> +The initial 'git-svn clone' Subversion can be quite time-consuming (especially
> +for large repositories). If multiple people (or one person with multiple
> +machines) want to use git-svn to interact with the same Subversion repository,
> +you can do the initial 'git-svn clone' to a repository on a server and have
> +each person clone that repository with 'git clone':
> +
> +------------------------------------------------------------------------
> +# Do the initial import on a server
> +	ssh server "cd /pub && git-svn clone http://svn.foo.org/project
> +# Clone locally
> +	git clone server:/pub/project
> +# Tell git-svn which branch contains the Subversion commits
> +	git update-ref refs/remotes/git-svn origin/master
> +# Initialize git-svn locally (be sure to use the same URL and -T/-b/-t options as were used on server)
> +	git-svn init http://svn.foo.org/project
> +# Pull the latest changes from Subversion
> +	git-svn rebase
> +------------------------------------------------------------------------
> +
>  REBASE VS. PULL/MERGE
>  ---------------------

This method won't get branches and tags under the refs/remotes/
namespace, will it?

I personally believe using rsync to clone repositories created with
git-svn is the simplest and best method for now.

-- 
Eric Wong

```

## Steven Grimm, 2007-08-10 00:13

Subject: Re: [PATCH] Documentation/git-svn: Instructions for cloning a git-svn-created repository
Message-ID: <46BBADBB.6070502@midwinter.com>
URL: https://gitlist.dev/e/46BBADBB.6070502%40midwinter.com
In-Reply-To: <20070809193759.GA4545@untitled>

```
Eric Wong wrote:
> I personally believe using rsync to clone repositories created with
> git-svn is the simplest and best method for now.

But then you don't get to use alternates -- one of the things I like 
about the idea of doing a "git clone" of a git-svn repository is that 
you could do "git clone -s" and get the full svn history with a tiny 
.git directory.

-Steve

```

## Eric Wong, 2007-08-10 01:43

Subject: Re: [PATCH] Documentation/git-svn: Instructions for cloning a git-svn-created repository
Message-ID: <20070810014312.GE9764@hand.yhbt.net>
URL: https://gitlist.dev/e/20070810014312.GE9764%40hand.yhbt.net
In-Reply-To: <46BBADBB.6070502@midwinter.com>

```
Steven Grimm <koreth@midwinter.com> wrote:
> Eric Wong wrote:
> >I personally believe using rsync to clone repositories created with
> >git-svn is the simplest and best method for now.
> 
> But then you don't get to use alternates -- one of the things I like 
> about the idea of doing a "git clone" of a git-svn repository is that 
> you could do "git clone -s" and get the full svn history with a tiny 
> .git directory.

If I'm working on multiple directories  on the same machine, I have
libflcow in my LD_PRELOAD and use cp -al (GNU-specific) to make hardlink
images of my working directory.  I've been using fl-cow with cp -al
since long before I used git.

The new-ish git-new-workdir command could probably be a replacement
for git-clone / flcow + cp -al / rsync in these situations as well.

-- 
Eric Wong

```
