Mercurial > public > mercurial-scm > hg-stable
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