Mercurial > hg
changeset 22499:8c9f9e346acc
revset: unify code flow in `bookmark`
We refactor the code of the bookmark revset to have a single return. This will
allow us to sanitize the content of the set.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Wed, 17 Sep 2014 10:58:25 -0700 |
parents | 64673dc48931 |
children | 171015d3b30c |
files | mercurial/revset.py |
diffstat | 1 files changed, 6 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Wed Sep 17 10:59:30 2014 -0700 +++ b/mercurial/revset.py Wed Sep 17 10:58:25 2014 -0700 @@ -448,12 +448,12 @@ # i18n: "bookmark" is a keyword _('the argument to bookmark must be a string')) kind, pattern, matcher = _stringmatcher(bm) + bms = set() if kind == 'literal': bmrev = repo._bookmarks.get(pattern, None) if not bmrev: raise util.Abort(_("bookmark '%s' does not exist") % bm) - bmrev = repo[bmrev].rev() - return subset.filter(lambda r: r == bmrev) + bms.add(repo[bmrev].rev()) else: matchrevs = set() for name, bmrev in repo._bookmarks.iteritems(): @@ -462,13 +462,11 @@ if not matchrevs: raise util.Abort(_("no bookmarks exist that match '%s'") % pattern) - bmrevs = set() for bmrev in matchrevs: - bmrevs.add(repo[bmrev].rev()) - return subset & bmrevs - - bms = set([repo[r].rev() - for r in repo._bookmarks.values()]) + bms.add(repo[bmrev].rev()) + else: + bms = set([repo[r].rev() + for r in repo._bookmarks.values()]) return subset.filter(bms.__contains__) def branch(repo, subset, x):