Mercurial > hg
view hgext/git/gitutil.py @ 51502:a5d8f261b716 stable
obsutil: sort metadata before comparing in geteffectflag()
This is probably less important now that we dropped Python 2. We do still
support Python 3.6 though, and the dictionaries aren't ordered there either
(that was a big change that came with 3.7).
Still, maybe it's a good idea to sort metadata explicitly.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Wed, 13 Mar 2024 16:22:13 -0300 |
parents | de9ffb82ef4d |
children |
line wrap: on
line source
"""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 # pytype: disable=import-error 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)