简体   繁体   English

Reposurgeon创建分支而不是标签

[英]Reposurgeon creates branches instead of tags

I'm trying to convert CVS to GIT by following this tutorial: http://www.catb.org/~esr/reposurgeon/dvcs-migration-guide.html 我正在尝试通过遵循本教程将CVS转换为GIT: http : //www.catb.org/~esr/reposurgeon/dvcs-migration-guide.html

It looks OK overall, however for some CVS tags (and it looks like it starts at some point of time in the repository and then does that afterwards) instead of GIT tags, GIT branches are created. 总体上看还可以,但是对于某些CVS标签(它似乎在存储库中的某个时间点开始,然后在之后执行),而不是GIT标签,而是创建了GIT分支。

Any idea why branches are created in the first place instead of tags? 知道为什么首先创建分支而不是标签吗?

These are mostly branches that are created when building by the automated build tool (basically one per build) + release branches (one per release). 这些主要是由自动构建工具(基本上每个构建一个)+发行分支(每个发行版一个)构建时创建的分支。 There are hundreds of these, so I'd like to make sure they are not created as branches, but as tags. 其中有数百种,因此我想确保它们不是作为分支而是作为标签创建的。

Is reposurgeon able to do this or even a right tool for the job? 后备医生能够做到这一点,甚至是完成工作的正确工具吗?

FYI -- doing what this answer: https://stackoverflow.com/a/16404411/3821009 provides: 仅供参考-做这个答案: https//stackoverflow.com/a/16404411/3821009提供:

git tag BRANCH_A BRANCH_A
git branch -d BRANCH_A

results in: 结果是:

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

so it looks like something is not attached properly here. 因此看来这里没有正确连接东西。 Do you know what might be causing this? 你知道是什么原因造成的吗?

Using cvs2git might be a better option for you. 使用cvs2git可能是您更好的选择。
It'll convert your CVS tags to git tags, assuming that the CVS tag represents one revision of the repo (or can be faked easily enough). 假设CVS标签代表仓库的一个版本(或者可以很容易地被伪造),它将把您的CVS标签转换为git标签。 Otherwise you'll end up with a TAG.FIXUP branch, which can be taken care of by following the instructions in the Usage section of the link. 否则,您将得到TAG.FIXUP分支,可以按照链接的“ 用法”部分中的说明进行操作。

Author of reposurgeon here, I just became aware of this question. 在这里,reposurgeon的作者,我才意识到这个问题。

What you are running into is not a reposurgeon bug. 您遇到的不是reposurgeon错误。 It's how cvs-fast-export coopes when it finds a tag that is not replicated across the enture set of masters...which means there was either a CVS operator error damage to the repository metadata. 这就是cvs-fast-export遇到无法在整个主模板集之间复制的标签时所遇到的麻烦……这意味着CVS操作员错误损坏了存储库元数据。

cvs-fast-export tries to cope by creating a single-commit branchlet for the incomplete tag. cvs-fast-export试图通过为不完整标签创建单提交分支来解决此问题。 This behavior is described on the manual page, but I guess it's easy to miss without the context of having seen one. 手册页上对此行为进行了描述,但是我想如果没有看到它的上下文很容易就错过了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM