【发布时间】:2017-10-13 08:09:45
【问题描述】:
有关于 mercurial 的公开回购(不是我的)。它包含两个子存储库。我已经为两个主要回购和两个子回购做了一个分叉。我想不时创建拉取请求,但我无法使子存储库正常工作。 当我克隆我的分叉存储库时,它将被下载,但两个子存储库将保持原始状态,而不是我的分叉存储库。如果我用分叉替换它们,我将无法提出拉取请求,因为我不想将原始存储库切换到我的子存储库。但我想同时更改 repo 和 subrepo。 一旦我找到了解决方案。我已经修改了 subrepo 的 .hg 文件夹中的 hgrc 文件。
It was:
[paths]
default = ssh://hg@bitbucket.org/originator/subrepo
变成:
[paths]
Me = ssh://hg@bitbucket.org/Me/subrepo
Original = ssh://hg@bitbucket.org/originator/subrepo
它完全按照应有的方式工作。我更改了代码,推送到我的子仓库,为子仓库创建了拉取请求。然后我在我的主仓库中推送了更改,它很有效。 .hgsubstate 现在正在提交存在于分叉仓库中的提交,但不在原始仓库中。当发起者同时处理两个拉取请求时,一切都会正常进行。
我是说,它以前有效,但现在不行。出于某种奇怪的原因,我不能只将 .hgsubstate 推送到分叉子存储库上存在的新子存储库修订版。我根本无法将它包含在提交中。我单击“提交”,但在结果提交中它不包括在内。而且我不知道如何强制包含在内-HG对此太“聪明”。 TortoiseHG 也将我的 subrepo 标记为脏。但是,如果我尝试同时添加 .hgsubstate 和我的脏仓库,它会出于某种原因尝试将更改推送到发起人的仓库。似乎我的 HG 无法提交 .hgsubstate 而不将更改推送到自身的子存储库。 有什么办法可以解决这个问题?我想要的只是提交和推送 .hgsubstate 而不做任何其他事情。
【问题讨论】:
标签: mercurial mercurial-subrepos