##// END OF EJS Templates
context: make repo[<filtered binary nodeid>] match node...
context: make repo[<filtered binary nodeid>] match node If you pass in a binary nodeid of a filtered node to repo.__getitem__, it would run through this code: try: self._node = changeid self._rev = repo.changelog.rev(changeid) return except error.FilteredLookupError: raise except LookupError: pass However, repo.changelog.rev() would raise a FilteredLookupError, not FilteredRepoLookupError. Instead, we would hit the "except LookupError" and continue, trying to interpret the nodeid as a bookmark etc. The end result would be an error like this: abort: unknown revision 'ddadbd7c40ef8b8ad6d0d01a7a842092fc431798'! After this patch, it would instead be: abort: 00changelog.i@ddadbd7c40ef8b8ad6d0d01a7a842092fc431798: filtered node! This only happens when we get a binary nodeid, which means it's not string directly from the user, so it would be a programming error if it happened. It's therefore a little hard to test (I checked test-context.py, but it doesn't use obsmarkers). It looks like this has been wrong ever since dc25ed84bee8 (changectx: issue a FilteredRepoLookupError when applicable, 2014-10-15). Differential Revision: https://phab.mercurial-scm.org/D3144
Martin von Zweigbergk -
r37404:167b22a9 default
Show More
Name Size Modified Last Commit Author
/ mercurial / cext
__init__.py Loading ...
base85.c Loading ...
bdiff.c Loading ...
charencode.c Loading ...
charencode.h Loading ...
diffhelpers.c Loading ...
dirs.c Loading ...
manifest.c Loading ...
mpatch.c Loading ...
osutil.c Loading ...
parsers.c Loading ...
pathencode.c Loading ...
revlog.c Loading ...
util.h Loading ...