用diff和patch維護原始碼。

2021-09-04 07:02:15 字數 855 閱讀 9840

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檔案運用於 原來的兩個集合之一,從而得到另乙個集合。舉...