summaryrefslogtreecommitdiffstats
path: root/pym
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
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')
-rw-r--r--pym/portage.py2
-rw-r--r--pym/portage_manifest.py8
2 files changed, 7 insertions, 3 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 03b3b307b..6b36bfd6a 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -2053,7 +2053,7 @@ def digestgen(myarchives,mysettings,db=None,overwrite=1,manifestonly=0):
mf.create(assumeDistfileHashes=True)
try:
writemsg(">>> Adding digests for file %s\n" % f)
- mf.updateFileHashes(mytype, f, checkExisting=False)
+ mf.updateFileHashes(mytype, f, checkExisting=False, reuseExisting=True)
except portage_exception.FileNotFound, e:
writemsg("!!! File %s doesn't exist, can't update Manifest\n" % str(e))
return 0
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):