質問

Subversion に「競合を引き起こさない限り更新/マージ」を指示する方法はありますか?

使えるのはわかっています --dry-run / status -u 更新を実行する前にチェックする必要がありますが、他の人が「Cindex.php」行に気付かずに更新を実行し、Webページが壊れてしまうことがよくあります。

また、svn は競合についてあまり不満を感じていないように見えます。競合に関係なく、依然として「リビジョンに更新されました」と表示され、ゼロから終了します。したがって、それらを検出するには出力を 1 行ずつ解析する必要があります。確かにもっと良い方法がありますか?

役に立ちましたか?

解決

--accept パラメーターを使用して、競合が発生したときに何が起こるかを指定できます。

--accept ARG             : specify automatic conflict resolution action
                          ('postpone', 'base', 'mine-full', 'theirs-full',
                          'edit', 'launch')

も参照してください。 インタラクティブな競合解決 svnbook のページ

他のヒント

おそらく、グラフィカル ツールを使用する方が良い方法でしょうか?それとも、出力をファイルにリダイレクトし、最後に「cat svnupdate.log | grep "^C "」を実行して競合を表示する更新を行うスクリプトを作成しますか?

私が使用しているグラフィカル ツール (TortoiseSVN と Netbeans) では、最後に不快なノイズが発生し、それらを処理するためのマージ選択ダイアログが表示されます。コマンド ライン ツールと同等の機能を備えたツールを私は知りません。

@jsight:TortoiseSVN は素晴らしいですが、私は主に *NIX 環境で開発し、X は使用しません。そのため、私は通常、コマンドラインを使用しています(限定的に)。

あなたのスクリプトの提案に関して、それが私が現在取り組んでいることです - だからこそ、$? をチェックすることができないことにイライラしています。現在、「ファイルへの出力」をスキップしてパイプを使用していますが、それ以外はまさにあなたが説明したとおりです。

--diff3-cmd パラメータを使用して、使用するマージ ツール (通常は diffutils の diff3) を指定できます。

また、コミット前スクリプトを使用してファイル内の競合マーカーを探し、競合マーカーが存在する場合はコミットを防ぐこともできます。

Subversion 1.5 (最近リリース) では、「--accept」引数を使用して、更新の競合中に何が起こるかを指定する機能が追加されています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top