diff options
| -rw-r--r-- | bitbake/lib/bb/fetch2/__init__.py | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py index a31406263f..f66bddd4b6 100644 --- a/bitbake/lib/bb/fetch2/__init__.py +++ b/bitbake/lib/bb/fetch2/__init__.py | |||
| @@ -498,30 +498,30 @@ def fetcher_init(d): | |||
| 498 | Calls before this must not hit the cache. | 498 | Calls before this must not hit the cache. |
| 499 | """ | 499 | """ |
| 500 | 500 | ||
| 501 | revs = bb.persist_data.persist('BB_URI_HEADREVS', d) | 501 | with bb.persist_data.persist('BB_URI_HEADREVS', d) as revs: |
| 502 | try: | 502 | try: |
| 503 | # fetcher_init is called multiple times, so make sure we only save the | 503 | # fetcher_init is called multiple times, so make sure we only save the |
| 504 | # revs the first time it is called. | 504 | # revs the first time it is called. |
| 505 | if not bb.fetch2.saved_headrevs: | 505 | if not bb.fetch2.saved_headrevs: |
| 506 | bb.fetch2.saved_headrevs = dict(revs) | 506 | bb.fetch2.saved_headrevs = dict(revs) |
| 507 | except: | 507 | except: |
| 508 | pass | 508 | pass |
| 509 | |||
| 510 | # When to drop SCM head revisions controlled by user policy | ||
| 511 | srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear" | ||
| 512 | if srcrev_policy == "cache": | ||
| 513 | logger.debug("Keeping SRCREV cache due to cache policy of: %s", srcrev_policy) | ||
| 514 | elif srcrev_policy == "clear": | ||
| 515 | logger.debug("Clearing SRCREV cache due to cache policy of: %s", srcrev_policy) | ||
| 516 | revs.clear() | ||
| 517 | else: | ||
| 518 | raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy) | ||
| 519 | 509 | ||
| 520 | _checksum_cache.init_cache(d) | 510 | # When to drop SCM head revisions controlled by user policy |
| 511 | srcrev_policy = d.getVar('BB_SRCREV_POLICY') or "clear" | ||
| 512 | if srcrev_policy == "cache": | ||
| 513 | logger.debug("Keeping SRCREV cache due to cache policy of: %s", srcrev_policy) | ||
| 514 | elif srcrev_policy == "clear": | ||
| 515 | logger.debug("Clearing SRCREV cache due to cache policy of: %s", srcrev_policy) | ||
| 516 | revs.clear() | ||
| 517 | else: | ||
| 518 | raise FetchError("Invalid SRCREV cache policy of: %s" % srcrev_policy) | ||
| 519 | |||
| 520 | _checksum_cache.init_cache(d) | ||
| 521 | 521 | ||
| 522 | for m in methods: | 522 | for m in methods: |
| 523 | if hasattr(m, "init"): | 523 | if hasattr(m, "init"): |
| 524 | m.init(d) | 524 | m.init(d) |
| 525 | 525 | ||
| 526 | def fetcher_parse_save(): | 526 | def fetcher_parse_save(): |
| 527 | _checksum_cache.save_extras() | 527 | _checksum_cache.save_extras() |
| @@ -535,8 +535,8 @@ def fetcher_compare_revisions(d): | |||
| 535 | when bitbake was started and return true if they have changed. | 535 | when bitbake was started and return true if they have changed. |
| 536 | """ | 536 | """ |
| 537 | 537 | ||
| 538 | headrevs = dict(bb.persist_data.persist('BB_URI_HEADREVS', d)) | 538 | with dict(bb.persist_data.persist('BB_URI_HEADREVS', d)) as headrevs: |
| 539 | return headrevs != bb.fetch2.saved_headrevs | 539 | return headrevs != bb.fetch2.saved_headrevs |
| 540 | 540 | ||
| 541 | def mirror_from_string(data): | 541 | def mirror_from_string(data): |
| 542 | mirrors = (data or "").replace('\\n',' ').split() | 542 | mirrors = (data or "").replace('\\n',' ').split() |
| @@ -1618,13 +1618,13 @@ class FetchMethod(object): | |||
| 1618 | if not hasattr(self, "_latest_revision"): | 1618 | if not hasattr(self, "_latest_revision"): |
| 1619 | raise ParameterError("The fetcher for this URL does not support _latest_revision", ud.url) | 1619 | raise ParameterError("The fetcher for this URL does not support _latest_revision", ud.url) |
| 1620 | 1620 | ||
| 1621 | revs = bb.persist_data.persist('BB_URI_HEADREVS', d) | 1621 | with bb.persist_data.persist('BB_URI_HEADREVS', d) as revs: |
| 1622 | key = self.generate_revision_key(ud, d, name) | 1622 | key = self.generate_revision_key(ud, d, name) |
| 1623 | try: | 1623 | try: |
| 1624 | return revs[key] | 1624 | return revs[key] |
| 1625 | except KeyError: | 1625 | except KeyError: |
| 1626 | revs[key] = rev = self._latest_revision(ud, d, name) | 1626 | revs[key] = rev = self._latest_revision(ud, d, name) |
| 1627 | return rev | 1627 | return rev |
| 1628 | 1628 | ||
| 1629 | def sortable_revision(self, ud, d, name): | 1629 | def sortable_revision(self, ud, d, name): |
| 1630 | latest_rev = self._build_revision(ud, d, name) | 1630 | latest_rev = self._build_revision(ud, d, name) |
