「ソース管理」を利用した開発を行う場合、マスターファイルとローカルファイルとの同期は自発的に行う必要があります。
定期的に他の開発者の更新を取り込み、ローカルのプロジェクトを最新状態に維持します。
もっとも一般的な利用法は定期的にプロジェクトビューのプロジェクトアイコンに対して「ソース管理」-「リポジトリから更新・マージ」コマンドを実行することです。
「リポジトリとローカルファイルをマージする」を選択し、更新が無事完了すれば、ローカルファイルはマスターファイルと同期されすべてのファイルは最新の状態となります。
"U" はファイルがダウンロードされて最新状態になったことを示します。
"M"はローカルファイルが変更状態にあることを示しています。
"R"はファイルが削除予約状態であることを示しています。
"A"はファイルが追加予約状態であることを示しています。
"?"は対象外のファイルであることを示しています。
前節のようにリポジトリへ格納しようとして、既にマスターファイルが更新されている場合、先だってマスターファイルとの同期を取らなければなりません。
この場合ローカルファイルはすでに修正されていますので、変更部分のマージを試みます。
マージが成功するとその旨を示すメッセージが表示されプロジェクトツリーのアイコンは競合を表すマークが表示されます。
マークはもう一度「リポジトリから更新・マージ」コマンドを実行すると解除されます。
マージを試みた結果、競合を回避できなかった場合以下のような警告メッセージを出力します。
プロジェクトツリーのアイコンは競合を表すが表示されます。
この場合競合を開発者自身で解決する必要があります。
競合を起こしたファイルを開くと競合部分が"<<<<<<<"と">>>>>>>"で示されています。
"======"で区切られた上下に競合した行の内容が示されています。
どちらか有効な変更を残し、その他の部分を削除しファイルを保存します。
改めて「リポジトリに格納」コマンドで競合を解決した内容でマスターファイルを更新します。
編集したファイルを編集前のマスターの状態に戻したい場合があります。
この場合「リポジトリから更新・マージ」ダイアログから「マージせずにリポジトリから上書き」選択すれば、リポジトリから最新リビジョンのソースを取得し、ローカルファイルを上書きし編集前のファイルに戻すことができます。
開発の途上状態で不具合あるソースを一時的に過去の状態に戻し、安定したリビジョンでソースを固定し、安定状態になったタイミングで再び最新リビジョンを取り込みたいといったケースがあります。
この場合、「リポジトリから更新・マージ」ダイアログから「過去のリビジョンに戻し、そのリビジョンをロックする」を選択すれば。リポジトリから過去のリビジョンを取り出すことができます。
指定はリビジョン番号、タグ名、日付などで行うことができます。
過去のリビジョンを取り出したファイルはローカルロック状態となります。
他の開発者によりリポジトリのリビジョンが更新された場合でも「リポジトリから更新・マージ」によりローカルファイルのリビジョンが更新されることはありません。これにより常に一定のリビジョンを維持することができます。
ロック状態になったファイルはプロジェクトビューにマークで表されます。
ロック状態のファイルをローカルで編集するとアイコンがに変化します。
また、ソース管理ペインのリビジョン履歴リストに現在ロックされているリビジョンが示されます。
このロック状態は「リポジトリから更新・マージ」ダイアログから「リビジョンロックを解除」を実行するまで有効です。
前項のリビジョンのロック状態を解除します。
「リポジトリから更新・マージ」ダイアログから「リビジョンロックを解除」を選択します。
解除時ローカルファイルが編集されている場合、最新リビジョンとのマージが行われます。