Submitter | Yuya Nishihara |
---|---|
Date | Dec. 26, 2015, 12:06 p.m. |
Message ID | <38c6d17c94e16ed63f53.1451131604@mimosa> |
Download | mbox | patch |
Permalink | /patch/12354/ |
State | Accepted |
Headers | show |
Comments
> On Dec 26, 2015, at 05:06, Yuya Nishihara <yuya@tcha.org> wrote: > > # HG changeset patch > # User Yuya Nishihara <yuya@tcha.org> > # Date 1451113839 -32400 > # Sat Dec 26 16:10:39 2015 +0900 > # Node ID 38c6d17c94e16ed63f532730cb2992eb86dd9e6a > # Parent e2aa9c4030c4109e5efa50462ffc6048ca30106f > paths: make getpath() accept multiple defaults This series looks sensible to me and is much simpler than what I was brainstorming. Thank you for cleaning up my mess. > > This is necessary to handle "default-push" and "default" as fallback items. > We can't apply the same rule as "default:pushurl" because "default-push" is > a valid named path. > > This series is for default branch. I have a simpler patch for stable. > > diff --git a/mercurial/ui.py b/mercurial/ui.py > --- a/mercurial/ui.py > +++ b/mercurial/ui.py > @@ -1115,7 +1115,7 @@ class paths(dict): > self['default'].pushloc = defaultpush > > def getpath(self, name, default=None): > - """Return a ``path`` from a string, falling back to a default. > + """Return a ``path`` from a string, falling back to default. > > ``name`` can be a named path or locations. Locations are filesystem > paths or URIs. > @@ -1125,13 +1125,16 @@ class paths(dict): > """ > # Only fall back to default if no path was requested. > if name is None: > - if default: > + if not default: > + default = () > + elif not isinstance(default, (tuple, list)): > + default = (default,) > + for k in default: > try: > - return self[default] > + return self[k] > except KeyError: > - return None > - else: > - return None > + continue > + return None > > # Most likely empty string. > # This may need to raise in the future. > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@selenic.com > https://selenic.com/mailman/listinfo/mercurial-devel
Patch
diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -1115,7 +1115,7 @@ class paths(dict): self['default'].pushloc = defaultpush def getpath(self, name, default=None): - """Return a ``path`` from a string, falling back to a default. + """Return a ``path`` from a string, falling back to default. ``name`` can be a named path or locations. Locations are filesystem paths or URIs. @@ -1125,13 +1125,16 @@ class paths(dict): """ # Only fall back to default if no path was requested. if name is None: - if default: + if not default: + default = () + elif not isinstance(default, (tuple, list)): + default = (default,) + for k in default: try: - return self[default] + return self[k] except KeyError: - return None - else: - return None + continue + return None # Most likely empty string. # This may need to raise in the future.