Mercurial > public > mercurial-scm > hg-stable
diff mercurial/repository.py @ 40387:f1a39128da95
filelog: add a hasnode() method (API)
Missing in the file storage interface is the ability to query whether
a specified value is a known node.
This commit defines that interface member and implements it on the
revlog and sqlite file stores.
Storage unit tests have been added.
The revlog implementation is a bit more complicated because index lookups
don't consistently raise the same exception. For SQLite, we can simply look
for a key in a dict.
Differential Revision: https://phab.mercurial-scm.org/D5163
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 03 Oct 2018 14:57:29 -0700 |
parents | 4821affc154f |
children | 1b183edbb68e |
line wrap: on
line diff
--- a/mercurial/repository.py Sun Oct 21 22:26:00 2018 -0400 +++ b/mercurial/repository.py Wed Oct 03 14:57:29 2018 -0700 @@ -484,6 +484,16 @@ def __iter__(): """Iterate over revision numbers for this file.""" + def hasnode(node): + """Returns a bool indicating if a node is known to this store. + + Implementations must only return True for full, binary node values: + hex nodes, revision numbers, and partial node matches must be + rejected. + + The null node is never present. + """ + def revs(start=0, stop=None): """Iterate over revision numbers for this file, with control."""