From: Zac Medico Date: Wed, 28 Sep 2011 06:48:59 +0000 (-0700) Subject: Manifest.write(): tweak unlink logic X-Git-Tag: v2.2.0_alpha60~8 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6d35053a55470f9e8d5c359215f18d75acbcf043;p=portage.git Manifest.write(): tweak unlink logic This narrows the range of possible behaviors, such that the manifest will always be either written or unlinked, eliminating the possiblity that a stale manifest will ever be allowed to slip through without being overwritten or unlinked. --- diff --git a/pym/portage/manifest.py b/pym/portage/manifest.py index 7cac09cde..49c05bd48 100644 --- a/pym/portage/manifest.py +++ b/pym/portage/manifest.py @@ -267,10 +267,14 @@ class Manifest(object): raise if update_manifest: - if myentries: + if myentries or not (self.thin or self.allow_missing): + # If myentries is empty, don't write an empty manifest + # when thin or allow_missing is enabled. Except for + # thin manifests with no DIST entries, myentries is + # non-empty for all currently known use cases. write_atomic(self.getFullname(), "".join("%s\n" % str(myentry) for myentry in myentries)) - elif self.thin: + else: # With thin manifest, there's no need to have # a Manifest file if there are no DIST entries. try: