[Request] [+ ] D8622: hgext.git: decode node IDs back into Python strings (issue6349)
hollisb (Hollis Blanchard)
phabricator at mercurial-scm.org
Tue Jun 9 20:49:34 UTC 2020
hollisb created this revision.
Herald added a reviewer: durin42.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
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.
REPOSITORY
rHG Mercurial
BRANCH
stable
REVISION DETAIL
https://phab.mercurial-scm.org/D8622
AFFECTED FILES
hgext/git/index.py
CHANGE DETAILS
diff --git a/hgext/git/index.py b/hgext/git/index.py
--- a/hgext/git/index.py
+++ b/hgext/git/index.py
@@ -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 = {
+ x[0].decode("utf-8")
+ 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:
To: hollisb, durin42, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200609/0bc5ccd1/attachment.html>
More information about the Mercurial-patches
mailing list