diff-patch
无    2017-02-24 21:36:59    186    0    0
tianwaifeixian

全程演示diff和patch基础

/var/smdk2440/qt-src/test
五 2月 24|21:02|0:>cat new/new1/new2/new2.txt                               
new-dir2
new
/var/smdk2440/qt-src/test
五 2月 24|21:02|0:>cat old/old1/old2/old2.txt                               
old-dir2
1111111
/var/smdk2440/qt-src/test
五 2月 24|21:02|0:>diff -Nur new/new1/new2/new2.txt old/old1/old2/old2.txt  
--- new/new1/new2/new2.txt      2017-02-24 20:57:20.732527223 +0800
+++ old/old1/old2/old2.txt      2017-02-24 21:01:15.846027476 +0800
@@ -1,2 +1,2 @@
-new-dir2
-new
+old-dir2
+1111111
/var/smdk2440/qt-src/test
五 2月 24|21:02|0:>diff -Nur new/new1/new2/new2.txt old/old1/old2/old2.txt  > old-to-new.patch
/var/smdk2440/qt-src/test
五 2月 24|21:03|0:>l
总用量 8
drwxr-xr-x 3 xuan users  18 2月  24 20:51 old
drwxr-xr-x 3 xuan users  18 2月  24 20:51 new
-rw-r--r-- 1 xuan users   0 2月  24 20:52 old1.txt
-rw-r--r-- 1 xuan users   2 2月  24 20:53 test.txt
-rw-r--r-- 1 xuan users 176 2月  24 21:03 old-to-new.patch
/var/smdk2440/qt-src/test
五 2月 24|21:03|0:>vim old-to-new.patch 
/var/smdk2440/qt-src/test
五 2月 24|21:04|0:>cat old
old/              old1.txt          old-to-new.patch  
/var/smdk2440/qt-src/test
五 2月 24|21:04|0:>cat old-to-new.patch 
--- new/new1/new2/new2.txt      2017-02-24 20:57:20.732527223 +0800
+++ old/old1/old2/old2.txt      2017-02-24 21:01:15.846027476 +0800
@@ -1,2 +1,2 @@
-new-dir2
-new
+old-dir2
+1111111
/var/smdk2440/qt-src/test
五 2月 24|21:04|0:>ls
new  old  old1.txt  old-to-new.patch  test.txt
/var/smdk2440/qt-src/test
五 2月 24|21:07|0:>cd new/
/var/smdk2440/qt-src/test/new
五 2月 24|21:07|0:>patch -p1 < ../old-to-new.patch 
patching file new1/new2/new2.txt
/var/smdk2440/qt-src/test/new
五 2月 24|21:08|0:>tree new1/
new1/
└── new2
    └── new2.txt
1 directory, 1 file
/var/smdk2440/qt-src/test/new
五 2月 24|21:08|0:>cat new1/new2/new2.txt
old-dir2
1111111
/var/smdk2440/qt-src/test/new
五 2月 24|21:08|0:>
/var/smdk2440/qt-src/test/new
五 2月 24|21:08|0:>..
/var/smdk2440/qt-src/test
五 2月 24|21:14|0:>pwd
/var/smdk2440/qt-src/test
/var/smdk2440/qt-src/test
五 2月 24|21:14|0:>ls
new  old  old1.txt  old-to-new.patch  test.txt
/var/smdk2440/qt-src/test
五 2月 24|21:14|0:>mv old/* .
/var/smdk2440/qt-src/test
五 2月 24|21:14|0:>l
总用量 8
drwxr-xr-x 3 xuan users  18 2月  24 20:51 old1
drwxr-xr-x 3 xuan users  18 2月  24 20:51 new
-rw-r--r-- 1 xuan users   0 2月  24 20:52 old1.txt
-rw-r--r-- 1 xuan users   2 2月  24 20:53 test.txt
-rw-r--r-- 1 xuan users 176 2月  24 21:03 old-to-new.patch
drwxr-xr-x 2 xuan users   6 2月  24 21:14 old
/var/smdk2440/qt-src/test
五 2月 24|21:14|0:>tree old
old
0 directories, 0 files
/var/smdk2440/qt-src/test
五 2月 24|21:15|0:>rm -r old
/var/smdk2440/qt-src/test
五 2月 24|21:15|0:>cat old1/old2/old2.txt 
old-dir2
1111111
/var/smdk2440/qt-src/test
五 2月 24|21:15|0:>vim old1/old2/old2.txt              
/var/smdk2440/qt-src/test
五 2月 24|21:16|0:>cat old1/old2/old2.txt 
-------
+++++++
old-dir2
1111111
/var/smdk2440/qt-src/test
五 2月 24|21:17|0:>ls
new  old1  old1.txt  old-to-new.patch  test.txt
/var/smdk2440/qt-src/test
五 2月 24|21:17|0:>diff -Nur new/ old1/ > old1-to-new.patch
/var/smdk2440/qt-src/test
五 2月 24|21:18|0:>l
总用量 12
drwxr-xr-x 3 xuan users  18 2月  24 20:51 old1
drwxr-xr-x 3 xuan users  18 2月  24 20:51 new
-rw-r--r-- 1 xuan users   0 2月  24 20:52 old1.txt
-rw-r--r-- 1 xuan users   2 2月  24 20:53 test.txt
-rw-r--r-- 1 xuan users 176 2月  24 21:03 old-to-new.patch
-rw-r--r-- 1 xuan users 436 2月  24 21:18 old1-to-new.patch
/var/smdk2440/qt-src/test
五 2月 24|21:18|0:>rm test.txt
/var/smdk2440/qt-src/test
五 2月 24|21:18|0:>rm old-to-new.patch
/var/smdk2440/qt-src/test
五 2月 24|21:18|0:>ls
new  old1  old1-to-new.patch  old1.txt
/var/smdk2440/qt-src/test
五 2月 24|21:18|0:>cd new/
/var/smdk2440/qt-src/test/new
五 2月 24|21:19|0:>patch -p1 < ../old1-to-new.patch 
patching file new1/new2/new2.txt
patching file old2/old2.txt
/var/smdk2440/qt-src/test/new
五 2月 24|21:19|0:>..
/var/smdk2440/qt-src/test
五 2月 24|21:19|0:>tree new/
new/
└── old2
    └── old2.txt
1 directory, 1 file
/var/smdk2440/qt-src/test
五 2月 24|21:19|0:>cat new/old2/old2.txt 
-------
+++++++
old-dir2
1111111
/var/smdk2440/qt-src/test
五 2月 24|21:26|0:>​



总结 :
diff -Nura 源文件 修改后的文件  > 补丁文件
即:后面的目录内容打到前面目录内容

/var/smdk2440/qt-src/test
五 2月 24|21:33|0:>tree
.
├── new
│   └── new1
│       └── new2
│           └── new2.txt
├── old
│   └── old1
│       └── old2
│           ├── old1.txt
│           └── old2.txt
└── old-to-new.patch
6 directories, 4 files
/var/smdk2440/qt-src/test
五 2月 24|21:33|0:>cd new/
/var/smdk2440/qt-src/test/new
五 2月 24|21:33|0:>patch -p1 < ../old-to-new.patch 
patching file new1/new2/new2.txt
patching file old1/old2/old2.txt
/var/smdk2440/qt-src/test/new
五 2月 24|21:33|0:>..
/var/smdk2440/qt-src/test
五 2月 24|21:34|0:>tree 
.
├── new
│   └── old1
│       └── old2
│           └── old2.txt
├── old
│   └── old1
│       └── old2
│           ├── old1.txt
│           └── old2.txt
└── old-to-new.patch
6 directories, 4 files
/var/smdk2440/qt-src/test
五 2月 24|21:34|0:>​


为嘛old1.txt没有打进去?

取消补丁用patch -R选项

 

上一篇: 用trash-cli配置shell的rm和mv

下一篇: u-boot-1.1.6修改默认内核启动空间

186 人读过
立即登录, 发表评论.
没有帐号? 立即注册
0 条评论
文档导航