patch 的生成与合入
SVN 下 patch的生成:
1、某个指定的提交的patch:
svn diff -c r25313 > r25313.patch
2、两个提交之间的patch:
svn di -r r25312:r25313
其它:
svn diff -r r25111:r25313 是r25111以后到r25313,当前目录的所有修改,不包括r25111修改。
svn diff -r r25111-r25313 是r25111到r25313,当前目录的所有修改,包括r25111修改。
svn diff -r r25312:r25313 是r25313,当前目录的所有修改,显示r25313这个提交的修改。和svn diff -c r25313的效果一样
svn diff -c r25313 表示r25313的changes。
svn diff -c -r25313 跟svn diff -c r25313相反,表示r25313的反修改,提交这个patch就可以回退r25313
SVN 下patch的合入:
svn patch 20171018.diff
~/code/360os/trunk_new/alps$ svn patch 20171018.diff
U packages/apps/Settings/src/com/tpw/download/DownloadService.java
U packages/apps/Settings/src/com/tpw/download/OkHttpClientManager.java
U packages/apps/Settings/src/com/tpw/download/DownloadService.java
U packages/apps/Settings/src/com/tpw/download/OkHttpClientManager.java
linux 下使用 patch 命令合入PATCH:
patch -p0 < 20171018.diff
其中p0代表的是路径,0代表忽略的路径层数,0代表当前路径,不忽略。
如patch为:
Index: packages/apps/Settings/src/com/tpw/download/DownloadService.java
===================================================================
--- packages/apps/Settings/src/com/tpw/download/DownloadService.java(版本 25353)
+++ packages/apps/Settings/src/com/tpw/download/DownloadService.java(工作副本)
@@ -77,7 +77,7 @@
IntentFilter filter = new IntentFilter();
===================================================================
--- packages/apps/Settings/src/com/tpw/download/DownloadService.java(版本 25353)
+++ packages/apps/Settings/src/com/tpw/download/DownloadService.java(工作副本)
@@ -77,7 +77,7 @@
IntentFilter filter = new IntentFilter();
...
patch生成的路径为packages的父目录alps
如果是在alps目录下执行patch命令,则不需要忽略路径,命令应该为:
~/code/360os/trunk_new/alps$ patch -p0 < 20171018.diff
patching file packages/apps/Settings/src/com/tpw/download/DownloadService.java
patching file packages/apps/Settings/src/com/tpw/download/OkHttpClientManager.java
patching file packages/apps/Settings/src/com/tpw/download/DownloadService.java
patching file packages/apps/Settings/src/com/tpw/download/OkHttpClientManager.java
如果是在packages目录下执行patch命令,此时就需要忽略一级目录,即忽略掉packages这个目录,命令应该为:
~/code/360os/trunk_new/alps/packages$ patch -p1 < 20171018.diff
patching file apps/Settings/src/com/tpw/download/DownloadService.java
patching file apps/Settings/src/com/tpw/download/OkHttpClientManager.java
patching file apps/Settings/src/com/tpw/download/DownloadService.java
patching file apps/Settings/src/com/tpw/download/OkHttpClientManager.java
回退补丁:
patch -p1 -R < 20171018.diff
patch -p1 -R < 20171018.diff
patching file apps/Settings/src/com/tpw/download/DownloadService.java
patching file apps/Settings/src/com/tpw/download/OkHttpClientManager.java
patching file apps/Settings/src/com/tpw/download/DownloadService.java
patching file apps/Settings/src/com/tpw/download/OkHttpClientManager.java