gpt4 book ai didi

svn - Mercurial + hgsubversion + svn : A tale of 2 repositories. ..(或者,替换变更集?)

转载 作者:行者123 更新时间:2023-12-01 06:43:10 24 4
gpt4 key购买 nike

场景:

我有 2 个 Hg 存储库:一个跟踪 SVN 存储库,比如说 SVN-track,还有一个本地纯 Hg 存储库,我从第一个中提取变更集。

我将我的纯 Mercurial 存储库中的变更集推送到 SVN-track 存储库中,然后我在 SVN-track 存储库中重新设置推送的变更集,直到历史记录良好且直接,这样我就可以推送到 SVN 存储库。

在我推送到 SVN 后,hgsubversion 从 SVN 拉回变更集并剥离原始变更集。这就是它的跟踪方式,我收集(但是......为什么不保留原件并跟踪它?)。

问题:

现在,如果您坚持了这么久,问题就来了:我想将 SVN 变更集拉回纯 Hg 存储库,但所有原始变更集都作为另一个头上的复制品(但具有不同的节点 ID)返回。我也许能够重新设置我在纯 Mercurial 存储库中添加的所有变更集,但随后我会丢失历史记录,而且,实际上,这似乎工作太多了。我也可以只忍受带有重复内容的拉取 SVN 变更集并在本地 merge ,但这会使由此产生的推回 SVN 轨道变得越来越难。

问题:

  • 有没有更好的方法来执行这个工作流程,我无法独立判断?
  • 如果没有,我如何替换 hgsubversion 从纯 Mercurial 中的 SVN 中撤回的原始变更集?
  • 为什么必须 hgsubversion(大多数情况下是一个很棒的启用工具)将 SVN 变更集拉回以跟踪它们,难道它不能只保留原始变更集并向 .hg/svn/rev_map 添加一行吗?指示原始变更集 ID?
  • 如果是这样,这有什么诀窍?
  • 最佳答案

    hgsubversion 需要撤回更改的原因是(我期望)因为在您进行推送之前 svn 中可能已经发生了其他更改。 svn 中的每个提交都包含一个“rebase-to-tip”,这可能会影响您的变更集。因此,它需要将其拉回以获取实际发生的情况和新的变更集 ID。

    Perfarce(perforce 扩展)做了类似的事情,但它将原始更改与新提示 merge ,因此图形实际上是有意义的。尽管如此,我所做的所有更改仍然存在重复。

    关于svn - Mercurial + hgsubversion + svn : A tale of 2 repositories. ..(或者,替换变更集?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8332075/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com