##// END OF EJS Templates
rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade...
rhg: fix bugs around [use-dirstate-tracked-hint] and repo auto-upgrade This makes two changes: - make rhg support the [dirstate-tracked-key-v1] requirement. I believe rhg never changes the tracked file set, so it's OK that it doesn't have any logic for writing this file. - fix the name of [format.use-dirstate-v2.automatic-upgrade-of-mismatching-repositories] config option in rhg, which makes rhg actually honor the auto-upgrade. These two issues cancelled each other out in tests (auto-upgrade was happening because [dirstate-tracked-key-v1] forced the fallback, not because of the config), which is I think why they went unnoticed earlier.

File last commit:

r50195:22712409 default
r50395:3a538710 stable
Show More
gitutil.py
48 lines | 956 B | text/x-python | PythonLexer
"""utilities to assist in working with pygit2"""
from mercurial.node import bin, sha1nodeconstants
pygit2_module = None
def get_pygit2():
global pygit2_module
if pygit2_module is None:
try:
import pygit2 as pygit2_module
pygit2_module.InvalidSpecError
except (ImportError, AttributeError):
pass
return pygit2_module
def pygit2_version():
mod = get_pygit2()
v = "N/A"
if mod:
try:
v = mod.__version__
except AttributeError:
pass
return b"(pygit2 %s)" % v.encode("utf-8")
def togitnode(n):
"""Wrapper to convert a Mercurial binary node to a unicode hexlified node.
pygit2 and sqlite both need nodes as strings, not bytes.
"""
assert len(n) == 20
return n.hex()
def fromgitnode(n):
"""Opposite of togitnode."""
assert len(n) == 40
return bin(n)
nullgit = togitnode(sha1nodeconstants.nullid)