2012-05-14 51 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