2011-01-10 8 views
48

gitをSubversionのフロントエンドとして使用しています(git svn経由)。Git:警告:git-svnを使用すると、refname 'xxx'が曖昧です

だから、すべてのsvnトランク/ブランチに対して、私はgitに "remotes/xxx"という名前のリモートブランチを持っています。たとえば、 "remotes/trunk"、 "remotes/coolfeature"などです。

ここでは、リモートブランチごとに1つの「デフォルト」ローカルブランチを作成し、dcommitに使用する必要があります。問題は、私は、そのようなブランチは、「トランク」、「coolfeature」のように、Subversionの枝にちなんで命名されるようにしたいということですので、私はgitの中で、次の支店を持っている:

trunk 
coolfeature 
remotes/trunk 
remotes/coolfeature 

問題は毎回私が参照していることである「トランク"または" coolfeature "gitはブランチ名があいまいであると不平を言う。大したことではないが、私は不快感を感じる。

質問は、単にブランチの名前を変更するだけでやりたいことではないと仮定して、その警告に対処することができます。そのような場合のベストプラクティスは何ですか?

+3

になります。違うが似たような名前を選ぶだけでこれを避けた。しかし、あなたは 'refs/heads/trunk'を使うこともできますし、' head/trunk'だけを使うこともできます。私はそれがうまくいくと思います。 – MatrixFrog

答えて

40

--prefix=svn/フラグをgit svn cloneコマンドに渡すと、すべてのSubversionブランチはremotes/svn/branchnameのようになります。これが受け入れられる場合、 "refname is ambiguous"という警告が修正されます。

$ git checkout -b branchname svn/branchname

ローカルブランチが同じを持っている:それはまた、あなたが地元の追跡ブランチを作成したい場合は、インスタンスのために、それはようなものになるだろうとして、あなたのリモートのsvnブランチを参照するのに良い方法を提供しますリモートのsvnブランチとしての名前、あいまいなrefnameの問題はありません。

+19

すでに '--prefix = svn /'を持つようにクローンしたリポジトリを修正するには? –

+0

私はちょうど新しいディレクトリにクローンし、私は別のディレクトリから持っていたローカルブランチをフェッチしました:git fetch ../other_dir branch_name:branch_name ---タブ補完もブランチ名にとって素晴らしいです。 – EnigmaCurry

+1

同じ名前のブランチをすでに作成している場合は、次のコマンドでブランチの名前を変更できます。git branch -m [currentName] [newName] – MikeD

13

あなただけの警告を取り除きたい場合は、falsecore.warnAmbiguousRefsを設定します。

git config --global core.warnambiguousrefs false 

をあなただけの単一のリポジトリのため、この動作をしたい場合は、--globalフラグを省略。

+0

私はおそらくここですべての既知の/未知のルールに違反しましたが、私は "git tag -a HEAD -m 'Repo'を新しいリポジトリで試した後、OPエラーメッセージを受け取りました。この記事で説明されている修正により、私は作業を続けることができました。 – bakoyaro

1

タグとして別の「トランク」と「クールフィーチャー」がある可能性があります。この場合、gitはブランチやタグを参照するかどうかを知りません。矛盾ブランチ、タグの名前を変更し、gitのは、地元の支店を参照するとき、たとえばhead/

でそれらを接頭辞、競合メッセージを回避するために、「あいまいな」名前

+0

これは私には当てはまりません。 '.git/refs /'には明確な名前が含まれています。私はタグを持っていません。 gitが最初に不平を言っている原因は何ですか? –

0

を報告していないかどうかを確認topic

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

私はよく分からない

$ git diff heads/topic remotes/topic 
... 
関連する問題