I've created a Git Clone of a SVN repository using git-svn. When doing this I specified the --prefix
option to prefix my remote branches. I now want to get rid of this prefix.
Is there a way to update or remove the prefix without re-cloning the repository?
Essentially I did the initial clone using --prefix=Project
so I ended up with Project/trunk
and Project/feature-branch
as my remote tracking branches. What I want is to have the trunk
just be called trunk
and the feature-branch
be called svn/feature-branch
.
Note: the current solution might not work anymore with git 2.0+ (April 2014)
See commit fe191fc by Johan Herland (jherland
), which highlight the fact you now are supposed to have a prefix (and not have a svn branch without prefix like 'trunk
'):
git svn
: Set default --prefix='origin/'
if --prefix
is not givenHaving no prefix by default was problematic:
git-svn
by default puts its Subversion-tracking refs directly inrefs/remotes/*
.
This runs counter to Git's convention of usingrefs/remotes/$remote/*
for storing remote-tracking branches.Furthermore, combining
git-svn
with regular git remotes run the risk of clobbering refs under refs/remotes (e.g. if you have agit remote
called "tags
" with a "v1
" branch, it will overlap with the git-svn's tracking branch for the "v1
" tag from Subversion.