in src/buildstream_plugins/sources/git.py [0:0]
def get_unique_key(self):
ref = self.mirror.ref
if ref is not None:
# Strip any (arbitary) tag information, leaving just the commit ID
ref = _strip_tag(ref)
# Here we want to encode the local name of the repository and
# the ref, if the user changes the alias to fetch the same sources
# from another location, it should not affect the cache key.
key = [self.original_url, ref]
if self.mirror.tags:
tags = {tag: (commit, annotated) for tag, commit, annotated in self.mirror.tags}
key.append({"tags": tags})
# Only modify the cache key with checkout_submodules if it's something
# other than the default behaviour.
if self.checkout_submodules is False:
key.append({"checkout_submodules": self.checkout_submodules})
# We want the cache key to change if the source was
# configured differently, and submodules count.
if self.submodule_overrides:
key.append(self.submodule_overrides)
if self.submodule_checkout_overrides:
key.append({"submodule_checkout_overrides": self.submodule_checkout_overrides})
return key