【发布时间】:2012-08-20 18:16:39
【问题描述】:
我成功地转换并导入了 git 中包含单个 CVS 项目的 8 年历史的 CVS 主树。我试图弄清楚 cvs2git 转换对各个 CVS 存储库做了什么。
幸运的是,我仍然拥有主 CVS 树并且还没有部署任何东西,所以我可以再次执行此操作。我正在寻找可以让我探索我转换的内容的 git 命令,这样我就可以判断我是否应该分别转换每个 CVS 存储库。
【问题讨论】:
-
它们只是主树中的子目录吗?尝试
git log -- <directory>以获取该目录上提交的完整历史记录。 -
它们是子目录,它们本身就是 CVS 项目。我会试试你的命令,但这值得回答。
-
完全同意;只是认为您处于一个独特的位置,可以确切地了解它的作用。如果该命令返回有效且完整的历史记录,则它将子项目合并到根存储库中。如果它返回部分历史记录或不返回任何历史记录,则它完全做了其他事情。
-
@Christopher 感谢 git log 命令。 cvs2git 似乎将所有东西都放在一个 git 存储库中。鉴于我是唯一的用户,至少现在我可能会坚持使用 CVS。
-
这是一件很容易修复的事情,而且 git 有很好的子模块/子树支持。如果您想尝试一下,请在此处发表评论,我很乐意为您提供帮助。您甚至可能会发现不需要嵌套存储库,因为 git 中的分支和合并操作相对而言比 CVS 快得多。