diff -u (-c) と patch コマンド 

[linux] diff -u (-c) と patch コマンド の関係について確認してみた

結論としては

 $diff -c wrongfile correctedfile > patchfile.patch

にてパッチファイルを用意して

  patch 修正すべきファイル patch.file

にてパッチを当てる

以下、実験してみた結果

hirasawa@ubu1204:~/desktop/diff_patch$ cat orig.txt 
1 1
2 2
3 3
4 4

hirasawa@ubu1204:~/desktop/diff_patch$ cat revised.txt 
1 1
  newly added btw 1 and 2
2 2
3 3revised
4 4
hirasawa@ubu1204:~/desktop/diff_patch$ 

-u (unified ) option

hirasawa@ubu1204:~/desktop/diff_patch$ diff -u orig.txt revised.txt
--- orig.txt	2013-05-23 11:52:26.175662414 +0900
+++ revised.txt	2013-05-23 11:52:43.523748438 +0900
@@ -1,4 +1,5 @@
 1 1
+  newly added btw 1 and 2
 2 2
-3 3
+3 3revised
 4 4

-c context option

hirasawa@ubu1204:~/desktop/diff_patch$ diff -c orig.txt revised.txt
*** orig.txt	2013-05-23 11:52:26.175662414 +0900
--- revised.txt	2013-05-23 11:52:43.523748438 +0900
***************
*** 1,4 ****
  1 1
  2 2
! 3 3
  4 4
--- 1,5 ----
  1 1
+   newly added btw 1 and 2
  2 2
! 3 3revised
  4 4

unifiedのほうが私のこのみにみえるのでこちらでパッチを作成する

hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ diff -u orig.txt revised.txt > test.patch
hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ cat test.patch 
--- orig.txt	2013-05-23 11:52:26.175662414 +0900
+++ revised.txt	2013-05-23 11:52:43.523748438 +0900
@@ -1,4 +1,5 @@
 1 1
+  newly added btw 1 and 2
 2 2
-3 3
+3 3revised
 4 4

オリジナルのファイルをコピーしてテスト用のファイル(test.txt)を作る

hirasawa@ubu1204:~/desktop/diff_patch$ cp -p orig.txt test.txt
hirasawa@ubu1204:~/desktop/diff_patch$ patch test.txt < test.patch 
patching file test.txt
hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt orig.txt 
2d1
<   newly added btw 1 and 2
4c3
< 3 3revised
---
> 3 3
hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt revised.txt 
hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ 
hirasawa@ubu1204:~/desktop/diff_patch$ patch -R test.txt < test.patch 
patching file test.txt
hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt orig.txt 
hirasawa@ubu1204:~/desktop/diff_patch$ diff test.txt revised.txt 
1a2
>   newly added btw 1 and 2
3c4
< 3 3
---
> 3 3revised
hirasawa@ubu1204:~/desktop/diff_patch$