nix-prefetch-git: Remove some pack file non-determinism #67805
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for this change
While packaging invidious in #67664, I found a piece of non-determinism in git, which
nix-prefetch-git
didn't account for. This PR works around this.Ping @jonringer @bjornfor
Things done
No hashes needed updating with this change. By default the
.git
directory is removed, only whenleaveDotGit = true;
the function for making it deterministic is called. I applied this little patch:Then I grepped for
leaveDotGit
anddeepClone
(which turns onleaveDotGit
) to find potential packages. Each of those packages I instantiated withso the patch would trace the .drvs that have
leaveDotGit = true;
, then I didon each of them to verify the hash is still correct.