週刊これは夢?!

それとも…。
すぐ忘れちゃうので備忘録用ブログ。
週1ペースで書くことを、ゆるい目標にしていました。

subversion の conflict 解消方法

2009-11-14 | 電脳
自分専用でsubversionを動かしているんですが、時々conflictがおきる。
自分しか変更しないとは言え、解消作業がめんどくさい。
備忘録の意味をかねて簡単なまとめ。調査不足なので取扱注意で。


■ 競合の確認
svn status --show-updates
 ディレクトリのファイルより新しいバージョンがリポジトリ内にあるか確認

svn diff -r ARG1(:ARG2) xxxxx.xxx
 リビジョン番号ARG1とARG2(指定しなければ最新)と比較


■ 競合の解決

1 手元の変更を破棄し、リポジトリに格納されているバージョンにする。
svn revert xxxxx.xxx
svn update xxxxx.xxx

2 手元の変更を保持。
まずコピー( cp Number.txt.mine Number.txt)や手動で修正する。
svn resolved xxxxx.xxx  ← 競合の修正が完了したことを通知

3 svnに競合を修正させる
svn resolve --accept ARG Number.txt
 ARGには'base', 'working', 'mine-conflict', 'theirs-conflict', 'mine-full', 'theirs-full'。
 resolvedではないところがみそ。詳しくは svn help resolve。


今回おきた衝突は、ファイルの編集内容にではなく、ディレクトリの移動を実施した際に発生した。
解決方法を調べている間に、"svn resolve --accept <ARG> xxx" というコマンドをみつた。
もうちょい詳しく調べたらおいしくなるなる可能性があるかも。

1 コメント

コメント日が  古い順  |   新しい順
Unknown (イシカワ)
2010-09-13 12:14:33
SVN初心者です、なるほど、参考になりました!
返信する

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。