複数人で編集した場合、同じ箇所を編集することもあります(コンフリクト conflict)。
その場合、AnkhSVNは「同じ箇所を編集しています」と警告し、解決法を4種、用意します。
コンフリクトの例
1. TomさんがForm1.vbを編集、Commitした(Form1.vbに青チェック)。
2. はなこさんが同じ箇所を編集、Updateすると、
3. コンフリクトが発生します。
解消法として、以下の4種のコンフリクト解消方法選択画面が表示されます。
コードを確認しながら修正します。
自分のファイルを優先します。
リポジトリのファイルを優先します。
競合部分編集前に戻します。
① 1番目を選択すると、はなこさんのForm1.vbはSVNによって以下のように編集して返されます。
② 「<<<<<<<.mine」から「=======」の間が自身の編集分、
「=======」から「>>>>>>>.r14」の間がリポジトリに登録されている部分です。
この例では、はなこはTomと協議の結果、はなこのコードを採用することにしました。
③ Pending Changesウィンドウで先程編集したファイルを右クリック、Resolve→Resolve Conflictを選択します。
④ Changeの部分が「Modified」になります。
⑤ 「Commit」をクリックしてコンフリクトの解消をリポジトリに反映します。
↓Commit後の画面
⑥ その後、TomはUpdateを行います。
⑦ Update後、TomのPCのコードも"はなこ"が反映されます。
① リポジトリは無視され、自分の編集が残されます。
これをコミットすると自分の編集がリポジトリに反映されます。
② TomがUpdateすると、はなこの変更が警告無しに反映されます。
↓Update前
↓Update後
自分の編集は無視され、リポジトリが残されます。
リポジトリに戻るので、Commitする必要もないです。
① 選択前
② 選択後
4番目を選択すると、競合となる部分が編集される前に戻ります。
この場合、
TomのDebug.WriteLine("Tom")と、はなこのDebug.WriteLine("はなこ")が競合しているので、TomがCommitする前に戻ります。
① 選択前
② 選択後
_
最終更新:2010年11月22日 20:07