diff和patch是linux標配的工具。在windows上,也有移植的版本可以使用。
使用中注意: 1、
2、使用方法:
可以對單個檔案或者整個目錄樹進行處理。
以最實用的方式舉例:
diff –nur dir_old dir_new > dir.patch
patch –p0 < dir.patch
注意:
patch時,dir.patch與目錄dir_old在同乙個父目錄(如:parent)中,在命令列下進入parent目錄,然後執行上述patch命令。
patch執行的原理:從補丁檔案dir.patch中讀取應用補丁的檔名,然後在當前目錄下查詢該檔案,找到就應用該補丁。為了讓patch能夠找到應用補丁的檔案,根據patch的檔案所在目錄與當前目錄的相對關係,可以用-pn指定patch讀取到補丁檔案中的路徑之後
(實際開啟乙個patch檔案看看再實踐一下就明白了)
diff的選項:
-a 把所有檔案都作為文字檔案進行比較。
-n 比較目錄時,如果某檔案只在一邊存在,則認為另一邊為空檔案。
-r 遞迴處理目錄的子目錄。
-u 用統一的輸出格式,即:顯示3行上下文。
patch的選項:
-pn 參見上面patch執行原理的描述。
-t 執行中不詢問任何問題。
-s silent
-d 指定搜尋應用補丁檔案的目錄。(執行patch前自動進入該目錄。)
-r 如果建立補丁檔案時傳遞給diff的新、舊檔案是反的,用此引數告訴patch把新舊檔案反過來。patch本身也會在應用補丁不成功時自動檢測能否反過來應用補丁。 注:
1、 2、
用Diff和Patch工具維護原始碼
假設program 1.0目錄中為老版,現開發完成的新版位於program 2.0目錄中,將兩個目錄置於同一父目錄下,然後在該父目錄上執行 將生成乙個program 2.0.patch的補丁檔案,發布該補丁檔案 當然可以先壓縮成bzip2格式 假設拿到的是program 2.0.patch.bz2檔...
diff和patch簡單使用
上面的兩個資料夾不同之處是前者有乙個aa.txt檔案,另外修改了cpu s3c44b0 cpu.c檔案 一共有這兩處不同,下面來使用diff進行建立補丁包 退到兩者的上一級目錄,執行diff nur u boot 1.3.1 u boot 1.3.0 test.patch 引數解釋 r recurs...
diff和patch使用指南
diff和patch是一對工具,在數學上來說,diff是對兩個集合的差運算,patch是對兩個集合的和運算。diff比較兩個檔案或檔案集合的差異,並記錄下來,生成乙個diff檔案,這也是我們常說的patch檔案,即補丁檔案。patch能將diff檔案運用於 原來的兩個集合之一,從而得到另乙個集合。舉...