在CVS(或RCS)中加入两个历史版本?

问题描述:

我正在寻找一种方法来为单个文件加入两个修订历史记录。在CVS(或RCS)中加入两个历史版本?

我们的一个项目是通过RCS进行跟踪的。现在,这个项目住在CVS中。它最初是作为一个新项目承诺的。因此,CVS历史记录不显示通过RCS跟踪的旧版本。

例如,假设文件foo.c在RCS中修改了10次,然后在CVS中修改了2次。 RCS的版本为1.1至1.10,而CVS的版本为1.1,1.2和1.3。 RCS版本1.10和CVS版本1.1是相同的。

我想创建一个组合历史记录,使foo.c显示12个版本,从1.1到1.12。由于CVS以与RCS相同的文件格式存储修订,因此从现有RCS文件开始,然后使用“ci”命令(保留时间戳,用户标识和提交消息)检入新更改应该是一件简单的事情, 。任何CVS标签也需要保留。这个新的RCS文件将具有完整的历史记录,然后可以将其添加到CVS存储库中,替换旧版本。

假设在这个代码库中没有分支。只是直线发展。

这样的应用程序是否已经存在?

+1

在等待答案,请上网:从CVS培训手册本节http://rpmfind.net/tools/CVS/培训/ cvstrain-9.1.html – Pete 2009-08-03 19:36:50

我刚刚写了一个Python库,EditRCSPyPi),来操纵RCS文件。示例脚本rcs_join会将一个RCS文件的第一个版本连接到另一个RCS文件的头部,并更新分支和标记修订版本。

希望这你想要做什么(!虽然现在可能为时已晚)

如果它是单个文件,并且不必传输大量的修订版本,则可以一次从旧的版本控制系统检出一个修订版本,并在新的版本控制系统中将其提交(大多数版本控制系统元数据可以共存于同一个目录中)......当然,这种方法的工作原理就是源和目标版本控制系统是什么,当我遇到类似于你的问题时,这就是我亲自做的。

或者你可以尝试Tailor工具,它可以转换成许多版本控制系统,但我真的不知道它是否也可以像你需要的那样在一个版本中“合并”两个不同的历史。