我的一位同事完全弄乱了我们主要 CVS 存储库中目录的内容。我只需要将整个模块恢复到去年底的状态即可。请问执行此操作的 CVS 命令是什么?
他已经添加和删除了数百个文件,因此简单的“从旧的签出和提交中复制文件”是不够的。
我有 RTFM 和 STFW,我试过这个:
cvs co modulename # Note no -P option
cvs up -jHEAD -jMAIN:2008-12-30 modulename
但这不起作用 - 他创建的新文件被删除,但旧文件和目录不会复活。(我没有犯)。
我可能可以为此编写一个 shell 脚本,但这个功能肯定已经在 CVS 中了吗?
更新:一些澄清:
我可以在特定日期对模块进行本地结帐。问题是如何将其恢复到 CVS 中。
我确实有备份,但使用像 CVS 这样的修订控制系统的重点是它应该很容易获得任何历史状态。下次发生这种情况时,我可能没有足够的运气进行备份(例如,每天都有备份,所以我可能会失去一天的工作)。
我知道 CVS 已经过时了,我们应该转向更新的东西。但是在拥有大量基于 CVS 的工具(检查和构建脚本、每晚构建服务器等)的大型团队中,这种移动的时间成本是相当可观的。(评估、更新脚本、测试、迁移、培训、浪费开发人员时间、并行维护两个系统,因为旧分支仍然需要 CVS)。因此,这必须由管理层计划和安排。
更新#2:我要开始赏金了。 要获得赏金资格,您必须解释如何使用普通 CVS 命令恢复,而不是使用 hacky shell 脚本。
更新#3:服务器是CVS 1.12.13。访问是通过 pserver。我可以在 Linux PC 上使用相同版本的 CVS,或者在 Windows 上使用CVSNT 2.0.51d客户端。