diff hgext/git/index.py @ 44496:ec54b3d2af0b

git: don't fail import when pygit2 is not install `test-duplicateoptions.py` was failing on py2 for be because I didn't have pygit2 installed. It failed because we depend on pygit2 at import time. This patch makes it so we successfully load the git extension even if pygit2 doesn't exist -- we just won't be able to use it in that case. Differential Revision: https://phab.mercurial-scm.org/D8268
author Martin von Zweigbergk <martinvonz@google.com>
date Mon, 09 Mar 2020 11:18:33 -0700
parents ad718271a9eb
children fb2936c5f6dc
line wrap: on
line diff
--- a/hgext/git/index.py	Mon Mar 09 12:53:21 2020 -0700
+++ b/hgext/git/index.py	Mon Mar 09 11:18:33 2020 -0700
@@ -4,8 +4,6 @@
 import os
 import sqlite3
 
-import pygit2
-
 from mercurial.i18n import _
 
 from mercurial import (
@@ -18,6 +16,8 @@
 from . import gitutil
 
 
+pygit2 = gitutil.get_pygit2()
+
 _CURRENT_SCHEMA_VERSION = 1
 _SCHEMA = (
     """
@@ -101,9 +101,13 @@
     return db
 
 
-_OUR_ORDER = (
-    pygit2.GIT_SORT_TOPOLOGICAL | pygit2.GIT_SORT_TIME | pygit2.GIT_SORT_REVERSE
-)
+_OUR_ORDER = ()
+if pygit2:
+    _OUR_ORDER = (
+        pygit2.GIT_SORT_TOPOLOGICAL
+        | pygit2.GIT_SORT_TIME
+        | pygit2.GIT_SORT_REVERSE
+    )
 
 _DIFF_FLAGS = 1 << 21  # GIT_DIFF_FORCE_BINARY, which isn't exposed by pygit2