summaryrefslogtreecommitdiff
path: root/git/db/py
diff options
context:
space:
mode:
Diffstat (limited to 'git/db/py')
-rw-r--r--git/db/py/base.py9
-rw-r--r--git/db/py/complex.py16
-rw-r--r--git/db/py/resolve.py3
3 files changed, 15 insertions, 13 deletions
diff --git a/git/db/py/base.py b/git/db/py/base.py
index 74b8beb9..4d9b6e14 100644
--- a/git/db/py/base.py
+++ b/git/db/py/base.py
@@ -8,6 +8,7 @@ from git.db.interface import *
from git.util import (
pool,
join,
+ isfile,
normpath,
abspath,
dirname,
@@ -25,7 +26,8 @@ from git.config import GitConfigParser
from git.exc import (
BadObject,
AmbiguousObjectName,
- InvalidDBRoot
+ InvalidGitRepositoryError,
+ NoSuchPathError
)
from async import ChannelThreadTask
@@ -240,7 +242,7 @@ class PureRepositoryPathsMixin(RepositoryPathsMixin):
epath = abspath(expandvars(expanduser(path or os.getcwd())))
if not exists(epath):
- raise InvalidDBRoot(epath)
+ raise NoSuchPathError(epath)
#END check file
self._working_tree_dir = None
@@ -264,7 +266,7 @@ class PureRepositoryPathsMixin(RepositoryPathsMixin):
# END while curpath
if self._git_path is None:
- raise InvalidDBRoot(epath)
+ raise InvalidGitRepositoryError(epath)
# END path not found
self._bare = self._git_path.endswith(self.repo_dir)
@@ -351,6 +353,7 @@ class PureConfigurationMixin(ConfigurationMixin):
def __init__(self, *args, **kwargs):
"""Verify prereqs"""
+ super(PureConfigurationMixin, self).__init__(*args, **kwargs)
assert hasattr(self, 'git_dir')
def _path_at_level(self, level ):
diff --git a/git/db/py/complex.py b/git/db/py/complex.py
index 9d891537..a51118b3 100644
--- a/git/db/py/complex.py
+++ b/git/db/py/complex.py
@@ -1,6 +1,6 @@
# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors
#
-# This module is part of PureGitDB and is released under
+# This module is part of PurePartialGitDB and is released under
# the New BSD License: http://www.opensource.org/licenses/bsd-license.php
from git.db.interface import HighLevelRepository
from base import (
@@ -12,7 +12,7 @@ from base import (
PureAlternatesFileMixin,
PureIndexDB,
)
-
+from transport import PureTransportDB
from resolve import PureReferencesMixin
from loose import PureLooseObjectODB
@@ -35,14 +35,14 @@ from git.exc import (
)
import os
-__all__ = ('PureGitODB', 'PureGitDB', 'PureCompatibilityGitDB')
+__all__ = ('PureGitODB', 'PurePartialGitDB', 'PureCompatibilityGitDB')
class PureGitODB(PureRootPathDB, PureObjectDBW, PureCompoundDB):
"""A git-style object-only database, which contains all objects in the 'objects'
subdirectory.
:note: The type needs to be initialized on the ./objects directory to function,
- as it deals solely with object lookup. Use a PureGitDB type if you need
+ as it deals solely with object lookup. Use a PurePartialGitDB type if you need
reference and push support."""
# Configuration
PackDBCls = PurePackedODB
@@ -103,10 +103,10 @@ class PureGitODB(PureRootPathDB, PureObjectDBW, PureCompoundDB):
-class PureGitDB(PureGitODB,
+class PurePartialGitDB(PureGitODB,
PureRepositoryPathsMixin, PureConfigurationMixin,
PureReferencesMixin, PureSubmoduleDB, PureAlternatesFileMixin,
- PureIndexDB,
+ PureIndexDB, PureTransportDB
# HighLevelRepository Currently not implemented !
):
"""Git like database with support for object lookup as well as reference resolution.
@@ -119,10 +119,10 @@ class PureGitDB(PureGitODB,
def __init__(self, root_path):
"""Initialize ourselves on the .git directory, or the .git/objects directory."""
PureRepositoryPathsMixin._initialize(self, root_path)
- super(PureGitDB, self).__init__(self.objects_dir)
+ super(PurePartialGitDB, self).__init__(self.objects_dir)
-class PureCompatibilityGitDB(PureGitDB, RepoCompatibilityInterface):
+class PureCompatibilityGitDB(PurePartialGitDB, RepoCompatibilityInterface):
"""Pure git database with a compatability layer required by 0.3x code"""
diff --git a/git/db/py/resolve.py b/git/db/py/resolve.py
index 7194149c..7bea779e 100644
--- a/git/db/py/resolve.py
+++ b/git/db/py/resolve.py
@@ -320,8 +320,7 @@ class PureReferencesMixin(ReferencesMixin):
return self.TagReferenceCls.list_items(self)
def tag(self, name):
- return self.tags[name]
-
+ return self.TagReferenceCls(self, self.TagReferenceCls.to_full_path(name))
def commit(self, rev=None):
if rev is None: