如何防止mercurial推送subrepos?

时间:2011-05-31 00:53:24

标签: mercurial push subrepos mercurial-subrepos

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

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

2 个答案:

答案 0 :(得分:7)

您可以执行一些操作,具体取决于您要查找的行为。

你实际上是在编辑和提交subrepo吗?如果是这样,您应该创建一个单独的供应商分支类型的repo,您​​可以将更改与上游(“他们的”)更改合并,并让您的子指针指向该更改。也许是这样的事情:

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

这个想法是subrepo条目不是直接指向只有拉动的上游回购,而是指向你自己的一个你将其变化与“他们的”合并的

另一个选择是停止在subrepo中进行更改。如果没有更改,也没有提交,那么push将通过该repo。如果切换到该工作模式,您可以在hgrc文件的commitsubrepos = false部分设置[ui],以避免意外提交该回购。

最重要的是,如果你在那里改变东西,那么你需要提交它们(为了安全!)如果你提交它们,那么如果推送它们它们将被推动,所以只需控制到他们被推到了哪里,你很高兴。

答案 1 :(得分:-2)

取决于您使用的mercurial客户端。我使用tortoisehg,我发现右键单击文件夹并选择tortoisehg中的文件>>忘记就是它所需要的一切。选择文件,您不需要再费心了。