26

最近、転覆の非常に奇妙な動作に遭遇しました。

ブランチのローカル コピーをリモート ブランチにマージしました。すべてがスムーズに進みましたが、ツリーの競合が 1 つあります (ローカル削除、リモート更新)。

よし、と思い、作業コピーを適切に修正し、「svn resolve --accept=working -R .」を実行しました。

Subversion は私の問題を解決し、「svn st」はもはや問題を示さなかったと伝えました。それで、私はコミットしようとしましたが、svnは、内部フォルダーの1つ(競合しているフォルダー内)が古くなっていると言って、svnアップすることを提案しましたが、フォルダーが再び競合するようになりました!

この悪循環から抜け出すにはどうしたらいいでしょうか?

4

5 に答える 5

46
~/sandbox/jabira > svn resolve  --accept=theirs-full testClient/
svn: warning: Tree conflicts can only be resolved to 'working' state; 'testClient' not resolved

~/sandbox/jabira  > svn resolve  --accept=working testClient/
Resolved conflicted state of 'testClient'

この助けを願っています

于 2013-05-02T19:40:53.550 に答える
8

これは役立つ場合とそうでない場合がありますが、「svn クリーンアップ」によってメタデータの奇妙な問題が修正されることがあります。クリーンな作業コピーをチェックアウトした場合、クリーンなコピーにも同じ問題がありますか? もしそうなら、前の答えは正しい方向への一歩のように聞こえます

于 2010-01-07T15:15:59.027 に答える
5

svn resolve コマンド以外の方法を使用できます。

  1. 競合するファイルのパッチを作成します。(または、svn export を使用した競合するフォルダーのバージョンのバックアップ ...)
  2. リポジトリを更新します (svn update)
  3. 以前に行ったパッチを適用します (または、競合するファイル/フォルダーをバックアップに置き換えます)。
  4. 変更をコミットします (svn commit)
于 2010-01-07T15:03:30.177 に答える
0

おそらく、マージを行ったときにフォルダーが更新されていなかったか、マージの前に競合があった可能性があります。修正するには、トランク (ターゲット フォルダー) を以前のリビジョンに戻す必要があります。次に、そのフォルダーでクリーンアップを実行します。次に、ブランチ フォルダー (ソース フォルダー) でクリーンアップを実行します。次に、両方のフォルダーを再度更新します。ワークフローで赤字の行が表示される場合は、最初にそれらのファイルを元に戻してから、必要な状態に戻す必要があります。次に、フォルダーを更新します (はい、もう一度)。最後に再度マージを実行します。

于 2012-04-02T19:24:02.747 に答える