# HG changeset patch # User Yuya Nishihara # Date 2015-12-13 13:02:32 # Node ID 7e9dc8bbebf6a0fbfba5bbc83f110aa5673f9f8d # Parent 64ee5866e1076b864ca91b215012bb2a438b99b7 paths: use single loop for both search=None|pattern cases This will help porting to the formatter API. This patch adds test for empty pathitems to make sure "hg paths" never say "not found!". diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -5398,18 +5398,16 @@ def paths(ui, repo, search=None): Returns 0 on success. """ if search: - for name, path in sorted(ui.paths.iteritems()): - if name == search: - if not ui.quiet: - ui.write("%s\n" % util.hidepassword(path.rawloc)) - return - if not ui.quiet: - ui.warn(_("not found!\n")) - return 1 + pathitems = [(name, path) for name, path in ui.paths.iteritems() + if name == search] else: pathitems = sorted(ui.paths.iteritems()) for name, path in pathitems: + if search and not ui.quiet: + ui.write("%s\n" % util.hidepassword(path.rawloc)) + if search: + continue if ui.quiet: ui.write("%s\n" % name) else: @@ -5417,6 +5415,13 @@ def paths(ui, repo, search=None): for subopt, value in sorted(path.suboptions.items()): ui.write('%s:%s = %s\n' % (name, subopt, value)) + if search and not pathitems: + if not ui.quiet: + ui.warn(_("not found!\n")) + return 1 + else: + return 0 + @command('phase', [('p', 'public', False, _('set changeset phase to public')), ('d', 'draft', False, _('set changeset phase to draft')), diff --git a/tests/test-paths.t b/tests/test-paths.t --- a/tests/test-paths.t +++ b/tests/test-paths.t @@ -3,6 +3,16 @@ updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved $ cd a + +with no paths: + + $ hg paths + $ hg paths unknown + not found! + [1] + +with paths: + $ echo '[paths]' >> .hg/hgrc $ echo 'dupe = ../b#tip' >> .hg/hgrc $ echo 'expand = $SOMETHING/bar' >> .hg/hgrc