我如何将整个项目恢复到CVS中较早的标签?

我有一个有数千个文件的项目。 我做了一些影响几乎一半的文件的变化。 所做的更改包括编辑现有文件和添加新文件和目录。

我需要恢复所有这些更改并将项目恢复到原来的状态。 我做了所有这些之前创build了一个标签,但我不知道如何从标签恢复整个项目

不幸的是,这是CVS特别不擅长的事情。

我不认为你可能会失去大的承诺(*)的历史,而是你想要承诺你原来的改变(一些SCM的术语revert )。

我建议使用非CVS工具来确定需要完成的工作,然后在CVS中进行提交。

  • 有两个工作区签出。 一个签出到分支/头,另一个签出你的标签。
  • 创建每个工作区中的文件列表,并做适当的差异(不是cvs diff ,只是常规diffcomm或任何你想要的)来得到三个列表:你现在需要添加和删除的文件。
  • 做一些比较来找出你需要修改的文件。
  • cvs add需要cvs add的文件。 (不知道重新添加文件时是否需要-kb ,可能不是,但我不确定。)
  • cvs rm需要删除的文件。
  • 复制那些需要修改和cvs commit -R一次。

如果你有一个包含原始大提交细节的日志文件,你也可以用它来创建你的add / delete / modify命令列表。

(*)好吧,你可能一个接一个地使用cvs admin来删除新的文件版本,但我不认为这是可取的。