【问题标题】:Reposurgeon creates branches instead of tagsReposurgeon 创建分支而不是标签
【发布时间】:2015-08-03 18:16:37
【问题描述】:

我正在尝试按照本教程将 CVS 转换为 GIT:http://www.catb.org/~esr/reposurgeon/dvcs-migration-guide.html

总体上看起来不错,但是对于某些 CVS 标签(看起来它从存储库中的某个时间点开始,然后再执行)而不是 GIT 标签,创建了 GIT 分支。

知道为什么首先创建分支而不是标签吗?

这些主要是由自动构建工具构建时创建的分支(基本上每个构建一个)+ 发布分支(每个发布一个)。有数百个,所以我想确保它们不是作为分支创建的,而是作为标签创建的。

reposurgeon 是否能够做到这一点,甚至是适合这项工作的工具吗?

仅供参考 - 做这个答案:https://stackoverflow.com/a/16404411/3821009 提供:

git tag BRANCH_A BRANCH_A
git branch -d BRANCH_A

结果:

error: The branch 'BRANCH_A' is not fully merged.
If you are sure you want to delete it, run 'git branch -D BRANCH_A'

所以看起来有些东西没有正确连接在这里。你知道是什么原因造成的吗?

【问题讨论】:

    标签: git cvs reposurgeon


    【解决方案1】:

    使用cvs2git 可能是您更好的选择。
    它会将您的 CVS 标签转换为 git 标签,假设 CVS 标签代表 repo 的一个修订版(或者可以很容易地伪造)。否则,您最终会得到一个 TAG.FIXUP 分支,可以按照链接的使用部分中的说明进行处理。

    【讨论】:

      【解决方案2】:

      这里是reposurgeon的作者,我才知道这个问题。

      您遇到的不是再手术错误。当 cvs-fast-export 发现一个标签没有在整个 master 集合中复制时,这就是 cvs-fast-export 的合作方式……这意味着 CVS 操作员错误损坏了存储库元数据。

      cvs-fast-export 试图通过为不完整的标签创建一个单提交分支来应对。手册页上描述了这种行为,但我想如果没有看过它的上下文,很容易错过。

      【讨论】:

        猜你喜欢
        • 2021-10-05
        • 1970-01-01
        • 2014-04-09
        • 1970-01-01
        • 2017-04-07
        • 2014-01-24
        • 1970-01-01
        • 2021-12-08
        • 2011-10-10
        相关资源
        最近更新 更多