D12134: notify: don't produce errors if a revision is not found

av6 (Anton Shestakov) phabricator at mercurial-scm.org
Mon Feb 7 06:40:58 UTC 2022


av6 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D12134

AFFECTED FILES
  hgext/notify.py

CHANGE DETAILS

diff --git a/hgext/notify.py b/hgext/notify.py
--- a/hgext/notify.py
+++ b/hgext/notify.py
@@ -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



To: av6, #hg-reviewers
Cc: mercurial-patches, mercurial-devel


More information about the Mercurial-devel mailing list