# SVN to Git: trunk moved during repository history

5 messages from 2010-04-19 to 2010-04-27. Participants: Bradley Wagner, Stephen Kelly, Ulrich Spörlein.
Thread: https://gitlist.dev/t/23529

## Bradley Wagner, 2010-04-19 21:18

Subject: SVN to Git: trunk moved during repository history
Message-ID: <o2i2f0f6ced1004191418i6a144652sd9ac38b07fb7b661@mail.gmail.com>
URL: https://gitlist.dev/e/o2i2f0f6ced1004191418i6a144652sd9ac38b07fb7b661%40mail.gmail.com
In-Reply-To: <l2x2f0f6ced1004191416jd8db7d5eyf8fc7a55f5efa2cc@mail.gmail.com>

```
I'm trying to port an SVN project to Git. We have gone through
multiple layouts for our SVN repository. It started off with just a
mainline branch in the root folder. Then we went to the standard
layout (branches, trunk, tags).

The problem is that when I do a "git svn clone --stdlayout" of the
repository, it's not picking up any of the revisions from when the
trunk previously resided in the root directory.
Is there any way to specify that the trunk had multiple paths the way
you can specify multiple branch folders with -b flag? What would be
the best course of action for reporting an SVN repo who's layout had
changed during its history?

Thanks,
Bradley

```

## Stephen Kelly, 2010-04-20 00:07

Subject: Re: SVN to Git: trunk moved during repository history
Message-ID: <hqir8c$sqh$1@dough.gmane.org>
URL: https://gitlist.dev/e/hqir8c%24sqh%241%40dough.gmane.org
In-Reply-To: <o2i2f0f6ced1004191418i6a144652sd9ac38b07fb7b661@mail.gmail.com>

```
Bradley Wagner wrote:

> I'm trying to port an SVN project to Git. We have gone through
> multiple layouts for our SVN repository. It started off with just a
> mainline branch in the root folder. Then we went to the standard
> layout (branches, trunk, tags).
> 
> The problem is that when I do a "git svn clone --stdlayout" of the
> repository, it's not picking up any of the revisions from when the
> trunk previously resided in the root directory.
> Is there any way to specify that the trunk had multiple paths the way
> you can specify multiple branch folders with -b flag? What would be
> the best course of action for reporting an SVN repo who's layout had
> changed during its history?

One option is svn2git

http://gitorious.org/svn2git/svn2git

http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git

examples:

http://gitorious.org/svn2git/kde-ruleset

> 
> Thanks,
> Bradley

```

## Bradley Wagner, 2010-04-21 14:03

Subject: Re: SVN to Git: trunk moved during repository history
Message-ID: <l2o2f0f6ced1004210703rf3ce8781kd209e99d2b577b76@mail.gmail.com>
URL: https://gitlist.dev/e/l2o2f0f6ced1004210703rf3ce8781kd209e99d2b577b76%40mail.gmail.com
In-Reply-To: <hqir8c$sqh$1@dough.gmane.org>

```
Hmm, I'm not seeing where in the documentation you would instruct it
to look in multiple locations in the SVN repository's history for the
trunk branch.

On Mon, Apr 19, 2010 at 8:07 PM, Stephen Kelly <steveire@gmail.com> wrote:
> Bradley Wagner wrote:
>
>> I'm trying to port an SVN project to Git. We have gone through
>> multiple layouts for our SVN repository. It started off with just a
>> mainline branch in the root folder. Then we went to the standard
>> layout (branches, trunk, tags).
>>
>> The problem is that when I do a "git svn clone --stdlayout" of the
>> repository, it's not picking up any of the revisions from when the
>> trunk previously resided in the root directory.
>> Is there any way to specify that the trunk had multiple paths the way
>> you can specify multiple branch folders with -b flag? What would be
>> the best course of action for reporting an SVN repo who's layout had
>> changed during its history?
>
> One option is svn2git
>
> http://gitorious.org/svn2git/svn2git
>
> http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git
>
> examples:
>
> http://gitorious.org/svn2git/kde-ruleset
>
>>
>> Thanks,
>> Bradley
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

```

## Ulrich Spörlein, 2010-04-23 15:12

Subject: Re: SVN to Git: trunk moved during repository history
Message-ID: <20100423151235.GZ92627@acme.spoerlein.net>
URL: https://gitlist.dev/e/20100423151235.GZ92627%40acme.spoerlein.net
In-Reply-To: <l2o2f0f6ced1004210703rf3ce8781kd209e99d2b577b76@mail.gmail.com>

```
On Wed, 21.04.2010 at 10:03:16 -0400, Bradley Wagner wrote:
> Hmm, I'm not seeing where in the documentation you would instruct it
> to look in multiple locations in the SVN repository's history for the
> trunk branch.

I did this for the FreeBSD repo, where one or two branches were moved to
some other level. I can't get to the rule file right now, but you need
to figure out the revisions when the layout changed.

Then use something like this (from the top of my head, most likely
buggy)

match /
  min-revision 1
  max-revision 100
  branch master
end

match /trunk
  min-revision 101
  branch master
end

... you get the drift. Ask again if something is unclear, next time I
get to my rules files I can give you a better example.

Bye,
Uli

```

## Bradley Wagner, 2010-04-27 19:55

Subject: Re: SVN to Git: trunk moved during repository history
Message-ID: <v2l2f0f6ced1004271255m6d4a7f70o87be795c87fb66e5@mail.gmail.com>
URL: https://gitlist.dev/e/v2l2f0f6ced1004271255m6d4a7f70o87be795c87fb66e5%40mail.gmail.com
In-Reply-To: <o2i2f0f6ced1004191418i6a144652sd9ac38b07fb7b661@mail.gmail.com>

```
So, I tried to clone the repository with this command:

git svn clone -T trunk -t tags/6.x -b branches/6.x <svn_url>/<proj_name>

After it completed, I went it to the .git/config file and added a few
more branches/tags from other locations:

[svn-remote "svn"]
        url = https://<svn_url>/<proj_name>
        fetch = <proj_name>/trunk:refs/remotes/trunk
        branches = <proj_name>/branches/{6.x,5.x}/*:refs/remotes/*
        branches = <proj_name>/branches/*:refs/remotes/*
        tags = <proj_name>/tags/{3.7.x,4.x,5.x,6.x,old-releases}/*:refs/remotes/tags/*

Is my syntax even correct? Can I have more than one "branches"
property? How do I tell git-svn to re-sync with the latest branch/tag
locations?

Thanks!

On Mon, Apr 19, 2010 at 5:18 PM, Bradley Wagner
<bradley.wagner@hannonhill.com> wrote:
> I'm trying to port an SVN project to Git. We have gone through
> multiple layouts for our SVN repository. It started off with just a
> mainline branch in the root folder. Then we went to the standard
> layout (branches, trunk, tags).
>
> The problem is that when I do a "git svn clone --stdlayout" of the
> repository, it's not picking up any of the revisions from when the
> trunk previously resided in the root directory.
> Is there any way to specify that the trunk had multiple paths the way
> you can specify multiple branch folders with -b flag? What would be
> the best course of action for reporting an SVN repo who's layout had
> changed during its history?
>
> Thanks,
> Bradley
>

```
