git: show the version of `pygit2` with verbose version output
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 26 Nov 2020 15:09:57 -0500
changeset 45950 c7c1efdfd4de
parent 45949 a001e28ad5eb
child 45951 c26cb33e5219
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
hgext/git/__init__.py
hgext/git/gitutil.py
tests/test-git-interop.t
--- a/hgext/git/__init__.py	Fri Nov 27 15:17:42 2020 -0500
+++ b/hgext/git/__init__.py	Thu Nov 26 15:09:57 2020 -0500
@@ -44,6 +44,9 @@
     default=False,
 )
 
+getversion = gitutil.pygit2_version
+
+
 # TODO: extract an interface for this in core
 class gitstore(object):  # store.basicstore):
     def __init__(self, path, vfstype):
--- a/hgext/git/gitutil.py	Fri Nov 27 15:17:42 2020 -0500
+++ b/hgext/git/gitutil.py	Thu Nov 26 15:09:57 2020 -0500
@@ -20,6 +20,19 @@
     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.
 
--- a/tests/test-git-interop.t	Fri Nov 27 15:17:42 2020 -0500
+++ b/tests/test-git-interop.t	Thu Nov 26 15:09:57 2020 -0500
@@ -16,6 +16,10 @@
   >  }
 
 
+  $ hg version -v --config extensions.git= | grep '^[E ]'
+  Enabled extensions:
+    git  internal  (pygit2 *) (glob)
+
 Test auto-loading extension works:
   $ mkdir nogit
   $ cd nogit