diff hgext/mq.py @ 7142:88f1b8081f1c

Prevent import over an applied patch (closes issue795)
author Brendan Cully <brendan@kublai.com>
date Sat, 18 Oct 2008 13:22:29 -0700
parents f7fc5f5ecd62
children fd3cba5e73ae
line wrap: on
line diff
--- a/hgext/mq.py	Sat Oct 18 11:43:45 2008 -0700
+++ b/hgext/mq.py	Sat Oct 18 13:22:29 2008 -0700
@@ -2331,6 +2331,23 @@
         repo.__class__ = mqrepo
         repo.mq = queue(ui, repo.join(""))
 
+def uisetup(ui):
+    # override import to disallow importing over patch
+    importalias, importcmd = cmdutil.findcmd(ui, 'import', commands.table)
+    for alias, cmd in commands.table.iteritems():
+        if cmd is importcmd:
+            importkey = alias
+            break
+    orig_import = importcmd[0]
+    def mqimport(ui, repo, patch1, *patches, **opts):
+        if hasattr(repo, 'abort_if_wdir_patched'):
+            repo.abort_if_wdir_patched(_('cannot import over an applied patch'),
+                                       opts.get('force'))
+            orig_import(ui, repo, patch1, *patches, **opts)
+    importcmd = list(importcmd)
+    importcmd[0] = mqimport
+    commands.table[importkey] = tuple(importcmd)
+
 seriesopts = [('s', 'summary', None, _('print first line of patch header'))]
 
 cmdtable = {