notify: don't produce errors if a revision is not found
Notify extension has a way to only subscribe to a specific revset, such as
"branch(foo)". Before this patch, when there was no branch with that name, it
would produce a traceback saying "unknown revision: foo". With this patch it
would no longer do that, and instead it'll assume there are no revisions that
match this revset. I think this patch is an improvement in general, but there's
a reason I'm sending it now.
test-notify.t has a test case where it obsoletes the only revision on a branch,
and previously that wouldn't produce any complications, because head
computation wasn't obsolescence-aware. Now if the only revision on a branch is
obsolete, repo should not see that branch at all.
That branch will still be present in branchcache (with an empty list of
revisions) until the next patch.
Differential Revision: https://phab.mercurial-scm.org/D12134
--- a/hgext/notify.py Thu Feb 03 18:14:11 2022 +0100
+++ b/hgext/notify.py Sun Feb 06 19:14:51 2022 +0300
@@ -435,7 +435,10 @@
if spec is None:
subs.add(sub)
continue
- revs = self.repo.revs(b'%r and %d:', spec, ctx.rev())
+ try:
+ revs = self.repo.revs(b'%r and %d:', spec, ctx.rev())
+ except error.RepoLookupError:
+ continue
if len(revs):
subs.add(sub)
continue