diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2010-06-18 16:20:27 +0200 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2010-06-18 16:20:27 +0200 |
commit | b82dbf538ac0d03968a0f5b7e2318891abefafaa (patch) | |
tree | 3ee7f95497cba4bdfc19c65e5677f7b0489affb8 /lib/git/db.py | |
parent | e837b901dcfac82e864f806c80f4a9cbfdb9c9f3 (diff) | |
download | gitpython-b82dbf538ac0d03968a0f5b7e2318891abefafaa.tar.gz |
GitCmd implementation of gitdb base moved to git-python where it belongs. Previously it was located in gitdb, which doesn't have any facilities to use the git command
Diffstat (limited to 'lib/git/db.py')
-rw-r--r-- | lib/git/db.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/git/db.py b/lib/git/db.py new file mode 100644 index 00000000..4e860bb6 --- /dev/null +++ b/lib/git/db.py @@ -0,0 +1,33 @@ +"""Module with our own gitdb implementation - it uses the git command""" +from gitdb.base import ( + OInfo, + OStream + ) + +from gitdb.db import LooseObjectDB + +__all__ = ('GitCmdObjectDB', ) + +#class GitCmdObjectDB(CompoundDB, ObjectDBW): +class GitCmdObjectDB(LooseObjectDB): + """A database representing the default git object store, which includes loose + objects, pack files and an alternates file + + It will create objects only in the loose object database. + :note: for now, we use the git command to do all the lookup, just until he + have packs and the other implementations + """ + def __init__(self, root_path, git): + """Initialize this instance with the root and a git command""" + super(GitCmdObjectDB, self).__init__(root_path) + self._git = git + + def info(self, sha): + t = self._git.get_object_header(sha) + return OInfo(*t) + + def stream(self, sha): + """For now, all lookup is done by git itself""" + t = self._git.stream_object_data(sha) + return OStream(*t) + |