Mercurial > hg
comparison mercurial/revset.py @ 40534:7ed611c60168
revsets: make bookmark/named('re:nonexistent') not abort (issue6018) (BC)
Foozy documented the differences between revsets branch(), tag(),
bookmark(), and named() in eeb5d5ab14a6 (revset: raise RepoLookupError
to make present() predicate continue the query, 2015-01-31). He seemed
to want tag() to change behavior to not error out on non-matching
regular expressions. I think it's instead bookmark() and named() that
should not error out. So that's what this patch does.
Differential Revision: https://phab.mercurial-scm.org/D5220
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Mon, 05 Nov 2018 09:09:48 -0800 |
parents | d894d2372ffe |
children | e54bfde922f2 |
comparison
equal
deleted
inserted
replaced
40533:2ecf5c24d0cd | 40534:7ed611c60168 |
---|---|
464 else: | 464 else: |
465 matchrevs = set() | 465 matchrevs = set() |
466 for name, bmrev in repo._bookmarks.iteritems(): | 466 for name, bmrev in repo._bookmarks.iteritems(): |
467 if matcher(name): | 467 if matcher(name): |
468 matchrevs.add(bmrev) | 468 matchrevs.add(bmrev) |
469 if not matchrevs: | |
470 raise error.RepoLookupError(_("no bookmarks exist" | |
471 " that match '%s'") % pattern) | |
472 for bmrev in matchrevs: | 469 for bmrev in matchrevs: |
473 bms.add(repo[bmrev].rev()) | 470 bms.add(repo[bmrev].rev()) |
474 else: | 471 else: |
475 bms = {repo[r].rev() for r in repo._bookmarks.values()} | 472 bms = {repo[r].rev() for r in repo._bookmarks.values()} |
476 bms -= {node.nullrev} | 473 bms -= {node.nullrev} |
1328 namespaces.add(repo.names[pattern]) | 1325 namespaces.add(repo.names[pattern]) |
1329 else: | 1326 else: |
1330 for name, ns in repo.names.iteritems(): | 1327 for name, ns in repo.names.iteritems(): |
1331 if matcher(name): | 1328 if matcher(name): |
1332 namespaces.add(ns) | 1329 namespaces.add(ns) |
1333 if not namespaces: | |
1334 raise error.RepoLookupError(_("no namespace exists" | |
1335 " that match '%s'") % pattern) | |
1336 | 1330 |
1337 names = set() | 1331 names = set() |
1338 for ns in namespaces: | 1332 for ns in namespaces: |
1339 for name in ns.listnames(repo): | 1333 for name in ns.listnames(repo): |
1340 if name not in ns.deprecated: | 1334 if name not in ns.deprecated: |