Marcus Better
2009-11-10 18:08:26 UTC
Hi,
I have trouble cloning a SVN repository with a somewhat weird history.
Its layout has been reorganised, and is currently using a standard
layout like this:
project/
trunk/
branches/
tags/
otherproject/
...
The problem is that the trunk was replaced by a branch at some point.
When I do "git svn clone -s svn://host/repo/project" it only fetches the
"old" trunk up to the time of the switch, and then stops. Newer
revisions of the "new" trunk are not fetched and cannot be seen with
"find-rev".
The history of the repo is something like this: Initial layout is
trunk/
project/
otherstuff/
branches/
Then we had the following sequence:
1. commit stuff to trunk/project/...
2. create "branches/mybranch" from trunk/project
3. some commits on trunk and branches
4. moved trunk/project to branches/old_trunk
5. moved trunk/otherstuff to /otherstuff. /trunk is now empty (***)
6. removed /trunk directory
7. create /project
8. move branches/mybranch to project/trunk
9. commit stuff on project/trunk
(***) last commit seen in clone.
Now step 5 is the last revision that appears in the git svn clone. It
shows up as the last commit on remotes/trunk.
Apparently git svn has failed to follow the move from branches/mybranch
to trunk. The last commit seen on remotes/mybranch in the clone is from
before the move to trunk (step 3).
I have tried replaying the above steps with some variations in a new svn
repository, but apparently I'm missing something because I couldn't
reproduce the issue. I cannot publish the real svn repo.
I use git and git-svn 1.6.5.2 (Debian amd64 packages).
Cheers,
Marcus
I have trouble cloning a SVN repository with a somewhat weird history.
Its layout has been reorganised, and is currently using a standard
layout like this:
project/
trunk/
branches/
tags/
otherproject/
...
The problem is that the trunk was replaced by a branch at some point.
When I do "git svn clone -s svn://host/repo/project" it only fetches the
"old" trunk up to the time of the switch, and then stops. Newer
revisions of the "new" trunk are not fetched and cannot be seen with
"find-rev".
The history of the repo is something like this: Initial layout is
trunk/
project/
otherstuff/
branches/
Then we had the following sequence:
1. commit stuff to trunk/project/...
2. create "branches/mybranch" from trunk/project
3. some commits on trunk and branches
4. moved trunk/project to branches/old_trunk
5. moved trunk/otherstuff to /otherstuff. /trunk is now empty (***)
6. removed /trunk directory
7. create /project
8. move branches/mybranch to project/trunk
9. commit stuff on project/trunk
(***) last commit seen in clone.
Now step 5 is the last revision that appears in the git svn clone. It
shows up as the last commit on remotes/trunk.
Apparently git svn has failed to follow the move from branches/mybranch
to trunk. The last commit seen on remotes/mybranch in the clone is from
before the move to trunk (step 3).
I have tried replaying the above steps with some variations in a new svn
repository, but apparently I'm missing something because I couldn't
reproduce the issue. I cannot publish the real svn repo.
I use git and git-svn 1.6.5.2 (Debian amd64 packages).
Cheers,
Marcus