如何防止mercurial推送subrepos?

Sov*_*iut 26 mercurial push subrepos mercurial-subrepos

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

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

Ry4*_*ase 7

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

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

repos
  main
    subrepo
    .hgsub # contains: "subrepo=../theirproject"
  theirproject  # clone of remote, upstream repo
Run Code Online (Sandbox Code Playgroud)

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

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

最重要的是,如果你在那里改变东西,那么你需要提交它们(为了安全!)如果你提交它们,那么如果推送它们就会被推送,所以只需要控制它们的位置.重新推,你很高兴.

  • 我不是以任何方式编辑或更改子回购.它严格作为一个库供我参考.我希望他们保留子回购,以便我可以提取更新,但我不希望他们不断尝试推动什么都不会改变. (2认同)

Jor*_*ork -2

取决于您使用的 Mercurial 客户端。我使用 tortoisehg,我发现右键单击该文件夹并选择 tortoisehg >> 忘记中的文件即可。选择文件,您就无需再麻烦了。