2

我们最近将 CVS 存储库迁移到了 Git。

在我们的 CVS 存储库中,我们有一些分支,其中包含我们在开发完成后隐藏起来的代码,直到我们有时间在以后安排它们。

当我们使用 CVS2Git 进行迁移时,它导致分支被转移到 Git 存储库,但它的工作方式是只有在 CVS 中实际分支的文件才会出现在 Git 分支中。

例如,如果我们在 CVS 的 HEAD 上有以下文件/文件夹树:

lib
   -com
      -example
         -folder1
            -file1a
            -file1b
         -folder2
            -file2a
            -file2b

然后我们只在 CVS 的 BRANCH_COOL_FEATURE 分支上分支了“file1a”和“file2b”文件,在 Git 中生成的“BRANCH_COOL_FEATURE”分支只包含“file1a”和“file2b”文件。

我正在寻找最简单的方法来识别我想要合并的 CVS 分支中涉及的所有文件,包括它们在 CVS 中的分支点,以便我确切知道要合并的差异,然后自动做合并。

这是迄今为止我得到的最好的,但我希望有更好的方法:

1) MASTER 和 BRANCH_COOL_FEATURE 上的 git diff --name-status 将 diff-filter 设置为 M 以识别分支中实际修改的所有文件,或者只获取分支中文件的完整列表 2) 对于每个文件,查看 CVS 历史记录并关联时间戳以识别为该文件生成的两个 Git 提交,它们代表要合并的差异 3) 在该特定文件上运行 git merge 并将两个提交指定为要合并的差异

感谢任何帮助,谢谢!

-Git 新手

ps 我没有关于实际 CVS2Git 转换是如何运行的大量细节,但如果它很重要,我可能会掌握它。

有什么方法可以轻松

4

0 回答 0