16

実行git svn clone -s https://svn.example.com/repo/中に、次の出力を受け取りました。

r3073 = a6132f3a937b632015e66d694250da9f606b8333 (refs/remotes/trunk)
Found possible branch point: https://svn.example.com/repo/trunk => https://svn.example.com/repo/branches/v1.3, 3073
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
    real path: repo/trunk
Continuing ahead with repo/trunk
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
    real path: repo/trunk
Continuing ahead with repo/trunk
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
    real path: repo/trunk
Continuing ahead with repo/trunk
W: Refspec glob conflict (ref: refs/remotes/trunk):
expected path: repo/branches/trunk
    real path: repo/trunk
Continuing ahead with repo/trunk
fatal: Not a valid object name refs/remotes/tags/Sync Controllers
cat-file commit refs/remotes/tags/Sync Controllers: command returned error: 128

実行git branch -aすると:

remotes/tags/Sync%20Controllers
remotes/tags/v1.1
remotes/trunk
remotes/v1.2

問題は「remotes/tags / SyncControllers」!=「remotes / tags / Sync%20Controllers」だと思います。

4

5 に答える 5

29

SVNのタグにはスペースが含まれていますが、gitのタグではこのスペースが%20(URLエンコードされた)に変換されています。これを解決するには、逐語的な名前の新しいタグを手動で追加します。

cd .git/refs/remotes/tags/
mv Sync%20Controllers Sync\ Controllers

その後、git svn cloneコマンドを再実行してください。

(通常はこれを使用しますgit tag OLDTAG NEWTAGが、gitではスペースを含むタグを定義できませんでした。タグファイルは、関連するコミットのハッシュを含む単なるテキストファイルです。)

于 2012-07-06T15:37:20.490 に答える
5

git-svn変換の問題の多くを回避するために、git-svnサーバー側の代替であるSubGitを使用できます。

私はSubGit開発者であり、上記のような文字翻訳の問題を解決するために多くの努力をしたと言えます。この特定のケースでは、タグはrefs/tags/Sync+Controllersタグに変換されます。

また、git-svnはSubversionタグをタグではなくブランチとして変換していることにも注意してください。

于 2012-07-19T14:31:42.660 に答える
5

私は今日この問題に遭遇しました、そしてそれにペースを含むこのブランチは重要ではないと考えました、私はただ走ります

git branch -r -d partialPayment%202.4

そして、svn fetchを再実行しますgit。現在のブランチをスキップし、次のブランチを取得し続けます。

于 2017-08-12T01:54:55.180 に答える
0

スペースの問題はGit>=1.8.0で修正されていると思います(#786942を参照)。

したがって、アップグレードする必要があります。

私はそれをテストしました、そしてそれはgitの最近のバージョンで動作するようです。

GitHubホームページを参照してください:https ://github.com/git/git

于 2012-10-26T09:00:22.820 に答える
0

私はgit1.29.2を使用していて、問題も発生しています。さらに、Windows Server 2016で実行されており、gitはcygwinの下にあります。

チェックインしていまし/GitMigration/.git/svn/refs/remotes/originたが、フォルダに空白があり、%20変更する必要はありません。

ただしpacked-refs、問題を引き起こしているタグには、名前もハッシュも表示されません。

この問題には、これだけでなく、エラーを生成する他の問題に関連する別の問題があるはずです。

見つかっ./.git/configた次の行の一連の繰り返しを調べます。

branches = server/branches/*:refs/remotes/origin/*
tags = server/tags/*:refs/remotes/origin/tags/*

これは、git-svnクローンセンテンスを実行するたびに生成されます。だから私は設定ファイルからそれらを削除し、それを保存して再度実行しましたが、今回はgit svn fetch、重複した行が再び取得されないようにするために、を使用して、そしてvoala !! 問題が解決しました。

于 2020-12-08T10:08:49.587 に答える