Reputation: 21312
My current svn cloned branches (using the -s 'standard layout') option are called:
$ git branch -r
branch1
branch2
I would like to rename those, such that they are:
$ git branch -r
svn/branch1
svn/branch2
As though I had called $ git-svn clone --prefix svn originally. I don't need to change any names on the remote side.
Upvotes: 23
Views: 5743
Reputation: 39228
Assuming that you do not have another remote that was added with git remote add ...
, try this procedure:
git gc
to package all refs into .git/packed-refs
..git/packed-refs
for editing. Replace "refs/remotes/" with "refs/remotes/svn/".Open .git/config
for editing. You should see something like:
[svn-remote "svn"]
url = SVN_REPO_URL
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/*
tags = tags/*:refs/remotes/tags/*
Replace "refs/remotes/" with "refs/remotes/svn/":
[svn-remote "svn"]
url = SVN_REPO_URL
fetch = trunk:refs/remotes/svn/trunk
branches = branches/*:refs/remotes/svn/*
tags = tags/*:refs/remotes/svn/tags/*
Be sure to also update any remote-tracking branches. To do this, you can just replace "refs/remotes/" with "refs/remotes/svn/" in the entire file.
I tested this procedure with a copy of my git-svn mirror of the GNU Nano repository and it seems to work.
EDIT: I have just verified that this procedure does not mess up the git-svn dcommit or rebase operations. It is as if --prefix=svn/
were originally specified in the git svn clone -s SVN_REPO_URL
command.
Upvotes: 36