df7dab1291
Without this commit, two jobsets using the same repository as input, but different `deepClone` options, end up incorrectly sharing the same "checkout" for a given (`uri`, `branch`, `revision`) tuple. The presence or absence of `.git` is determined by the jobset execution order. This patch adds the missing `isDeepClone` boolean to the cache key. The database upgrade script empties the `CachedGitInputs` table, as we don't know if existing checkouts are deep clones. Unfortunately, this generally forces rebuilds even for correct `deepClone` checkouts, as the binary contents of `.git` are not deterministic. Fixes #510
13 lines
491 B
SQL
13 lines
491 B
SQL
-- We don't know if existing checkouts are deep clones. This will
|
|
-- force a new fetch (and most likely trigger a new build for deep
|
|
-- clones, as the binary contents of '.git' are not deterministic).
|
|
DELETE FROM CachedGitInputs;
|
|
|
|
ALTER TABLE CachedGitInputs
|
|
ADD COLUMN isDeepClone BOOLEAN NOT NULL;
|
|
|
|
ALTER TABLE CachedGitInputs DROP CONSTRAINT cachedgitinputs_pkey;
|
|
|
|
ALTER TABLE CachedGitInputs ADD CONSTRAINT cachedgitinputs_pkey
|
|
PRIMARY KEY (uri, branch, revision, isDeepClone);
|