diff options
author | Zac Medico <zmedico@gentoo.org> | 2011-05-25 18:37:55 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-05-25 18:37:55 -0700 |
commit | 87cf046b84f153a9e35fb3d248c50479312076a5 (patch) | |
tree | 6969ac6ba32b2a591232cf508bf135a14f7d63b6 | |
parent | d810f9a0b160a91fae059a5c32c1b673fe7be3be (diff) | |
download | portage-87cf046b84f153a9e35fb3d248c50479312076a5.tar.gz portage-87cf046b84f153a9e35fb3d248c50479312076a5.tar.bz2 portage-87cf046b84f153a9e35fb3d248c50479312076a5.zip |
counter_tick: respect incrementing param always
Every package install must have a unique counter, since a slotmove
update can move two packages into the same SLOT and in that case it's
important that both packages have different COUNTER metadata.
-rw-r--r-- | pym/portage/dbapi/vartree.py | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py index 62a233258..47952e777 100644 --- a/pym/portage/dbapi/vartree.py +++ b/pym/portage/dbapi/vartree.py @@ -812,27 +812,31 @@ class vardbapi(dbapi): def counter_tick_core(self, myroot=None, incrementing=1, mycpv=None): """ This method will grab the next COUNTER value and record it back - to the global file. Returns new counter value. + to the global file. Note that every package install must have + a unique counter, since a slotmove update can move two packages + into the same SLOT and in that case it's important that both + packages have different COUNTER metadata. @param myroot: ignored, self._eroot is used instead @param mycpv: ignored + @rtype: int + @returns: new counter value """ myroot = None mycpv = None self.lock() try: counter = self.get_counter_tick_core() - 1 - if self._cached_counter != counter: - if incrementing: - #increment counter - counter += 1 - # update new global counter file - try: - write_atomic(self._counter_path, str(counter)) - except InvalidLocation: - self.settings._init_dirs() - write_atomic(self._counter_path, str(counter)) - self._cached_counter = counter + if incrementing: + #increment counter + counter += 1 + # update new global counter file + try: + write_atomic(self._counter_path, str(counter)) + except InvalidLocation: + self.settings._init_dirs() + write_atomic(self._counter_path, str(counter)) + self._cached_counter = counter finally: self.unlock() |