aboutsummaryrefslogtreecommitdiff
path: root/git/db/complex.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2011-06-07 21:36:42 +0200
committerSebastian Thiel <byronimo@gmail.com>2011-06-07 21:36:42 +0200
commit58a930a632c867b65b9a3802e2f4190cf32e33ee (patch)
tree95b1311a3a4bfcdf4c2dba66f360e6985184013e /git/db/complex.py
parenta98e0af511b728030c12bf8633b077866bb74e47 (diff)
parentf6897c78be5a5530129df50742cb6cabfb8609c9 (diff)
downloadGitPython-58a930a632c867b65b9a3802e2f4190cf32e33ee.tar.gz
GitPython-58a930a632c867b65b9a3802e2f4190cf32e33ee.zip
Merge branch 'gitdbmerger'
Diffstat (limited to 'git/db/complex.py')
-rw-r--r--git/db/complex.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/git/db/complex.py b/git/db/complex.py
new file mode 100644
index 00000000..31b047a0
--- /dev/null
+++ b/git/db/complex.py
@@ -0,0 +1,28 @@
+"""Module with many useful complex databases with different useful combinations of primary implementations"""
+
+from py.complex import PurePartialGitDB
+from cmd.complex import CmdPartialGitDB
+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."""