【问题标题】:Determining how cvs2git converted CVS trees确定 cvs2git 如何转换 CVS 树
【发布时间】: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 快得多。

标签: git cvs2git


【解决方案1】:

您可以通过针对您的子项目之一发出 git log 来验证 cvs2git 做了什么:

git log -- <directory>

如果该命令返回完整的历史记录,cvs2git 会将您的所有子项目合并为一个。根据您的 cmets,情况似乎是这样。

您现在有一个选择:拆分 repo 还是继续合并?这并不总是一个明确的决定,在 CVS 中拆分 repo 的动机与在 git 中不同。

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

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

【讨论】:

  • 我的问题如下:如果我在 /home/ics/bin 和 /home/ics/icsdev 中有 CVS 目录,并且它们是两个单独的 CVS 项目,我如何识别 icsdev 文件bin 文件,如果一切都在一个 git 存储库中?顺便说一句,我确实为这个问题创建了一个更具体的帖子,我会阅读教程。谢谢。
  • 嗯...所以这些项目基本上是彼此的分支?
  • 每个目录代表一个单独的 CVS 项目。 /home/ics/icsdev 和 /home/icsprod/ 共享同一个 CVS 存储库,其中 icsdev 是开发,icsprod 是生产。 /home/ics/bin 和 /home/ics/notes 是分开的。
  • 这很有趣。一旦我为远程访问设置了存储库,并使用了远程添加和克隆,所有的项目目录都会显示出来。很高兴我接受了你的建议,没有急于这样做。
【解决方案2】:

我刚刚使用 cvs2git 转换了一个有 8 年历史的 CVS 存储库。我发现在生成的存储库中使用“gitk --all”可以让我很好地了解转换是如何进行的。所以,我会向你推荐这个命令。

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

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多