2019年5月29日 星期三

Ubuntu 協同開發工具 diff與patch


在多人協同開發中,

很重要的一環在於檔案的同步,

相關的工具有很多,

Ubuntu內建就有很好的工具可使用,

這就是今天的主題:

Ubuntu 協同開發工具 diff與patch


在開始舉例說明前,

先了解下工具的語法:


diff -Naur [from] [to] > [patch_name]


可使用的參數:


-N
目錄比較中,如果只在一個目錄中找到文件,則將其視為存在但在另一個目錄中為空

-a
將所有檔案視為文字檔再逐行比較,即使原始格式不是文字檔

-u
使用統一輸出格式

-r
比較找到的所有子目錄



光看說明是無法學到東西的,

直接以test1  test2 兩個資料夾,

裡面存在testfile為範例



diff -Naur test1 test2 > difference.txt


將test1與test2資料夾比較將不同之處存為difference.txt



由上圖範例中,

 將 difference.txt 印出來看,

可看到兩者的差異


再來就是要套用此差異,

利用

patch -p0 < difference.txt

 將結果印出來可看到,

test1 資料夾中的檔案已經套用test2中的檔案,



套用之後,

如果要回覆原來檔案,

直接執行

patch -R -p0 < difference.txt

就能將test1中的檔案回覆到原來的內容



上述的例子為資料夾的比較與套用,

檔案的比較用法也是一樣的

可使用

diff -urN file1 file2 > difference.txt





沒有留言: