obsolete: move hint punching to push
Core does not raise the warning in check heads
--- a/hgext/obsolete.py Wed Jul 25 17:40:50 2012 +0200
+++ b/hgext/obsolete.py Wed Jul 25 17:43:38 2012 +0200
@@ -487,30 +487,22 @@
* patch remote to ignore obsolete heads on remote
"""
# do not push instability
- try:
- for h in outgoing.missingheads:
- # checking heads only is enought because any thing base on obsolete
- # changeset is either obsolete or unstable.
- ctx = repo[h]
- if ctx.unstable():
- raise util.Abort(_("push includes an unstable changeset: %s!")
- % ctx)
- if ctx.obsolete():
- raise util.Abort(_("push includes an obsolete changeset: %s!")
- % ctx)
- if ctx.latecomer():
- raise util.Abort(_("push includes an latecomer changeset: %s!")
- % ctx)
- if ctx.conflicting():
- raise util.Abort(_("push includes conflicting changeset: %s!")
- % ctx)
- except util.Abort, ex:
- hint = _("use 'hg stabilize' to get a stable history (or --force to proceed)")
- if (len(ex.args) >= 1
- and ex.args[0].startswith('push includes ')
- and ex.hint is None):
- ex.hint = hint
- raise
+ for h in outgoing.missingheads:
+ # checking heads only is enought because any thing base on obsolete
+ # changeset is either obsolete or unstable.
+ ctx = repo[h]
+ if ctx.unstable():
+ raise util.Abort(_("push includes an unstable changeset: %s!")
+ % ctx)
+ if ctx.obsolete():
+ raise util.Abort(_("push includes an obsolete changeset: %s!")
+ % ctx)
+ if ctx.latecomer():
+ raise util.Abort(_("push includes an latecomer changeset: %s!")
+ % ctx)
+ if ctx.conflicting():
+ raise util.Abort(_("push includes conflicting changeset: %s!")
+ % ctx)
### patch remote branch map
# do not read it this burn eyes
try:
@@ -1208,7 +1200,15 @@
def push(self, remote, *args, **opts):
"""wrapper around pull that pull obsolete relation"""
self._turn_extinct_secret()
- result = opush(remote, *args, **opts)
+ try:
+ result = opush(remote, *args, **opts)
+ except util.Abort, ex:
+ hint = _("use 'hg stabilize' to get a stable history (or --force to proceed)")
+ if (len(ex.args) >= 1
+ and ex.args[0].startswith('push includes ')
+ and ex.hint is None):
+ ex.hint = hint
+ raise
if 'obsolete' in remote.listkeys('namespaces') and self.obsstore:
data = self.obsstore._writemarkers()
r = remote.pushkey('obsolete', 'dump', '',