2

Tortoise SVN で 2 つのブランチをマージしようとしていますが、テスト モードと実際のマージの両方でエラーが発生します。エラーは次のとおりです。

Command: Merging from svn://[IP Address]/Folder1, revision HEAD to svn://[IP Address]/Folder2, revision HEAD into C:\code\Folder2, respecting ancestry, Test Only  
Error: Unable to connect to a repository at URL  
Error:  'svn://[IP Address]/Folder1'  
Error: Network connection closed unexpectedly  
Completed!:

これを検索すると、SVN + SSH が PuTTY と競合しているという情報がたくさん見つかりましたが、このマシンに PuTTY をインストールしていないので、それは私の問題ではありません。チェックアウト、チェックイン、参照、および通常は両方のブランチで作業できますが、このエラーが発生する唯一のマージであり、オンラインで役立つものは見つかりません。また、いくつかのバージョンを削除して再インストールし、元に戻そうとしましたが、うまく修正できませんでした。誰かが理由を知っていますか?

4

3 に答える 3

2

Tortoise がマージを行うとき、リビジョン ボックスを空のままにしておくと、どのリビジョンをマージするかを決定するためにのみ mergeinfo プロパティが使用されます。したがって、リビジョンを「ブロック解除」し、そのリビジョンを明示的にマージするだけです。Tortoise は、既にマージされたリビジョンをログにリストしません。

Tortoise はマージを mergeinfo に再度記録する可能性があるため、後でディレクトリの svn プロパティを調べて、それが行われるかどうかを確認してください (余分なエントリを編集して削除します。ただし、サーバーがこれを行うと思いますが、手動で行う方が簡単な場合もあります)。 .

別の方法は、mergeinfo プロパティを見て、このリビジョンが既にリストされているかどうかを確認することです。リストされている場合は、削除してコミットします。その後、マージを繰り返すと、期待どおりに機能するはずです。

通常、宛先にはmergeinfoがありますが、あなたの場合、ブランチにもマージをブロックしている可能性のあるものがあると思います。

于 2013-03-10T17:39:44.643 に答える
0

昔、仮想マシンから SVN を実行していたときに、同様の問題が発生しました。いくつかのテストとエラーの後、問題は IP アドレスにあることがわかりました。そのため、サーバーの IP アドレスを使用する代わりに、サーバーの名前を使用するようになりました。理由はわかりませんが、これで問題は解決しました。

また、SVN クライアントが更新されていることを確認してください。また、同じエラーが発生した場合は、別の SVN クライアントを試して e を確認する必要があります。

また、Tortoise を使用してリポジトリで CLEAN を実行できます。私が見つけたエラーのほとんどは、CLEAN コマンドを実行するだけで解決できます。

最後のヒント: 別のマシンでコマンドを実行し、ファイアウォールとウイルス対策を無効にしてみてください。

于 2013-03-04T19:41:26.743 に答える
0

マージするときは、マージ先のクリーン チェックアウトが必要です。次に、作業ディレクトリからマージの URL をマージします。

幸い、TortoiseSVN には Subversion コマンド ライン クライアントであるsvncommand があります。何か問題が発生した場合は、コマンド ライン クライアントで試してみることをお勧めします。通常、エラーの場所が表示されるからです。

PATHコマンド ライン クライアントを PATH 環境変数に入れる必要があるかもしれませんが、C:\Program Files\TortoiseSVN\binディレクトリ (または TortoiseSVN がインストールされていた場所) の下にある必要があります。

コマンドラインでこれを試してください:

C> cd %TO_YOUR_DIRECTORY%
C> svn st   <==== You should see nothing under here. No 'M'odified files. No 'A'dded files.
C> svn up   <==== Make sure your working directory is completely up to date.

完全にクリーンで最新の作業ディレクトリが表示されます。ステータスの問題がある場合は、最初に解決してください。または、さらに良いことに、新しいクリーン チェックアウトを実行します。

C> svn co svn://url/Folder1      <=== Merging to here

すべてがクリーンであることに満足したら、コマンド ラインからマージを実行します。

C> svn merge svn://url/Folder2   <=== This is where you're merging from.

これにより、何が起こっているのかをよりよく理解できます。私は TortoiseSVN が好きですが、便利さと使いやすさが邪魔になることがあります。

ところで、svn help mergeさまざまなコマンド ライン パラメータをすべて確認してください。最初はエラーなしで試して、前回と同じエラーが発生しないことを確認してください。それが確認できたら、svn revert -R .もう一度試してください。

于 2013-03-04T23:09:43.620 に答える