diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2014-01-20 14:53:38 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2014-01-22 11:30:13 +0000 |
commit | 4c1acc88e81971172f6dc5b0d31f1eb8471cd0d2 (patch) | |
tree | d069ffb1c48a46fa6f404a63e9613da86aa3e9ec /tests.as-root/run-in-artifact-propagates-exit-code.script | |
parent | e97bcc8c98377e70e99ace9975e650092311983b (diff) | |
download | morph-4c1acc88e81971172f6dc5b0d31f1eb8471cd0d2.tar.gz |
cache-key: Fix obscure cache key collision
If two systems with the same name (e.g. different repo/ref) depend on the
same strata, then it will collide with systems which depend on different
artifacts from that stratum, but the same number of artifacts.
For example, if you checkout an existing branch and change the artifacts
used by one of its strata, then your local changes won't be built.
This is because the 'kids' field lists artifacts it depends on by their
cache-key, which is now no longer sufficient to uniquely identify
artifacts. The same number of artifacts issue is from it listing cache
keys multiple times.
The fix for this is to include the artifact name, so the 'kids' field is
now a list of dicts, with artifact name and cache key.
This is a dict rather than a tuple so that the generated /baserock
metadata is more readable.
Diffstat (limited to 'tests.as-root/run-in-artifact-propagates-exit-code.script')
0 files changed, 0 insertions, 0 deletions