Patchwork D9436: git: show the version of `pygit2` with verbose version output

login
register
mail settings
Submitter phabricator
Date Nov. 28, 2020, 4:49 a.m.
Message ID <differential-rev-PHID-DREV-aebrf2pgrid6sfwr4l4r-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/47715/
State Superseded
Headers show

Comments

phabricator - Nov. 28, 2020, 4:49 a.m.
mharbison72 created this revision.
Herald added a reviewer: durin42.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  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.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D9436

AFFECTED FILES
  hgext/git/__init__.py
  hgext/git/gitutil.py
  tests/test-git-interop.t

CHANGE DETAILS




To: mharbison72, durin42, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

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 @@ 
   >  }
 
 
+  $ hg version -v --config extensions.git= | grep '^[E ]'
+  Enabled extensions:
+    git  internal  (pygit2 *) (glob)
+
 Test auto-loading extension works:
   $ mkdir nogit
   $ cd nogit
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 @@ 
     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/hgext/git/__init__.py b/hgext/git/__init__.py
--- a/hgext/git/__init__.py
+++ b/hgext/git/__init__.py
@@ -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):