# HG changeset patch # User Matt Harbison <matt_harbison@yahoo.com> # Date 2020-11-26 20:09:57 # Node ID c7c1efdfd4dec044df57dd7f477e47165b576927 # Parent a001e28ad5eb4ffb52a61f2371f64445cc918b5d git: show the version of `pygit2` with verbose version output This seems like useful info to have when debugging. I followed the precedent of hg-git, which prints something like: hggit external 0.9.0a1 (dulwich 0.19.15) We don't have a version number assigned (because it's internal), so it's just the parenthetical. Differential Revision: https://phab.mercurial-scm.org/D9436 diff --git a/hgext/git/__init__.py b/hgext/git/__init__.py --- a/hgext/git/__init__.py +++ b/hgext/git/__init__.py @@ -44,6 +44,9 @@ configitem( default=False, ) +getversion = gitutil.pygit2_version + + # TODO: extract an interface for this in core class gitstore(object): # store.basicstore): def __init__(self, path, vfstype): diff --git a/hgext/git/gitutil.py b/hgext/git/gitutil.py --- a/hgext/git/gitutil.py +++ b/hgext/git/gitutil.py @@ -20,6 +20,19 @@ def get_pygit2(): 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. diff --git a/tests/test-git-interop.t b/tests/test-git-interop.t --- a/tests/test-git-interop.t +++ b/tests/test-git-interop.t @@ -16,6 +16,10 @@ Setup: > } + $ hg version -v --config extensions.git= | grep '^[E ]' + Enabled extensions: + git internal (pygit2 *) (glob) + Test auto-loading extension works: $ mkdir nogit $ cd nogit