如何在CVS中恢复已删除的文件?

我已经从CVS分支中删除了一个签入文件,即:

cvs remove -f file.txt cvs commit 

我如何恢复文件?

我相信:

 cvs add file.txt cvs commit file.txt 

将从阁楼上复活。

我发现你不能使用cvs add来撤消已经完成的cvs remove操作。 所以这个工作:

 $ cvs remove -f file.txt $ cvs add file.txt 

但是这不起作用:

 $ cvs remove -f file.txt $ cvs commit $ cvs add file.txt 

到目前为止我发现的最简单的方法是运行cvs status file.txt来查找修订号。 然后抓取修订版的内容并将其添加回来:

 $ cvs update -p -r rev file.txt > file.txt $ cvs add file.txt $ cvs commit 

cvs add对我不起作用,因为服务器上的cvs版本很旧。 我已经确认,它可以正常使用CVS版本1.11.22。

尝试:

 cvs add file.txt cvs update file.txt cvs commit file.txt 

鉴于哈利缺乏成功,下面是我所做的certificate上述答案有效的抄本(事先对其长度表示歉意):

 C:\foo>dir Volume in drive C is Local Disk Volume Serial Number is 344F-1517 Directory of C:\foo 28/09/2008 05:12 PM <DIR> . 28/09/2008 05:12 PM <DIR> .. 28/09/2008 05:12 PM <DIR> CVS 28/09/2008 05:11 PM 19 file.txt 1 File(s) 19 bytes 3 Dir(s) 22,686,416,896 bytes free C:\foo>cvs status file.txt =================================================================== File: file.txt Status: Up-to-date Working revision: 1.2 Sun Sep 28 07:11:58 2008 Repository revision: 1.2 C:\jason\CVSROOT/foo/file.txt,v Sticky Tag: (none) Sticky Date: (none) Sticky Options: (none) C:\foo>cvs rm -f file.txt cvs remove: scheduling `file.txt' for removal cvs remove: use 'cvs commit' to remove this file permanently C:\foo>cvs commit -m "" file.txt Removing file.txt; C:\jason\CVSROOT/foo/file.txt,v <-- file.txt new revision: delete; previous revision: 1.2 done C:\foo>cvs status file.txt =================================================================== File: no file file.txt Status: Up-to-date Working revision: No entry for file.txt Repository revision: 1.3 C:\jason\CVSROOT/foo/Attic/file.txt,v C:\foo>more file.txt Cannot access file C:\foo\file.txt C:\foo>dir Volume in drive C is Local Disk Volume Serial Number is 344F-1517 Directory of C:\foo 28/09/2008 05:12 PM <DIR> . 28/09/2008 05:12 PM <DIR> .. 28/09/2008 05:12 PM <DIR> CVS 0 File(s) 0 bytes 3 Dir(s) 22,686,400,512 bytes free C:\foo>cvs add file.txt cvs add: Resurrecting file `file.txt' from revision 1.2. U file.txt cvs add: Re-adding file `file.txt' (in place of dead revision 1.3). cvs add: use 'cvs commit' to add this file permanently C:\foo>cvs commit -m "" file.txt Checking in file.txt; C:\jason\CVSROOT/foo/file.txt,v <-- file.txt new revision: 1.4; previous revision: 1.3 done C:\foo>more file.txt This is a test... C:\jason\work\dev1\nrta\foo>dir Volume in drive C is Local Disk Volume Serial Number is 344F-1517 Directory of C:\jason\foo 28/09/2008 05:15 PM <DIR> . 28/09/2008 05:15 PM <DIR> .. 28/09/2008 05:13 PM <DIR> CVS 28/09/2008 05:13 PM 19 file.txt 1 File(s) 19 bytes 3 Dir(s) 22,686,375,936 bytes free 

显然他做的是正确的事情,但他所观察到的行为是不同的。 也许由于CVS版本的不同(我在Windows上使用1.11.22)。

cd进入$ CVSROOT目录和相关的模块目录,然后在Attic上,编辑fileOfInterest,v并改变说死的行; Exp; 然后将fileOfInterest,v移动到上面的目录。

检出模块中的更新现在将恢复该文件。

最简单但最简单的方法是在被删除文件的相同位置“cd”到CVS目录中。

然后编辑名为“条目”的文件。

find表示您删除的文件的行。 请注意,在/之后有一个“ – ”

删除' – ',保存文件,瞧!

Yuck,但它的作品。

这是我所做的。 我只是创build一个同名的空文件,然后添加并提交它,然后检索旧版本并重新提交。