受け取った変更を受け入れる前に、同僚が行った変更を確認します。
ステータスを取得することから始めます
svn st -u
...これにより、着信変更があることがわかります
* 9803 incomingChanges.html
M 9803 localChanges.html
M * 9803 localAndIncoming.html
私が変更したものを見ることができます
svn diff localChanges.html
...しかし、どのように差分を取ることができますかlocalAndIncoming.html
何が変更されたか、そしてそれが私の作業コピーとどのように異なるかを示すには?
私はあなたが必要とするものは次のとおりであると信じています:
svn diff -rBASE:HEAD
tortoisesvn (Windowsを使用している場合)
ログ画面を呼び出す
最新リビジョンを選択
LocalAndIncoming.htmlを右クリックします
作業コピーと比較を選択します
FYI svn diff
は、ライブリポジトリのバージョンではなく、.svn
ディレクトリに保存されている変更されていないファイルに基づいて差分を提供します。
svn update
を実行してSubversionに更新を試み(場合によってはマージも)、次にsvn diff
を実行することもできますが、思ったほどきれいではありません。
最後にsvn diff
は、リポジトリでの差分のみをサポートしています。例:
svn diff svn://svnserver/repo/localChanges.html -r REV_NO
デフォルトでは、HEAD=と渡されたリビジョンを比較します。
新しいフォルダで別のチェックアウトを実行します。
cd ..
svn checkout /path/to/repo clean_working_copy
Clean_working_copyを再利用する場合は、前に更新することを忘れないでください
svn update clean_working_copy
次に、ファイルをclean_working_copyのファイルと比較します。
diff your_working_copy/localAndIncoming.html clean_working_copy/localAndIncoming.html
または、好みの3ウェイdiffを使用します(私はkdiff3です)
kdiff3 --L1 Base --L2 theirs --L3 mine your_working_copy/.svn/text-base/localAndIncoming.html clean_working_copy/localAndIncoming.html your_working_copy/localAndIncoming.html
おもう
svn diff -r HEAD
ほとんどあなたが欲しいものを与えます。唯一のことは、+と-が予想とは逆になっていることです。
新しいバージョンを実際にダウンロードするまで、実際にはできません。このような制限は、新しいタイプのソース管理が最近普及した大きな理由の1つでした。これは、分散型ソース管理と呼ばれます。
この新しいフォームを使用すると、独自のローカルリポジトリが作成され、メインリポジトリから変更を取得して差分を実行できます。変更が気に入らない場合は、独自のリポジトリを元に戻して、そこから。
そして、ええ、私はあなたが製品を切り替えることは最適なソリューションではないことを示唆していますが、それでもなおソリューションです。