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: