Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

warning: refname 'xxx' is ambiguous when using git-svn

I am using git as a frontend to Subversion (via git svn).

So, for every svn trunk/branch I have remote branch in git named "remotes/xxx". For example "remotes/trunk", "remotes/coolfeature".

Now I want have one "default" local branch for every remote branch, to use it for dcommit. The problem is that I want such branches to be named after Subversion branches, like "trunk", "coolfeature", so I have the following branches in git:

trunk
coolfeature
remotes/trunk
remotes/coolfeature

The problem is that every time I reference "trunk" or "coolfeature" git complains branch name is ambiguous. Not a big deal, but I feel uncomfortable.

The question is, how can I deal with that warning, assuming that simply renaming branches is not what I want to do. What are the best practices for such cases?

like image 940
Ivan Dubrov Avatar asked Jan 10 '11 06:01

Ivan Dubrov


4 Answers

If you pass the --prefix=svn/ flag to the git svn clone command, then all of the Subversion branches would be named like remotes/svn/branchname. If this is acceptable to you, it fixes the "refname is ambiguous" warning. It also gives you a nice way of referring to the remote svn branches, as in for instance if you want to create a local tracking branch it would be something like:

$ git checkout -b branchname svn/branchname

The local branch then has the same name as the remote svn branch, and no ambiguous refname problem.

like image 182
Jason Voegele Avatar answered Nov 18 '22 03:11

Jason Voegele


If you just want to get rid of warning, set core.warnAmbiguousRefs to false:

git config --global core.warnambiguousrefs false

If you want this behavior only for single repository, omit --global flag.

like image 40
max Avatar answered Nov 18 '22 03:11

max


It can be possible that you have another 'trunk' and 'coolfeature' as a tag. In this case, git doesn't know if you refer to branch or tag. Rename the tags and check if git doesn't report "ambiguous" name

like image 1
Octavi Fornés Avatar answered Nov 18 '22 04:11

Octavi Fornés


To avoid the conflict messages, when referring to local branches, prefix them with heads/

for example, the conflicting branch topic

$ git diff topic remotes/topic
warning: reframe 'topic' is ambiguous.
...

becomes

$ git diff heads/topic remotes/topic
...
like image 1
Alex Brown Avatar answered Nov 18 '22 04:11

Alex Brown