# HG changeset patch
# User Martin von Zweigbergk <martinvonz@google.com>
# Date 2019-06-17 17:38:50
# Node ID cf445a212b9c1f99f5c47402fa75a2d5ffcc56e8
# Parent  c0b51449bf6b70de368ffa439c7e6ea7f12ef235

mq: remove dependency on strip's checklocalchanges()

Some of the functionality in strip.checklocalchanges() was only used
by mq, so let's move it to mq so we can clean up strip.

Differential Revision: https://phab.mercurial-scm.org/D6533

diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -145,8 +145,6 @@ except KeyError:
 
 strip = stripext.strip
 checksubstate = stripext.checksubstate
-checklocalchanges = stripext.checklocalchanges
-
 
 # Patch names looks like unix-file names.
 # They must be joinable with queue directory and result in the patch path.
@@ -1149,7 +1147,20 @@ class queue(object):
             # plain versions for i18n tool to detect them
             _("local changes found, qrefresh first")
             _("local changed subrepos found, qrefresh first")
-        return checklocalchanges(repo, force, excsuffix)
+
+        cmdutil.checkunfinished(repo)
+        s = repo.status()
+        if not force:
+            if len(repo[None].parents()) > 1:
+                _("outstanding uncommitted merge") #i18 tool detection
+                raise error.Abort(_("outstanding uncommitted merge"+ excsuffix))
+            if s.modified or s.added or s.removed or s.deleted:
+                _("local changes found") # i18n tool detection
+                raise error.Abort(_("local changes found" + excsuffix))
+            if checksubstate(repo):
+                _("local changed subrepos found") # i18n tool detection
+                raise error.Abort(_("local changed subrepos found" + excsuffix))
+        return s
 
     _reserved = ('series', 'status', 'guards', '.', '..')
     def checkreservedname(self, name):