rdiff 發行版之間 patch 格式的差異

2021-08-22 12:57:35 字數 1995 閱讀 1616

建立兩個發行版之間的 larry wall 格式的 patch(1) 檔案,它可以直接用於patch檔案,讓舊發行版更新到新發行版。(此為僅有的直接操作倉庫的 cvs 命令之一,而不需要事先檢出。) diff 的輸出傳送到標準輸出裝置上。

你可以指定(採用標準的 `-r

' 和 `-d

' 選項)任何乙個、兩個修訂版或日期的組合。如果指定乙個修訂版或日期,patch 反映的是此修訂版或日期與當前 rcs 檔案中最新修訂版之間的差異。

注意,如果軟體發行版影響多個目錄,那麼在給舊原始碼打補丁的時候,需要給patch命令指定 `-p

' 選項,讓patch找到處於其他目錄中的檔案。

rdiff options

rdiff支援的標準選項(參閱 common options,了解完整說明):

-ddate

使用不遲於

date 的最新修訂版。

-f如果沒有匹配的修訂版,獲取最新的修訂版(而不是忽略這些檔案)

-kkflag

通過 kflag 處理關鍵字。參閱

keyword substitution。

-l只在當前目錄,不傳遞到子目錄。

-r遞迴方式檢查。此為預設選項。

-rtag

使用 tag 修訂版,或者當

date 指定,並且

tag 是分支標籤,分支

tag 上的版本可以當作是在

date 上。見

common options。

另外還支援以下選項:

-c使用上下文 diff 格式。此為預設。

-s建立更新總結報告,而不是補丁。總結中包括兩個發行版間檔案修改和新增的資訊。它會被傳送到標準輸出裝置。它的用處在於,例如,找出兩個日期或發行版間有哪些檔案被改動。

-t兩個修訂版的頂端的差異,傳送到標準輸出裝置。這對於檢視檔案最後的修改很有用。

-u上下文差異中使用 unidiff 格式。記住,舊版本的patch程式不能處理 unidiff 格式,所以,如果打算將補丁發到網上,不該使用 `

-u'。

-vvn

按照當前

rcs 版本

vn 的規則(擴充套件格式在

rcs 版本 5 做了修改) 擴充套件關鍵字。注意此選項不再使用。

cvs 只按

rcs 版本 5 的方式擴充套件關鍵字。

rdiff 示例

假設你收到 [email protected] 發來的郵件,索取 tc 編譯器從 1.2 到 1.4 發行版的更新。你手頭上沒有這個補丁,但使用 cvs 可以用乙個命令很容易得到:

$ cvs rdiff -c -r foo1_2 -r foo1_4 tc | \

$$ mail -s 'the patches you asked for' [email protected]

假如你生成了發行版 1.3,並為修復 bug 建立了 `r_1_3fix

' 分支。以前還為發行版 1.3.1 建立 `r_1_3_1

$ cvs patch -s -r r_1_3_1 -r r_1_3fix module-name

cvs rdiff: diffing module-name

file changelog,v changed from revision 1.52.2.5 to 1.52.2.6

file foo.c,v changed from revision 1.52.2.3 to 1.52.2.4

file bar.h,v changed from revision 1.29.2.1 to 1.2

linux發行版選擇

應用的環境和背景第乙個特點決定了這個發行版本不能太複雜,複雜到日常的應用的維護都要花費大量的時間 也不能太簡單,簡單到丟了linux的特點,讓人得出 這跟 windows差不多嘛 學生的水平良莠不齊,大多數從是由於興趣從windows下冒冒失失的跑到linux陣營裡來,相當一部分的人不新鮮味嚐過之 ...

Linux發行版 列表

general canonical 發行 ubuntu哲學 ubuntu foundation人物 jono bacon ben collins benjamin mako hill ian jackson scott james remnant mark shuttleworth jeff wau...

OpenWrt的發行版

說起openwrt的版本問題,真的讓人又愛又恨。之前,我一直使用正在開發版本,只是知道有white russian 和kamliza這兩個版本,並沒有嘗試或者想過要編譯他們,我一直認為,正在開發的才是最新的,而且囊括了所有的。這是乙個致命的誤區。今天在尋找ar9341的晶元的產品的過程中,編譯發現一...