TortoiseSVN のような SVN クライアントを使用している場合、通常のマージでmergeinfo
は、ルート フォルダーのフォルダー プロパティとして自動的に更新され、ファイルのリストをコミットする際にプロパティが変更されたフォルダーがリストされます。
これがコミットに対して自動的に行われない場合、TortoiseSVN クライアントを使用している場合は、手順に従って手動で行うこともできます (root
親mytask
として、現在のタスク ブランチsubtask
として、現在のブランチから既にマージされたバック ブランチとして、programs
および各ブランチのコード フォルダー):
programs
ブランチの作業コピーのフォルダを右クリックしmytask
、オプションを選択しますTortoiseSVN-->Properties
。
以前に記録したことがある場合は、新しいウィンドウに次のような値を持つmergeinfo
プロパティが一覧表示されます。svn:mergeinfo
ルート/プログラム:1-489
ルート/タスク/mytask/タスク/サブタスク/プログラム:380-410
その後、次の手順を実行できます。
a) svn:mergeinfo アイテムを選択して、ウィンドウで [編集] --> [詳細設定] オプションを選択し、コミットする mergeinfo を更新して [OK] をクリックします。
新しいウィンドウで、以前の がない場合はmergeinfo
、次の手順に進むことができます。
a) オプションを選択しますNew-->Advanced
。
b)svn:mergeinfo
ドロップダウン リストから選択しmergeinfo
、値のテキスト ボックスに適切な値を追加して保存します。
- フォルダーをクリックしてSVNコミットを実行すると、ファイル内のフォルダー
programs
がリストprograms
され、プロパティの変更のみでコミットされ、コミットできます。
一方で
親から作業コピーへのマージ中にマージされたファイルのみをコミットし、ローカルで変更された他のファイルをコミットしないようにする場合、これを直接行う方法はありません。間接的な方法は、タスク ブランチ ( ) の 2 つの別々の作業コピー (copy1 と copy2 としましょう) を保持mytask
し、次の手順を実行することです。
copy1
ローカルのすべての変更が行われているので、しばらくそれを脇に置いておくことができます
- SVN
copy2
は、ブランチの新しい作業コピーをチェックアウトします。
- 親からの変更をマージして
copy2
コミットします。これにより、マージされた変更のみが必要なすべてのものとともにサーバーにコミットされますmergeinfo
。
- 次に、に移動し
copy1
、SVN 更新を実行すると、サーバーからこの作業コピーへの新しいマージされた変更が取得されます。(マージ中に更新され、ローカルの変更中にも変更されたファイルがある場合、この SVN の更新中に競合します)。競合を解決すると、ローカルの変更を続行できます。