From: Fabian Groffen Date: Mon, 12 May 2008 19:23:41 +0000 (-0000) Subject: manually merge differences with the trunk X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=47a5a69772ae555a4ec85e489264c244af7b266a;p=portage.git manually merge differences with the trunk svn path=/main/branches/prefix/; revision=10307 --- diff --git a/pym/portage/cache/anydbm.py b/pym/portage/cache/anydbm.py index 0a3be1470..47b8ac1bd 100644 --- a/pym/portage/cache/anydbm.py +++ b/pym/portage/cache/anydbm.py @@ -36,7 +36,6 @@ class database(fs_template.FsBased): try: self._ensure_dirs() self._ensure_dirs(self._db_path) - self._ensure_access(self._db_path) except (OSError, IOError), e: raise cache_errors.InitializationError(self.__class__, e) @@ -44,8 +43,9 @@ class database(fs_template.FsBased): try: if self.__db == None: self.__db = anydbm_module.open(self._db_path, "c", self._perms) - except andbm_module.error, e: + except anydbm_module.error, e: raise cache_errors.InitializationError(self.__class__, e) + self._ensure_access(self._db_path) def iteritems(self): return self.__db.iteritems() @@ -61,7 +61,7 @@ class database(fs_template.FsBased): del self.__db[cpv] def __iter__(self): - return iter(self.__db) + return iter(self.__db.keys()) def __contains__(self, cpv): return cpv in self.__db diff --git a/pym/portage/cache/flat_hash.py b/pym/portage/cache/flat_hash.py index 106df6b46..80b23fe4d 100644 --- a/pym/portage/cache/flat_hash.py +++ b/pym/portage/cache/flat_hash.py @@ -71,9 +71,9 @@ class database(fs_template.FsBased): else: raise cache_errors.CacheCorruption(cpv, e) - for k, v in values.items(): + for k, v in values.iteritems(): if k != "_mtime_" and (k == "_eclasses_" or k in self._known_keys): - myf.writelines("%s=%s\n" % (k, v)) + myf.write("%s=%s\n" % (k, v)) myf.close() self._ensure_access(fp, mtime=values["_mtime_"]) diff --git a/pym/portage/cache/metadata.py b/pym/portage/cache/metadata.py index c45164e71..c32cffe57 100644 --- a/pym/portage/cache/metadata.py +++ b/pym/portage/cache/metadata.py @@ -53,9 +53,7 @@ class database(flat_hash.database): elif c == "_" or c.isdigit(): continue break - elif not c.isupper(): - break - + if not hashed: # non hashed. d.clear() diff --git a/pym/portage/cache/metadata_overlay.py b/pym/portage/cache/metadata_overlay.py index dfa7050c4..13d12787e 100644 --- a/pym/portage/cache/metadata_overlay.py +++ b/pym/portage/cache/metadata_overlay.py @@ -47,17 +47,17 @@ class database(template.database): return value def _setitem(self, name, values): - try: - value_ro = self.db_ro[name] - if self._are_values_identical(value_ro,values): - # we have matching values in the underlying db_ro - # so it is unnecessary to store data in db_rw - try: - del self.db_rw[name] # delete unwanted whiteout when necessary - except KeyError: - pass - except KeyError: - self.db_rw[name] = values + value_ro = self.db_ro.get(name, None) + if value_ro is not None and \ + self._are_values_identical(value_ro, values): + # we have matching values in the underlying db_ro + # so it is unnecessary to store data in db_rw + try: + del self.db_rw[name] # delete unwanted whiteout when necessary + except KeyError: + pass + return + self.db_rw[name] = values def _delitem(self, cpv): value = self[cpv] # validates whiteout and/or raises a KeyError when necessary