Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix slow patch checking with commits that add or remove many files #31548

Merged
merged 3 commits into from
Jul 4, 2024

Conversation

brechtvl
Copy link
Contributor

@brechtvl brechtvl commented Jul 3, 2024

Running git update-index for every individual file is slow, so add and remove everything with a single git command.

When such a big commit lands in the default branch, it could cause PR creation and patch checking for all open PRs to be slow, or time out entirely. For example, a commit that removes 1383 files was measured to take more than 60 seconds and timed out. With this change checking took about a second.

This is related to #27967, though this will not help with commits that change many lines in few files.

Running git update-index for every individual file is slow, so add and
remove everything with a single git command.

When such a commit lands in the default branch, it could cause PR creation
and patch checking for all open PRs to be slow, or time out entirely. For
example, a commit that removes 1383 files was measured to take more than
60 seconds and timed out. With this change checking takes about a second.

Related to go-gitea#27967, though this will not help with commits that change many
lines in few files.
@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Jul 3, 2024
@github-actions github-actions bot added the modifies/go Pull requests that update Go code label Jul 3, 2024
@techknowlogick techknowlogick added performance/speed performance issues with slow downs backport/v1.22 This PR should be backported to Gitea 1.22 labels Jul 3, 2024
@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Jul 3, 2024
@lunny
Copy link
Member

lunny commented Jul 4, 2024

Side notes: This is a good example of avoiding too many file paths in the git command, using stdin.

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Jul 4, 2024
@techknowlogick techknowlogick enabled auto-merge (squash) July 4, 2024 18:28
@techknowlogick techknowlogick added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Jul 4, 2024
@techknowlogick techknowlogick merged commit b88e5fc into go-gitea:main Jul 4, 2024
26 checks passed
@GiteaBot GiteaBot added this to the 1.23.0 milestone Jul 4, 2024
GiteaBot pushed a commit to GiteaBot/gitea that referenced this pull request Jul 4, 2024
…o-gitea#31548)

Running git update-index for every individual file is slow, so add and
remove everything with a single git command.

When such a big commit lands in the default branch, it could cause PR
creation and patch checking for all open PRs to be slow, or time out
entirely. For example, a commit that removes 1383 files was measured to
take more than 60 seconds and timed out. With this change checking took
about a second.

This is related to go-gitea#27967, though this will not help with commits that
change many lines in few files.
@GiteaBot GiteaBot added backport/done All backports for this PR have been created and removed reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. labels Jul 4, 2024
zjjhot added a commit to zjjhot/gitea that referenced this pull request Jul 5, 2024
* giteaofficial/main:
  Fix slow patch checking with commits that add or remove many files (go-gitea#31548)
  Add typescript guideline and typescript-specific eslint plugins and fix issues (go-gitea#31521)
silverwind pushed a commit that referenced this pull request Jul 5, 2024
…31548) (#31560)

Backport #31548 by @brechtvl

Running git update-index for every individual file is slow, so add and
remove everything with a single git command.

When such a big commit lands in the default branch, it could cause PR
creation and patch checking for all open PRs to be slow, or time out
entirely. For example, a commit that removes 1383 files was measured to
take more than 60 seconds and timed out. With this change checking took
about a second.

This is related to #27967, though this will not help with commits that
change many lines in few files.

Co-authored-by: Brecht Van Lommel <[email protected]>
@go-gitea go-gitea locked as resolved and limited conversation to collaborators Oct 3, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
backport/done All backports for this PR have been created backport/v1.22 This PR should be backported to Gitea 1.22 lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/go Pull requests that update Go code performance/speed performance issues with slow downs
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants