确定cvs2git如何转换CVS树

时间:2012-08-20 18:16:39

标签: git cvs2git

我成功转换并导入了一个8年历史的CVS主树,其中包含了单独的CVS项目。我试图找出cvs2git转换对单个CVS存储库的作用。

幸运的是,我仍然拥有主CVS树并且没有部署任何东西,所以我可以再次这样做。我正在寻找可以让我探索我转换的git命令,所以我可以判断我是否应该单独转换每个CVS存储库。

2 个答案:

答案 0 :(得分:2)

您可以通过针对您的某个子项目发布cvs2git来验证git log做了什么:

git log -- <directory>

如果该命令返回完整历史记录,cvs2git将所有子项目合并为一个。根据您的意见,情况就是如此。

您现在可以选择:破坏回购或将其合并?这并不总是一个明确的决定,在CVS中破解回购的动机与在git中不同。

我建议您尝试使用新的git存储库几周,而不要将其分解为子模块,子树或嵌套存储库。这将使您熟悉常见的git命令,并让您尝试一些很棒的git功能,如git bisect,这些功能在您嵌套项目时更难以使用。另外,我怀疑你会发现分支,特别是合并,与CVS相比,变得非常容易。可能是您根本不需要破坏存储库。

如果您决定要这样做,请阅读一些other answers on the topic。拆分回购本身很容易。这是来自github的simple tutorial。快速谷歌搜索将会出现更多。

答案 1 :(得分:1)

我刚刚使用cvs2git转换了一个八年前的CVS存储库。我发现在生成的存储库中使用“gitk --all”可以让我很好地掌握转换的方式。所以,我建议你这个命令。

但是,我没有将整个CVS repo转换为单个Git仓库。事实上,我的CVS回购中有几个不同的项目。每个项目都在不同的目录中。所以,我进行了几次转换,每个项目一次。您只需将cvs2git指向您感兴趣的CVS仓库的特定子目录。它会将目录历史记录转换为Git存储库。所以,我最终得到了几个Git repos,每个项目一个,这为每个存储库提供了更好的历史记录。我建议你也尝试这种方法。