Mercurial > hg
changeset 27726:7e9dc8bbebf6
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!".
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 13 Dec 2015 22:02:32 +0900 |
parents | 64ee5866e107 |
children | 1a6fd929056f |
files | mercurial/commands.py tests/test-paths.t |
diffstat | 2 files changed, 23 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Sun Dec 13 21:55:57 2015 +0900 +++ b/mercurial/commands.py Sun Dec 13 22:02:32 2015 +0900 @@ -5398,18 +5398,16 @@ 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 @@ 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')),
--- a/tests/test-paths.t Sun Dec 13 21:55:57 2015 +0900 +++ b/tests/test-paths.t Sun Dec 13 22:02:32 2015 +0900 @@ -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