diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/bb/fetch/__init__.py | 15 | ||||
-rw-r--r-- | lib/bb/fetch/git.py | 18 | ||||
-rw-r--r-- | lib/bb/fetch2/__init__.py | 15 | ||||
-rw-r--r-- | lib/bb/persist_data.py | 3 |
4 files changed, 27 insertions, 24 deletions
diff --git a/lib/bb/fetch/__init__.py b/lib/bb/fetch/__init__.py index 4cf78779e..5be4c9cae 100644 --- a/lib/bb/fetch/__init__.py +++ b/lib/bb/fetch/__init__.py @@ -757,12 +757,11 @@ class Fetch(object): revs = persist_data.persist('BB_URI_HEADREVS', d) key = self.generate_revision_key(url, ud, d) - rev = revs[key] - if rev != None: - return str(rev) - - revs[key] = rev = self._latest_revision(url, ud, d) - return rev + try: + return revs[key] + except KeyError: + revs[key] = rev = self._latest_revision(url, ud, d) + return rev def sortable_revision(self, url, ud, d): """ @@ -775,13 +774,13 @@ class Fetch(object): key = self.generate_revision_key(url, ud, d) latest_rev = self._build_revision(url, ud, d) - last_rev = localcounts[key + '_rev'] + last_rev = localcounts.get(key + '_rev') uselocalcount = bb.data.getVar("BB_LOCALCOUNT_OVERRIDE", d, True) or False count = None if uselocalcount: count = Fetch.localcount_internal_helper(ud, d) if count is None: - count = localcounts[key + '_count'] + count = localcounts.get(key + '_count') if last_rev == latest_rev: return str(count + "+" + latest_rev) diff --git a/lib/bb/fetch/git.py b/lib/bb/fetch/git.py index 981c494b4..9a51ed138 100644 --- a/lib/bb/fetch/git.py +++ b/lib/bb/fetch/git.py @@ -245,18 +245,20 @@ class Git(Fetch): revs = bb.persist_data.persist('BB_URI_HEADREVS', d) key = self.generate_revision_key(url, ud, d, branch=True) - rev = revs[key] - if rev is None: + + try: + return revs[key] + except KeyError: # Compatibility with old key format, no branch included oldkey = self.generate_revision_key(url, ud, d, branch=False) - rev = revs[oldkey] - if rev is not None: - del revs[oldkey] - else: + try: + rev = revs[oldkey] + except KeyError: rev = self._latest_revision(url, ud, d) + else: + del revs[oldkey] revs[key] = rev - - return str(rev) + return rev def sortable_revision(self, url, ud, d): """ diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index 9768b087b..9cfa3de98 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -804,12 +804,11 @@ class FetchMethod(object): revs = bb.persist_data.persist('BB_URI_HEADREVS', d) key = self.generate_revision_key(url, ud, d, name) - rev = revs[key] - if rev != None: - return str(rev) - - revs[key] = rev = self._latest_revision(url, ud, d, name) - return rev + try: + return revs[key] + except KeyError: + revs[key] = rev = self._latest_revision(url, ud, d, name) + return rev def sortable_revision(self, url, ud, d, name): """ @@ -822,13 +821,13 @@ class FetchMethod(object): key = self.generate_revision_key(url, ud, d, name) latest_rev = self._build_revision(url, ud, d, name) - last_rev = localcounts[key + '_rev'] + last_rev = localcounts.get(key + '_rev') uselocalcount = bb.data.getVar("BB_LOCALCOUNT_OVERRIDE", d, True) or False count = None if uselocalcount: count = FetchMethod.localcount_internal_helper(ud, d, name) if count is None: - count = localcounts[key + '_count'] or "0" + count = localcounts.get(key + '_count') or "0" if last_rev == latest_rev: return str(count + "+" + latest_rev) diff --git a/lib/bb/persist_data.py b/lib/bb/persist_data.py index 38ad35490..81f0845dd 100644 --- a/lib/bb/persist_data.py +++ b/lib/bb/persist_data.py @@ -60,8 +60,11 @@ class SQLTable(collections.MutableMapping): self.table, [key]) for row in data: return row[1] + raise KeyError(key) def __delitem__(self, key): + if key not in self: + raise KeyError(key) self._execute("DELETE from %s where key=?;" % self.table, [key]) def __setitem__(self, key, value): |