先に(1)を見て下さい。今度は自動的にマージされないケースです。
衝突の例。またもや、sandbox/trunk/src/hello/hello.cに対してユーザ「test1」と「test2」が変更を加えています。
test1はmorningで起動するとGood Morningが表示されるように変更しています。
test2は--help以外の引数を渡すとそれを表示するように変更しています。
先にtest1がコミットします。
やはり先にコミットする側が成功します。
次にtest2がコミットします。
予想通りコミットに失敗します。やはり最新を取得しろといっているので取得してみます。
競合状態と言われました。同じ箇所を修正した為に自動的にマージできないということです。
ちなみに古いバージョンでは「衝突」と称していた為、いまだに衝突と呼んでいたりします。
こんなファイルができます。こうなると残念ながら手でシコシコマージするしかありません。
単にどちらかの変更を順に適用すればいい場合は、hello.cを右クリック→TortoiseSVN→競合の編集、で TortoiseMergeが立ち上がるのでこれを使えばいいです。
使い方は下のペインの!を右クリックしてそれっぽいものを選んで???を解消し、最後に保存するでOK。
TortoiseMergeで解消できない場合、対象ファイル(この場合hello.c)を編集します。
<<<<<<<と>>>>>>>で囲まれたブロックが競合部分です。
TortoiseMergeは少し画面がゴチャゴチャしてるので、 こうやってメモ帳(またはテキストエディタ)で眺めてるとウマイ解決法がみつかったりします。
この場合は「mineの前にtheirsのテキストブロックを利用」を使った後に3行ほど手で修正しました。
何らかの方法でマージ作業が完了したら、対象ファイルを右クリック→TortoiseSVN→競合の解消で解決済みにして下さい。 これでコミットできるようになります。