D1503: rewriteutil: add a precheck function to check if revs can be rewritten
pulkit (Pulkit Goyal)
phabricator at mercurial-scm.org
Tue Dec 5 23:00:25 UTC 2017
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG490df753894d: rewriteutil: add a precheck function to check if revs can be rewritten (authored by pulkit, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D1503?vs=3912&id=4145
REVISION DETAIL
https://phab.mercurial-scm.org/D1503
AFFECTED FILES
mercurial/rewriteutil.py
CHANGE DETAILS
diff --git a/mercurial/rewriteutil.py b/mercurial/rewriteutil.py
--- a/mercurial/rewriteutil.py
+++ b/mercurial/rewriteutil.py
@@ -7,11 +7,39 @@
from __future__ import absolute_import
+from .i18n import _
+
from . import (
+ error,
+ node,
obsolete,
revset,
)
+def precheck(repo, revs, action='rewrite'):
+ """check if revs can be rewritten
+ action is used to control the error message.
+
+ Make sure this function is called after taking the lock.
+ """
+ if node.nullrev in revs:
+ msg = _("cannot %s null changeset") % (action)
+ hint = _("no changeset checked out")
+ raise error.Abort(msg, hint=hint)
+
+ publicrevs = repo.revs('%ld and public()', revs)
+ if len(repo[None].parents()) > 1:
+ raise error.Abort(_("cannot %s while merging") % action)
+
+ if publicrevs:
+ msg = _("cannot %s public changesets") % (action)
+ hint = _("see 'hg help phases' for details")
+ raise error.Abort(msg, hint=hint)
+
+ newunstable = disallowednewunstable(repo, revs)
+ if newunstable:
+ raise error.Abort(_("cannot %s changeset with children") % action)
+
def disallowednewunstable(repo, revs):
"""Checks whether editing the revs will create new unstable changesets and
are we allowed to create them.
To: pulkit, #hg-reviewers, dlax, durin42
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list