■ はじめに
差分ファイル(パッチファイル)を使って、ソースをマージできる
注意
* Windowsだとできない? (Windows上のEclipseで使用した際にはエラーになったがLinux上のEclipseでは問題なかった)
構文
<patch patchfile="【差分ファイル】" originalfile="【パッチを当てる対象ファイル】" />
サンプル
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project basedir="." default="sample.patch" name="SampleCodes"> <property name="original.file" value="./etc/HelloWorld.java.orig" /> <property name="patch.file" value="./etc/HelloWorld.java.patch" /> <property name="output.file" value="./src/com/sample/HelloWorld.java" /> <target name="sample.patch"> <copy file="${original.file}" tofile="${output.file}" overwrite="true" /> <patch patchfile="${patch.file}" originalfile="${output.file}" /> </target> </project>
参考文献 http://www.jajakarta.org/ant/ant-1.6.1/docs/ja/manual/CoreTasks/patch.html
補足 : 差分ファイルについて
差分ファイルとは
* 差分ファイル(パッチファイル)とは、修正ファイルの変更点(差分情報)のみを抜き出したファイル
差分ファイル作成方法
diff -u [元ファイル] [変更後ファイル] > [パッチファイル]
[例]
diff -u HelloWorld.java.orig HelloWorld.java > HelloWorld.java.patch
* 調べたけど、フリーソフト使ったり、Cygwinでってあったけど、SVNを入れている場合、 右クリックのメニューから[Unified形式で変更を表示]で出せる
サンプル
元ファイル : HelloWorld.java.orig
package com.sample; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World! Mike!!"); } }
変更後ファイル : HelloWorld.java
package com.sample; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World! Tom!!"); } }
パッチファイル : HelloWorld.java.patch
--- HelloWorld.java.orig 2015-02-27 00:22:21.207981409 +0900 +++ HelloWorld.java 2015-02-27 00:22:28.991981657 +0900 @@ -2,6 +2,6 @@ public class HelloWorld { public static void main(String[] args) { - System.out.println("Hello World! Mike!!"); + System.out.println("Hello World! Tom!!"); } }
参考文献
http://qiita.com/tukiyo3/items/86df4992510d2e287ba5
関連記事
diff & patch コマンド ~ パッチ適用 ~
https://dk521123.hatenablog.com/entry/2023/10/16/141251