2008-08-28 32 views
4

Subversionに「競合を引き起こさない限り、更新/マージする」方法を教えてください。Subversion:競合が発生した場合に更新が失敗しますか?

--dry-run/status -uを使用して更新プログラムを実行する前に確認することができますが、「C index.php」行に気付かないため、更新プログラムを実行して壊れたWebページを取得することがあります。

私はまた、svnが矛盾についてあまりにも不幸に見えないことに気付きました。矛盾に関係なく、まだ「改訂版に更新されました」と表示され、ゼロを終了します。だから私はそれらを発見するためにラインごとの出力を解析する必要があります。確かに良い方法がありますか?

答えて

3

あなたは競合が発生したときにどうするかを示すために、--acceptパラメータを使用することができます。

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

はsvnbook

1

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

私が使用しているグラフィカルツール(TortoiseSVNとNetbeans)では、最後に厄介なノイズが発生し、対処するためのマージ選択ダイアログが表示されます。私は、コマンドラインツールのパワーと同等のものを知らない。

1

@jsight:TortoiseSVNは素晴らしいですが、主にXがない* NIX環境で開発しています。だから、私は通常、コマンドラインを(制限して)使用しています。

あなたのスクリプトの提案では、それは私が今取り組んでいることです - それで、なぜ私は$だけチェックできないのですか?今、私は "ファイルへの出力"をスキップし、パイプを使用しますが、それ以外の場合は正確に記述します。

1

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

0

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

0

のSubversion 1.5(最近リリースされた)にもinteractive conflict resolutionページを参照してくださいいくつかの機能を追加します更新の競合中に "--accept"引数を使用して何が起こるかを指定します。

関連する問題