# HG changeset patch # User Pierre-Yves David # Date 2013-01-16 04:21:11 # Node ID 5d6ee2494f635d14e060e307c2804f0cb5868d1f # Parent f009804e2a439642a918fdca7feff0267845fc9b clfilter: stronger detection of filtered changeset in changectx.__init__ We previously let some IndexError spill out of this function. A new tests is added to check the command that spotted the error. diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -67,7 +67,7 @@ class changectx(object): self._rev = r self._node = repo.changelog.node(r) return - except (ValueError, OverflowError): + except (ValueError, OverflowError, IndexError): pass if len(changeid) == 40: diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -186,6 +186,23 @@ check that summary does not report them update: 3 new changesets, 4 branch heads (merge) remote: 3 outgoing +check that various commands work well with filtering + + $ hg tip + changeset: 5:5601fb93a350 + tag: tip + parent: 1:7c3bad9141dc + user: test + date: Thu Jan 01 00:00:00 1970 +0000 + summary: add new_3_c + + $ hg log -r 6 + abort: unknown revision '6'! + [255] + $ hg log -r 4 + abort: unknown revision '4'! + [255] + Check that public changeset are not accounted as obsolete: $ hg --hidden phase --public 2