Commits

Pierre-Yves David committed 188afb3

obsolete: move hint punching to push

Core does not raise the warning in check heads

Comments (0)

Files changed (1)

hgext/obsolete.py

     * 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:
         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', '',
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.