如何保持CVS和git存储库同步?什么脚本可以帮我管理这个?

时间:2012-03-08 22:42:38

标签: git cvs legacy mirror

是的,我知道我应该放弃CVS,但这不是我做出的决定,由于“遗留”支持,CVS将会存在一段时间。但是,我认为第1步是在git上下文中显示repo。出于这个原因,我首先想要同步CVS - > 'readonly'Git。

然后我可以手动将git repo中的更改重新放回CVS。

我可以使用哪些工具来执行此操作?哪个最好?什么是不能做的(我认为所有CVS的东西都可以移植到Git中,而且我不需要系统地反向)。

谢谢!

1 个答案:

答案 0 :(得分:3)

已经有一些答案:例如here。我已经使用git内置的cvsimport来处理许多小而简单的存储库,这很好用。但是你必须仔细检查(或让你的脚本这样做)。在一个大型存储库中,我发现转换中的错误,其中文件已从CVS中删除,但这未能反映在git镜像中。事实证明,它无法从CVS正确导入供应商分支。

最后我发现cvs2git更可靠。但是,此工具不支持增量转换。但是,您可以通过执行完整的cvs2git转换然后将结果推送到正在进行的镜像来解决此问题。这样做的一个优点是你的git用户可以根据需要推送工作分支,只要他们不对镜像分支进行提交即可。这已经在一个相当大的存储库(10年的工作,50万LOC)上运行了大约一年。