diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -1712,7 +1712,10 @@ def guard(ui, repo, *args, **opts): if patch is None: raise util.Abort(_('no patch to work with')) if args or opts['none']: - q.set_guards(q.find_series(patch), args) + idx = q.find_series(patch) + if idx is None: + raise util.Abort(_('no patch named %s') % patch) + q.set_guards(idx, args) q.save_dirty() else: status(q.series.index(q.lookup(patch))) diff --git a/tests/test-mq-guards b/tests/test-mq-guards --- a/tests/test-mq-guards +++ b/tests/test-mq-guards @@ -27,6 +27,9 @@ hg qrefresh hg qpop -a echo % should fail +hg qguard does-not-exist.patch +bleh + +echo % should fail hg qguard +fail hg qpush diff --git a/tests/test-mq-guards.out b/tests/test-mq-guards.out --- a/tests/test-mq-guards.out +++ b/tests/test-mq-guards.out @@ -1,6 +1,8 @@ adding x Patch queue now empty % should fail +abort: no patch named does-not-exist.patch +% should fail abort: no patches applied applying a.patch Now at: a.patch