# HG changeset patch # User Hollis Blanchard # Date 1591733901 25200 # Node ID fb2936c5f6dcbdbf25a7ce0c99eda100a41cce94 # Parent 7a0a1be721a3be6ad7d3507eef23271c5952cbee 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 diff -r 7a0a1be721a3 -r fb2936c5f6dc hgext/git/index.py --- 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: