summaryrefslogtreecommitdiff
path: root/gitdb/db/ref.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2014-11-14 12:45:19 +0100
committerSebastian Thiel <byronimo@gmail.com>2014-11-14 12:45:19 +0100
commit2f2fe4eea8ba4f47e63a7392a1f27f74f5ee925d (patch)
tree176a493d114fab7cc6e930bf318b2339db386cf5 /gitdb/db/ref.py
parent81707c606b88e971cc359e3e9f3abeeea2204860 (diff)
parent0dcec5a27b341ce58e5ab169f91aa25b2cafec0c (diff)
downloadgitdb-0.6.0.tar.gz
Merge branch 'py2n3'0.6.0
* python 3 compatibility * all tests work in py2.6, 2.7, 3.3, 3.4
Diffstat (limited to 'gitdb/db/ref.py')
-rw-r--r--gitdb/db/ref.py29
1 files changed, 14 insertions, 15 deletions
diff --git a/gitdb/db/ref.py b/gitdb/db/ref.py
index 0a28b9e..d989126 100644
--- a/gitdb/db/ref.py
+++ b/gitdb/db/ref.py
@@ -2,25 +2,24 @@
#
# This module is part of GitDB and is released under
# the New BSD License: http://www.opensource.org/licenses/bsd-license.php
-from base import (
- CompoundDB,
- )
+from gitdb.db.base import (
+ CompoundDB,
+)
-import os
__all__ = ('ReferenceDB', )
class ReferenceDB(CompoundDB):
"""A database consisting of database referred to in a file"""
-
+
# Configuration
# Specifies the object database to use for the paths found in the alternates
# file. If None, it defaults to the GitDB
ObjectDBCls = None
-
+
def __init__(self, ref_file):
super(ReferenceDB, self).__init__()
self._ref_file = ref_file
-
+
def _set_cache_(self, attr):
if attr == '_dbs':
self._dbs = list()
@@ -28,15 +27,15 @@ class ReferenceDB(CompoundDB):
else:
super(ReferenceDB, self)._set_cache_(attr)
# END handle attrs
-
+
def _update_dbs_from_ref_file(self):
dbcls = self.ObjectDBCls
if dbcls is None:
# late import
- from git import GitDB
+ from gitdb.db.git import GitDB
dbcls = GitDB
# END get db type
-
+
# try to get as many as possible, don't fail if some are unavailable
ref_paths = list()
try:
@@ -44,10 +43,10 @@ class ReferenceDB(CompoundDB):
except (OSError, IOError):
pass
# END handle alternates
-
+
ref_paths_set = set(ref_paths)
cur_ref_paths_set = set(db.root_path() for db in self._dbs)
-
+
# remove existing
for path in (cur_ref_paths_set - ref_paths_set):
for i, db in enumerate(self._dbs[:]):
@@ -56,7 +55,7 @@ class ReferenceDB(CompoundDB):
continue
# END del matching db
# END for each path to remove
-
+
# add new
# sort them to maintain order
added_paths = sorted(ref_paths_set - cur_ref_paths_set, key=lambda p: ref_paths.index(p))
@@ -68,11 +67,11 @@ class ReferenceDB(CompoundDB):
db.databases()
# END verification
self._dbs.append(db)
- except Exception as e:
+ except Exception:
# ignore invalid paths or issues
pass
# END for each path to add
-
+
def update_cache(self, force=False):
# re-read alternates and update databases
self._update_dbs_from_ref_file()