# HG changeset patch # User Brendan Cully # Date 1224361366 25200 # Node ID 2bbdae4f39d13f068075eaea5b6e9a3fa1a30dac # Parent 88f1b8081f1c30abe223f19dcc261ed95884fa2a# Parent 8d1bdaf842de8d3b977770d6bb09852b2f33f501 Merge with crew diff -r 8d1bdaf842de -r 2bbdae4f39d1 hgext/mq.py --- a/hgext/mq.py Sat Oct 18 14:43:14 2008 -0400 +++ b/hgext/mq.py Sat Oct 18 13:22:46 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 = { diff -r 8d1bdaf842de -r 2bbdae4f39d1 tests/test-mq --- a/tests/test-mq Sat Oct 18 14:43:14 2008 -0400 +++ b/tests/test-mq Sat Oct 18 13:22:46 2008 -0700 @@ -199,6 +199,14 @@ echo % push should fail hg push ../../k +echo % import should fail +hg st . +echo foo >> ../a +hg diff > ../../import.diff +hg revert --no-backup ../a +hg import ../../import.diff +hg st + echo % qunapplied hg qunapplied diff -r 8d1bdaf842de -r 2bbdae4f39d1 tests/test-mq.out --- a/tests/test-mq.out Sat Oct 18 14:43:14 2008 -0400 +++ b/tests/test-mq.out Sat Oct 18 13:22:46 2008 -0700 @@ -169,6 +169,8 @@ % push should fail pushing to ../../k abort: source has mq patches applied +% import should fail +abort: cannot import over an applied patch % qunapplied test2.patch % qpush/qpop with index