check for dirty tree without update-index, which is not parallel-safe #4133
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.
- What I did
Removed
git update-indexfrom checking if a tree is dirty viaGit.isDirty(). It was slow and not parallel safe. If anyone else - another linuxkit process or someone outside - runs anything that affects the index anywhere in the repo, it can be an issue.Instead, use a series of other git commands to check if the tree is dirty.
Note that there is a slight chance that a file with no modifications except modtime could make it look dirty. That is an acceptable price to pay.
- How I did it
Changed
git.go- How to verify it
CI will be fine. I also did it manually, testing different scenarios of a package being dirty and clean in different ways.
- Description for the changelog
Ability to run multiple git calls, including
pkg show-tagandpkg build, as well as other git commands, in parallel.