Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] portage r9881 - main/trunk/pym/portage/sets
Date: Mon, 14 Apr 2008 00:03:03
Message-Id: E1JlCA1-0005JN-8G@stork.gentoo.org
1 Author: zmedico
2 Date: 2008-04-14 00:03:00 +0000 (Mon, 14 Apr 2008)
3 New Revision: 9881
4
5 Modified:
6 main/trunk/pym/portage/sets/files.py
7 Log:
8 Fix buggy logic in WorldSet.load() that causes it to discard all of
9 it's atoms in some cases (leading to loss of the whole world file).
10
11
12 Modified: main/trunk/pym/portage/sets/files.py
13 ===================================================================
14 --- main/trunk/pym/portage/sets/files.py 2008-04-13 23:21:13 UTC (rev 9880)
15 +++ main/trunk/pym/portage/sets/files.py 2008-04-14 00:03:00 UTC (rev 9881)
16 @@ -185,6 +185,7 @@
17 def load(self):
18 atoms = []
19 nonatoms = []
20 + atoms_changed = False
21 # load atoms and non-atoms from different files so the worldfile is
22 # backwards-compatible with older versions and other PMs, even though
23 # it's supposed to be private state data :/
24 @@ -205,11 +206,12 @@
25 data = {}
26 atoms = data.keys()
27 self._mtime = mtime
28 + atoms_changed = True
29 try:
30 mtime = os.stat(self._filename2).st_mtime
31 except (OSError, IOError):
32 mtime = None
33 - if (not self._loaded or self._mtime2 != mtime):
34 + if (not self._loaded or self._mtime2 != mtime or atoms_changed):
35 try:
36 data, errors = self.loader2.load()
37 for fname in errors:
38 @@ -222,7 +224,8 @@
39 data = {}
40 nonatoms = data.keys()
41 self._mtime2 = mtime
42 - if self._atoms != atoms or self._nonatoms != nonatoms:
43 + atoms_changed = True
44 + if atoms_changed:
45 self._setAtoms(atoms+nonatoms)
46
47 def _ensure_dirs(self):
48
49 --
50 gentoo-commits@l.g.o mailing list