diff hgext/notify.py @ 48717:ae27a0684e75

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
author Anton Shestakov <av6@dwimlabs.net>
date Sun, 06 Feb 2022 19:14:51 +0300
parents 89a2afe31e82
children 6000f5b25c9b
line wrap: on
line diff
--- 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