2008-09-26 105 views
52

有什麼方法可以列出CVS中兩個標籤之間已更改的所有文件?CVS:列出標籤(或日期)之間更改的所有文件

每次我們發佈一個版本時,我們都會在該版本的所有文件上應用一個標籤。我想查找所有發佈版本之間更改的文件。

如果我能找到在兩個日期之間改變的所有文件,它也可以工作。

回答

31

我想這個命令將幫助:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 > diffs 

其中RELEASE_1_0RELEASE_1_1是你的標籤的名稱。

你可以找到關於CVS diff命令here

多一點信息,再加上它應該是相當簡單的創建一個腳本,使報告滿足您的需求更suitbable,例如:文件的數量改變,刪除創建等據我所知,最常用的cvs GUI工具(wincvs和tortoise)不提供這種開箱即用的東西。

希望它可以幫助;)

+2

有能產生一個perl腳本調用cvs2cl不錯的格式化日誌版本,無論是作爲完成的報告,還是作爲文本或XML後處理:http://www.red-bean.com/cvs2cl/ – 2008-09-26 14:35:46

+0

剛剛通過谷歌發現這一點,它爲我節省了大量工作,非常感謝! 我試圖通過'歷史'命令找出,忘記差異。 – 2008-11-12 20:35:45

+0

`-N`在Windows機器上給出錯誤:`cvs [server aborted]:無法在基於NT的機器上使用保留文件名'nul' – 2017-01-10 09:33:44

4

DLira的方法給出了很多細節,包括所有的變化。

只得到文件列表,這個工程:

cvs diff -N -c -r RELEASE_1_0 -r RELEASE_1_1 | grep "Index:" > diffs 
+0

抱歉,我忘記評論詳細程度以及如何得到您想要的內容。但你是對的! grep是一種很好的方式來獲得你所需要的。 ;) – 2008-09-26 16:28:29

1

的最佳工具,我發現這是一個名爲cvs2cl.pl一個perl腳本。這可以生成幾種不同格式的更改列表。它有很多不同的選擇,但我使用的標籤 - 標籤選項是這樣的:

cvs2cl.pl --delta dev_release_1_2_3:dev_release_1_6_8 

cvs2cl.pl --delta dev_release_1_2_3:HEAD 

我也做用相同的工具日期比較。

23

我更喜歡使用rdiff-s選項

cvs rdiff -s -r RELEASE_1_0 -r RELEASE_1_1 module > diffs 

rdiff不需要沙箱; -s爲您提供了所做更改的摘要。

+0

我在這裏嘗試了大多數其他的選擇,並與其他人一起,我無法捕捉到所有的變化。謝謝! – Victor 2012-08-30 20:57:45

11

得到執行過一個版本和另一個改變使用標準CVS命令文件的列表:

cvs -q log -NSR -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt 

或者,讓犯評論列表剛落-R

cvs -q log -NS -rV-1-0-69::V-1-0-70 2>/dev/null >log.txt 

如果您將V-1-0-69V-1-0-70替換爲您正在比較的修訂版本。

7
cvs log -d ">=DATE" -N -S -R > cvs.log 
相關問題