Version control 在CVS(或RCS)中连接两个版本的历史记录?

Version control 在CVS(或RCS)中连接两个版本的历史记录?,version-control,cvs,rcs,Version Control,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跟踪的。现在,这个项目生活在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”命令检入新更改(保留时间戳、用户ID和提交消息)应该是一件简单的事情。任何CVS标记也需要保留。这个新的RCS文件将具有完整的历史记录,然后可以将其添加到CVS存储库中,替换旧版本

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


这样的实用程序已经存在吗?

如果它是一个文件,并且您不必传输大量的修订,那么您始终可以从旧版本控制系统一次签出一个修订,并在新版本控制系统中提交该修订(大多数版本控制系统元数据可以共存于同一目录中)…此方法有效,当然,无论源和目标版本控制系统是什么,当我遇到与您类似的问题时,我个人就是这么做的


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

我刚刚编写了一个Python库(),用于处理RCS文件。示例脚本rcs_join将一个rcs文件的第一个版本连接到另一个rcs文件的头部,并更新分支和标记版本


希望这能满足您的需求(尽管现在可能太晚了!)

在等待答案时,请查看:CVS培训手册中的这一部分