summaryrefslogtreecommitdiffstats
path: root/pym/portage_manifest.py
diff options
context:
space:
mode:
authorMarius Mauch <genone@gentoo.org>2006-03-25 00:45:29 +0000
committerMarius Mauch <genone@gentoo.org>2006-03-25 00:45:29 +0000
commite4becfedbeb95e47d26cb9009fad6ee24e0c9439 (patch)
treea4e7e0cc92f5c209b3e27026b1fff2406dde09dc /pym/portage_manifest.py
parent1e19669bc198897b0de35cd95c9592293898496f (diff)
downloadportage-e4becfedbeb95e47d26cb9009fad6ee24e0c9439.tar.gz
portage-e4becfedbeb95e47d26cb9009fad6ee24e0c9439.tar.bz2
portage-e4becfedbeb95e47d26cb9009fad6ee24e0c9439.zip
Make ebuild digest reuse existing checksums
svn path=/main/trunk/; revision=2997
Diffstat (limited to 'pym/portage_manifest.py')
-rw-r--r--pym/portage_manifest.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/pym/portage_manifest.py b/pym/portage_manifest.py
index 9dddd6982..962dbb447 100644
--- a/pym/portage_manifest.py
+++ b/pym/portage_manifest.py
@@ -279,7 +279,7 @@ class Manifest(object):
""" Get a list of all DIST files associated to the given cpv """
return self.db.getfetchlist(cpv, mysettings=self.mysettings, all=True)[1]
- def updateFileHashes(self, ftype, fname, checkExisting=True, ignoreMissing=True):
+ def updateFileHashes(self, ftype, fname, checkExisting=True, ignoreMissing=True, reuseExisting=False):
""" Regenerate hashes for the given file """
if checkExisting:
self.checkFileHashes(fname)
@@ -287,7 +287,11 @@ class Manifest(object):
raise FileNotInManifestException(fname)
if not self.fhashdict[ftype].has_key(fname):
self.fhashdict[ftype][fname] = {}
- myhashes = perform_multiple_checksums(self._getAbsname(ftype, fname), self.hashes)
+ myhashkeys = list(self.hashes)
+ if reuseExisting:
+ for k in [h for h in self.fhashdict[ftype][fname].keys() if h in myhashkeys]:
+ myhashkeys.remove(k)
+ myhashes = perform_multiple_checksums(self._getAbsname(ftype, fname), myhashkeys)
self.fhashdict[ftype][fname].update(myhashes)
def updateTypeHashes(self, idtype, checkExisting=False, ignoreMissingFiles=True):