Mercurial > hg-stable
changeset 44987:fb2936c5f6dc
git: decode node IDs back into Python strings (issue6349)
db.text_factory = bytes, so the database contains only strings. The object IDs
we get from pygit2 are Python strings. b'foo' != 'foo'
This change allows the "don't reindex" optimization to work by allowing the
"cur_cache_heads == cache_heads" comparison a few lines down to succeed.
Differential Revision: https://phab.mercurial-scm.org/D8622
author | Hollis Blanchard <hollis_blanchard@mentor.com> |
---|---|
date | Tue, 09 Jun 2020 13:18:21 -0700 |
parents | 7a0a1be721a3 |
children | ad6971e6740c |
files | hgext/git/index.py |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/git/index.py Tue Jun 09 22:02:09 2020 +0530 +++ b/hgext/git/index.py Tue Jun 09 13:18:21 2020 -0700 @@ -245,7 +245,10 @@ # TODO: we should figure out how to incrementally index history # (preferably by detecting rewinds!) so that we don't have to do a # full changelog walk every time a new commit is created. - cache_heads = {x[0] for x in db.execute('SELECT node FROM possible_heads')} + cache_heads = { + pycompat.sysstr(x[0]) + for x in db.execute('SELECT node FROM possible_heads') + } walker = None cur_cache_heads = {h.hex for h in possible_heads} if cur_cache_heads == cache_heads: