summaryrefslogtreecommitdiff
path: root/git/db/complex.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/db/complex.py')
-rw-r--r--git/db/complex.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/git/db/complex.py b/git/db/complex.py
index e8ad8a62..e3442dee 100644
--- a/git/db/complex.py
+++ b/git/db/complex.py
@@ -6,23 +6,31 @@ from compat import RepoCompatibilityInterface
__all__ = ['CmdGitDB', 'PureGitDB', 'CmdCompatibilityGitDB', 'PureCompatibilityGitDB']
+
class CmdGitDB(CmdPartialGitDB, PurePartialGitDB):
+
"""A database which uses primarily the git command implementation, but falls back
to pure python where it is more feasible
:note: To assure consistent behaviour across implementations, when calling the
``stream()`` method a cache is created. This makes this implementation a bad
choice when reading big files as these are streamed from memory in all cases."""
+
class CmdCompatibilityGitDB(RepoCompatibilityInterface, CmdGitDB):
+
"""A database which fills in its missing implementation using the pure python
implementation"""
pass
+
class PureGitDB(PurePartialGitDB, CmdPartialGitDB):
+
"""A repository which uses the pure implementation primarily, but falls back
on using the git command for high-level functionality"""
+
class PureCompatibilityGitDB(RepoCompatibilityInterface, PureGitDB):
+
"""Repository which uses the pure implementation primarily, but falls back
to the git command implementation. Please note that the CmdGitDB does it
the opposite way around."""