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
--- 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