From b82dbf538ac0d03968a0f5b7e2318891abefafaa Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Fri, 18 Jun 2010 16:20:27 +0200 Subject: 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 --- lib/git/db.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 lib/git/db.py (limited to 'lib/git/db.py') 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) + -- cgit v1.2.3