# HG changeset patch # User Cédric Duval # Date 1268588798 -3600 # Node ID a778a367c20bb0d177f8db3963183fe659d14020 # Parent ea85c01c78350dcf4030979a8e099a6b73a11d7f mq: fix init with nonexistent or non-local repository diff -r ea85c01c7835 -r a778a367c20b hgext/mq.py --- a/hgext/mq.py Sun Mar 14 19:21:24 2010 +0100 +++ b/hgext/mq.py Sun Mar 14 18:46:38 2010 +0100 @@ -2633,7 +2633,16 @@ if not mq: return orig(ui, *args, **kwargs) - repopath = cmdutil.findrepo(os.getcwd()) + if args: + repopath = args[0] + if not hg.islocal(repopath): + raise util.Abort(_('only a local queue repository ' + 'may be initialized')) + else: + repopath = cmdutil.findrepo(os.getcwd()) + if not repopath: + raise util.Abort(_('There is no Mercurial repository here ' + '(.hg not found)')) repo = hg.repository(ui, repopath) return qinit(ui, repo, True) diff -r ea85c01c7835 -r a778a367c20b tests/test-mq --- a/tests/test-mq Sun Mar 14 19:21:24 2010 +0100 +++ b/tests/test-mq Sun Mar 14 18:46:38 2010 +0100 @@ -80,6 +80,19 @@ cat .hg/patches/series cd .. +echo '% init --mq without repo' +mkdir f +cd f +hg init --mq +cd .. + +echo '% init --mq with nonexistent directory' +hg init --mq nonexistentdir + +echo '% init --mq with bundle (non "local")' +hg -R a bundle --all a.bundle >/dev/null +hg init --mq a.bundle + cd a hg qnew -m 'foo bar' test.patch diff -r ea85c01c7835 -r a778a367c20b tests/test-mq.out --- a/tests/test-mq.out Sun Mar 14 19:21:24 2010 +0100 +++ b/tests/test-mq.out Sun Mar 14 18:46:38 2010 +0100 @@ -89,6 +89,12 @@ series: A B +% init --mq without repo +abort: There is no Mercurial repository here (.hg not found) +% init --mq with nonexistent directory +abort: repository nonexistentdir not found! +% init --mq with bundle (non "local") +abort: only a local queue repository may be initialized % qrefresh foo bar