Discussion:
SVN to Git: trunk moved during repository history
Bradley Wagner
2010-04-19 21:18:16 UTC
Permalink
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"=A0of 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:40 UTC
Permalink
Post by Bradley Wagner
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
Post by Bradley Wagner
Thanks,
Bradley
Bradley Wagner
2010-04-21 14:03:16 UTC
Permalink
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.
Post by Stephen Kelly
Post by Bradley Wagner
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 wa=
y
Post by Stephen Kelly
Post by Bradley Wagner
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
http://gitorious.org/svn2git/kde-ruleset
Post by Bradley Wagner
Thanks,
Bradley
--
To unsubscribe from this list: send the line "unsubscribe git" in
More majordomo info at =A0http://vger.kernel.org/majordomo-info.html
Ulrich Spörlein
2010-04-23 15:12:35 UTC
Permalink
Post by Bradley Wagner
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:15 UTC
Permalink
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 =3D https://<svn_url>/<proj_name>
fetch =3D <proj_name>/trunk:refs/remotes/trunk
branches =3D <proj_name>/branches/{6.x,5.x}/*:refs/remotes/*
branches =3D <proj_name>/branches/*:refs/remotes/*
tags =3D <proj_name>/tags/{3.7.x,4.x,5.x,6.x,old-releases}/*:re=
fs/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
Post by Bradley Wagner
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"=A0of 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
Loading...