##// END OF EJS Templates
fastannotate: use sysstr to deal with some attributes...
fastannotate: use sysstr to deal with some attributes We are now Python3 only and attribute are always unicode string. So no needs to managed them using bytes.

File last commit:

r50744:de9ffb82 default
r51810:1a242d4d default
Show More
gitutil.py
48 lines | 988 B | text/x-python | PythonLexer
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961 """utilities to assist in working with pygit2"""
Manuel Jacob
py3: use `x.hex()` instead of `pycompat.sysstr(node.hex(x))`
r50195 from mercurial.node import bin, sha1nodeconstants
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961
Martin von Zweigbergk
git: don't fail import when pygit2 is not install...
r44968 pygit2_module = None
def get_pygit2():
global pygit2_module
if pygit2_module is None:
try:
Matt Harbison
typing: suppress a bunch of potential import-error cases in extensions...
r50744 import pygit2 as pygit2_module # pytype: disable=import-error
Martin von Zweigbergk
git: don't fail import when pygit2 is not install...
r44968
pygit2_module.InvalidSpecError
except (ImportError, AttributeError):
pass
return pygit2_module
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961
Matt Harbison
git: show the version of `pygit2` with verbose version output...
r46562 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")
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961 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
Manuel Jacob
py3: use `x.hex()` instead of `pycompat.sysstr(node.hex(x))`
r50195 return n.hex()
Augie Fackler
git: skeleton of a new extension to _directly_ operate on git repos...
r44961
def fromgitnode(n):
"""Opposite of togitnode."""
assert len(n) == 40
return bin(n)
Joerg Sonnenberger
node: replace nullid and friends with nodeconstants class...
r47771 nullgit = togitnode(sha1nodeconstants.nullid)