Is there any option to restrict a user to use hg push -f
? Because it will remove intermediate commits by other users.
views:
40answers:
1
+1
A:
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 use hg push --new-branch
. This is safer since it only allows the creation of new branches, not the creation of multiple remote heads.
Martin Geisler
2010-05-26 10:50:02