[PATCH 3 of 5] paths: use single loop for both search=None|pattern cases

Martin von Zweigbergk martinvonz at google.com
Tue Jan 12 11:03:06 CST 2016


On Tue, Jan 12, 2016 at 3:51 AM Yuya Nishihara <yuya at tcha.org> wrote:

> On Tue, 12 Jan 2016 00:37:25 +0000, Martin von Zweigbergk wrote:
> > On Sat, Jan 9, 2016 at 1:49 AM Yuya Nishihara <yuya at tcha.org> wrote:
> >
> > > # HG changeset patch
> > > # User Yuya Nishihara <yuya at tcha.org>
> > > # Date 1450011752 -32400
> > > #      Sun Dec 13 22:02:32 2015 +0900
> > > # Node ID 2390e7462eec357b23547d2889717ec98710f9b0
> > > # Parent  d9f3d8bea3ea4d6e501577bc7e3f32c5788c7550
> > > 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
> > > @@ -5413,18 +5413,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:
> > > @@ -5432,6 +5430,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
> > >
> >
> > Why delay this until after the loop over an empty array? I didn't see a
> > future patch that depended on it either.
>
> fm.end() is necessary to print "[]" by "hg paths -Tjson unknown_name".
>

In that case, looks good. Pushed to the clowncopter, thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20160112/ada4b252/attachment.html>


More information about the Mercurial-devel mailing list