在多人協同開發中,
很重要的一環在於檔案的同步,
相關的工具有很多,
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
沒有留言:
張貼留言