# HG changeset patch # User Pierre-Yves David # Date 1358310071 -3600 # 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 -r f009804e2a43 -r 5d6ee2494f63 mercurial/context.py --- a/mercurial/context.py Tue Dec 11 20:13:21 2012 +0100 +++ b/mercurial/context.py Wed Jan 16 05:21:11 2013 +0100 @@ -67,7 +67,7 @@ self._rev = r self._node = repo.changelog.node(r) return - except (ValueError, OverflowError): + except (ValueError, OverflowError, IndexError): pass if len(changeid) == 40: diff -r f009804e2a43 -r 5d6ee2494f63 tests/test-obsolete.t --- a/tests/test-obsolete.t Tue Dec 11 20:13:21 2012 +0100 +++ b/tests/test-obsolete.t Wed Jan 16 05:21:11 2013 +0100 @@ -186,6 +186,23 @@ 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