在我的存储库中,我为正在使用的模块添加了几个子存储库。我总是将这些子仓库视为“仅拉”。我不打算对其进行任何更改,但希望保留在发布新版本时轻松进行新更改的功能。

当我推送主存储库时,Mercurial尝试推送子存储库。有防止这种情况的设置吗?

最佳答案

您可以根据自己的行为来做几件事。

您实际上是在子存储库中进行编辑和提交吗?如果是这样,您应该创建一个单独的类似供应商分支的存储库,在其中将您的更改与上游(“它们的”)更改合并,并让您的子存储库指向该存储库。大概是这样的:

repos
  main
    subrepo
    .hgsub # contains: "subrepo=../theirproject"
  theirproject  # clone of remote, upstream repo

这样的想法是,子仓库条目不直接指向仅拉上游仓库,而是指向您自己的仓库,在其中您将更改与“他们的仓库”合并

另一个选择是停止在子仓库中进行更改。如果没有更改,也没有提交,则push将立即通过该存储库。如果切换到该工作模式,则可以在hgrc文件的commitsubrepos = false部分中设置[ui],以避免意外提交该存储库。

底线是,如果您要更改其中的内容,则需要提交它们(出于安全性考虑!),如果要提交它们,则如果将其推送给父对象,则它们将被推送,因此只需控制它们的位置即可。重新推,您就可以出发了。

关于mercurial - 如何防止 Mercurial 插入子仓库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6181934/

10-10 18:35