自分の修正を誰かに渡して組合せの動作確認を依頼する時に、ソースコードそのまま渡して上書きしてね!という具合にしていませんか?
階層が違うファイルを複数送る場合、1つ1つ階層に上書きしてもらう手間がありますし、、リビジョンのベースが違って、上書きしたことで思わぬ先祖返りを起こしてしまうかもしれません。
そんな時に役立つのがpatchです。
本記事では、patchファイルを自在に扱うための方法を記します。とっても簡単ですよ!
patchファイルでできること
1. 複数ファイルの変更を1ファイルで送れる
階層情報もpatchに含まれるので、「〇〇のディレクトリの〇〇というファイルです」のような説明が不要になります。
2. 簡単に送り合える
変更部分に関する情報のみを送るので、ファイルサイズが非常に軽いです。メールやチャットでのやり取りも容易。
patchファイルを作る
さて、早速作っていきましょう!
基本的にpatchファイルを作るには、2つの方法があります。
ディレクトリを指定する(オススメ)
- 変更されたファイルが入っている親ディレクトリを右クリックしてTortoise SVN → パッチの作成を選択
- patchにしたいファイルにチェックを入れてOKを押す
- 保存先のディレクトリを選択
- 作ったディレクトリパスを教えてあげると親切
ファイルを指定する
1.変更したファイルを右クリックしてTortoise SVN -> パッチの作成を選択
2.patchにしたいファイルにチェックを入れてOKを押す(1つでも出ます・・・)
3.保存先のディレクトリを選択
4.作ったディレクトリパスを教えてあげると親切(理由は後ほど)
.patchというファイルが出来たら成功です。
patchファイルを適用する
patchを貰ったら適用します。こちらも方法が2つあります。
パスを指定
- patchファイルを右クリックしてTortoiseSVN -> パッチを適用 を選ぶ
- 作成者に教えてもらったディレクトリパスを指定する。
- 教えてもらっていない場合は、適当に対象の作業ディレクトリのルートディレクトリを選択。 (さすがにどの作業コピーに適用するかは分かっているかと思いますので・・)
- 「どのパスを使いますか?」というようなメッセージが出たら、「見つかったパス」を指定。
- マージウィンドウと小窓が出ますので、全部適用する場合、小窓の「全て適用」を押したら終了。
- ファイル個別に適用したい場合、小窓のファイル名をダブルクリックしてマージします。
ディレクトリまで持って行く
ちょっと作業が簡単になります。
1. patchファイルを教えてもらったディレクトリに置く。
2. TortoiseSVN -> パッチを適用 を選ぶ
3. マージウィンドウと小窓が出ますので、全部適用する場合、小窓の「全て適用」を押したら終了。
4. ファイル個別に適用したい場合、小窓のファイル名をダブルクリックしてマージします。
競合が発生したら、どちらを適用するか選びますが、この辺りはマージと変わらないので、省略します。