2012-05-14 75 views
5

一旦使用cvs remove <dir>cvs commit刪除了一個目錄,是否有一種簡單的方法可以撤消更改 - 恢復工作副本和存儲庫中的目錄?到目前爲止,我只能找到一些建議,如果我還沒有完成提交,或者如果它是一個文件而不是一個目錄。如果可能的話,我想保留目錄內容的歷史記錄。如何在提交更改後恢復從CVS中刪除的目錄?

回答

5

(回答我的問題,我想通了。)

要恢復已刪除的目錄中刪除,一直致力於後:

cvs update -d -R -j <rev2> -j <rev1> <dir> 

其中:

<rev2>是修訂其由於刪除而導致。

<rev1>是rev2之前的版本。

<dir>是被刪除的目錄。

0

讓我們假設你已經提交了一個文件,但這最終導致了可怕的事情。以下是如何撤消提交:

從提交後獲取版本號。您可以在文件中使用$ Id $標記,或者使用cvs狀態。假設新版本是1.5。 從提交之前獲取版本號。通常情況下,這將比當前版本低。假設舊版本是1.4。 現在做到這一點:

cvs update -j 1.5 -j 1.4 filename 

CVS提交文件名 上面是合併的一個例子。您已經要求cvs將版本1.5和1.4之間的區別應用到您的工作副本。版本號的排序非常重要 - 可以將其視爲刪除更改,或者在版本歷史記錄中後退。

+0

正如我在問題中所說的,對文件起作用的建議無濟於事,因爲已刪除的項目是一個目錄。 – bythescruff

+0

bythescruff和Satya的答案拯救了我。我試圖恢復的目錄中的文件都有不同的版本,因此我首先使用bythescruff的答案恢復了目錄,然後使用Satya的答案恢復了各個文件。感謝你們倆。 – WileCau