如何限制“-f”进行 hg 推送时的选项
是否有任何选项可以限制用户使用hg push -f
?因为它会删除其他用户的中间提交。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
是否有任何选项可以限制用户使用hg push -f
?因为它会删除其他用户的中间提交。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(1)
首先,执行
hg Push -f
无法删除中间提交。 Mercurial 是围绕仅附加历史模型构建的,您无法通过推送到服务器来从服务器中删除内容。当用户执行
hg push -f
时,他会告诉Mercurial继续推送,即使它创建了新的远程头。为了防止这种情况,您需要在服务器上添加一个 hook 来禁止更多比单头。 这里列出了几个这样的钩子。使用 Mercurial 1.6,当您推送新的命名分支时,不再需要使用
-f
。您应该使用hg push --new-branch
。这更安全,因为它只允许创建新分支,而不是创建多个远程头。First of all, doing
hg push -f
cannot remove intermediate commits. Mercurial is built around an append-only history model and you cannot delete stuff from a server by pushing to it.When a user does
hg push -f
, then he tells Mercurial to go ahead with the push even though it creates new remote heads. To prevent this, you need a hook on the server that forbids more than a single head. There are listed several such hooks here.With Mercurial 1.6, it is no longer necessary to use
-f
when you push a new named branch. You should instead usehg push --new-branch
. This is safer since it only allows the creation of new branches, not the creation of multiple remote heads.