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
Calculate filesystem node's hash lazily. #825
Conversation
@candid82 thanks for your PR. Do you mind providing a benchstat of the performance improvements please? Also, re-word the commit message to align with the contribution guidelines.
Happy for this to be a follow-up PR. |
The main motivation behind this change is to speed up status operation. Currently it's very slow, especially for repositories with lots of ignored files (e.g. node.js repository with node_modules directory). One of the reasons for this slowness is the fact that traversing filesystem involves calculating file hashes for all files, even if those hashes are not needed in the end because the files are in gitignore. On my machine, for a random repository with sizable (ignored) node_modules directory this changes bring the execution time for Worktree.Status from ~3.5s to ~1.4s. This is still very slow, but a significant improvement. A better fix (instead of or in addition to this one) would be to avoid traversing ignored files in the first place. However, such change seem to be more intrusive and will require much deeper understanding of the codebase.
@pjbgf Below please find benchstat results for one of my local repositories with sizable node_modules directory. Obviously, the results depend on the size of git repo and the number of ignored files.
The benchmark code:
I also adjusted the commit message. |
Thank you for providing the benchstat and rewording the commit. Doing another review I noticed that this change could introduce an issue by which once the Otherwise, LGTM. |
@candid82 @pjbgf Any updates on this PR? If there is lack of time on @candid82's side, I'm also happy to provide the requested comments/docs after this PR is merged. Merging this PR would alleviate a lot of pain in regard to #181. On my side, it would help me avoid a temporary workaround that would exec-out into |
@codablock I moved on to other things and currently don't have the time to properly evaluate the concern brought up by @pjbgf in the previous comment. Please feel free to pick this work up. |
@pjbgf As requested in Slack, I have tested this PR locally (by replacing If you merge this PR, I will follow up with a PR that adds the docs/comments. |
@codablock thanks for the testing. @candid82 thank you for your original contribution. |
Here is the PR with the requested comment update: #992 |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | `v5.11.0` -> `v5.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.12.0`](https://togithub.com/go-git/go-git/releases/tag/v5.12.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.11.0...v5.12.0) #### What's Changed - git: Worktree.AddWithOptions: add skipStatus option when providing a specific path by [@​moranCohen26](https://togithub.com/moranCohen26) in [go-git/go-git#994 - git: Signer: fix usage of crypto.Signer interface by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#1029 - git: Remote, fetch, adds the prune option. by [@​juliens](https://togithub.com/juliens) in [go-git/go-git#366 - git: Add crypto.Signer option to CommitOptions. by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#996 - git: Worktree checkout tag hash id ([#​959](https://togithub.com/go-git/go-git/issues/959)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [go-git/go-git#966 - git: Worktree, Don't panic on empty or root path when checking if it is valid by [@​tim775](https://togithub.com/tim775) in [go-git/go-git#1042 - git: Add commit validation for Reset by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1048 - git: worktree_commit, Fix amend commit to apply changes. Fixes [#​1024](https://togithub.com/go-git/go-git/issues/1024) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1045 - git: Implement Merge function with initial `FastForwardMerge` support by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1044 - plumbing: object, Make first commit visible on logs filtered with filename. Fixes [#​191](https://togithub.com/go-git/go-git/issues/191) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1036 - plumbing: no panic in printStats function. Fixes [#​177](https://togithub.com/go-git/go-git/issues/177) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#971 - plumbing: object, Optimize logging with file. by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1046 - plumbing: object, check legitimacy in (\*Tree).Encode by [@​niukuo](https://togithub.com/niukuo) in [go-git/go-git#967 - plumbing: format/gitattributes, close file in ReadAttributesFile by [@​prskr](https://togithub.com/prskr) in [go-git/go-git#1018 - plumbing: check setAuth error. Fixes [#​185](https://togithub.com/go-git/go-git/issues/185) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#969 - plumbing: object, fix variable defaultUtf8CommitMessageEncoding name spell error by [@​Jerry-yz](https://togithub.com/Jerry-yz) in [go-git/go-git#987 - utils: merkletrie, calculate filesystem node's hash lazily. by [@​candid82](https://togithub.com/candid82) in [go-git/go-git#825 - utils: update comment in node.go's Hash() by [@​codablock](https://togithub.com/codablock) in [go-git/go-git#992 - \_example: fix 404 link and added ssh-agent clone link by [@​grinish21](https://togithub.com/grinish21) in [go-git/go-git#1022 - \_example: checkout-branch example by [@​dlambda](https://togithub.com/dlambda) in [go-git/go-git#446 - \_example: example for git clone using ssh-agent by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#998 #### New Contributors - [@​candid82](https://togithub.com/candid82) made their first contribution in [go-git/go-git#825 - [@​codablock](https://togithub.com/codablock) made their first contribution in [go-git/go-git#992 - [@​Jerry-yz](https://togithub.com/Jerry-yz) made their first contribution in [go-git/go-git#987 - [@​wlynch](https://togithub.com/wlynch) made their first contribution in [go-git/go-git#996 - [@​moranCohen26](https://togithub.com/moranCohen26) made their first contribution in [go-git/go-git#994 - [@​grinish21](https://togithub.com/grinish21) made their first contribution in [go-git/go-git#1022 - [@​prskr](https://togithub.com/prskr) made their first contribution in [go-git/go-git#1018 - [@​dlambda](https://togithub.com/dlambda) made their first contribution in [go-git/go-git#446 - [@​juliens](https://togithub.com/juliens) made their first contribution in [go-git/go-git#366 - [@​onee-only](https://togithub.com/onee-only) made their first contribution in [go-git/go-git#1036 - [@​tim775](https://togithub.com/tim775) made their first contribution in [go-git/go-git#1042 - [@​niukuo](https://togithub.com/niukuo) made their first contribution in [go-git/go-git#967 - [@​avoidalone](https://togithub.com/avoidalone) made their first contribution in [go-git/go-git#1047 **Full Changelog**: go-git/go-git@v5.11.0...v5.12.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/anoriqq/qpm). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [github.com/aws/aws-sdk-go](https://togithub.com/aws/aws-sdk-go) | `v1.51.6` -> `v1.51.11` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2faws%2faws-sdk-go/v1.51.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2faws%2faws-sdk-go/v1.51.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2faws%2faws-sdk-go/v1.51.6/v1.51.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2faws%2faws-sdk-go/v1.51.6/v1.51.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | [github.com/cenkalti/backoff/v4](https://togithub.com/cenkalti/backoff) | `v4.2.1` -> `v4.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fcenkalti%2fbackoff%2fv4/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fcenkalti%2fbackoff%2fv4/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fcenkalti%2fbackoff%2fv4/v4.2.1/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fcenkalti%2fbackoff%2fv4/v4.2.1/v4.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/cerbos/cloud-api](https://togithub.com/cerbos/cloud-api) | `ffe3a67` -> `d106081` | | | | | require | digest | | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | `v5.11.0` -> `v5.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | minor | | [github.com/go-sql-driver/mysql](https://togithub.com/go-sql-driver/mysql) | `v1.8.0` -> `v1.8.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-sql-driver%2fmysql/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgo-sql-driver%2fmysql/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgo-sql-driver%2fmysql/v1.8.0/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-sql-driver%2fmysql/v1.8.0/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | require | patch | | golang.org/x/exp | `a85f2c6` -> `a685a6e` | | | | | require | digest | | [google.golang.org/genproto/googleapis/api](https://togithub.com/googleapis/go-genproto) | `94a12d6` -> `454cdb8` | | | | | require | digest | --- ### Release Notes <details> <summary>aws/aws-sdk-go (github.com/aws/aws-sdk-go)</summary> ### [`v1.51.11`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v15111-2024-03-29) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.51.10...v1.51.11) \=== ##### Service Client Updates - `service/b2bi`: Updates service API and documentation - `service/codebuild`: Updates service API - Add new fleet status code for Reserved Capacity. - `service/codeconnections`: Adds new service - `service/internetmonitor`: Updates service API and documentation - `service/iotwireless`: Updates service API and documentation - `service/marketplace-catalog`: Updates service API and documentation - `service/sagemaker`: Updates service API and documentation - This release adds support for custom images for the CodeEditor App on SageMaker Studio ### [`v1.51.10`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v15110-2024-03-28) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.51.9...v1.51.10) \=== ##### Service Client Updates - `service/compute-optimizer`: Updates service API and documentation - `service/ec2`: Updates service API - Amazon EC2 C7gd, M7gd and R7gd metal instances with up to 3.8 TB of local NVMe-based SSD block-level storage have up to 45% improved real-time NVMe storage performance than comparable Graviton2-based instances. - `service/eks`: Updates service API - `service/guardduty`: Updates service API and documentation - Add EC2 support for GuardDuty Runtime Monitoring auto management. - `service/oam`: Updates service API - `service/quicksight`: Updates service API and documentation - Amazon QuickSight: Adds support for setting up VPC Endpoint restrictions for accessing QuickSight Website. ### [`v1.51.9`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1519-2024-03-27) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.51.8...v1.51.9) \=== ##### Service Client Updates - `service/batch`: Updates service API and documentation - This feature allows AWS Batch to support configuration of imagePullSecrets and allowPrivilegeEscalation for jobs running on EKS - `service/bedrock-agent`: Updates service API and documentation - `service/bedrock-agent-runtime`: Updates service API and documentation - `service/elasticache`: Updates service API and documentation - Added minimum capacity to Amazon ElastiCache Serverless. This feature allows customer to ensure minimum capacity even without current load - `service/secretsmanager`: Updates service documentation - Documentation updates for Secrets Manager ### [`v1.51.8`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1518-2024-03-26) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.51.7...v1.51.8) \=== ##### Service Client Updates - `service/bedrock-agent-runtime`: Updates service API and documentation - `service/ce`: Updates service API, documentation, and paginators - `service/ec2`: Updates service API and documentation - Documentation updates for Elastic Compute Cloud (EC2). - `service/ecs`: Updates service documentation - This is a documentation update for Amazon ECS. - `service/finspace`: Updates service API and documentation ### [`v1.51.7`](https://togithub.com/aws/aws-sdk-go/blob/HEAD/CHANGELOG.md#Release-v1517-2024-03-25) [Compare Source](https://togithub.com/aws/aws-sdk-go/compare/v1.51.6...v1.51.7) \=== ##### Service Client Updates - `service/codebuild`: Updates service API and documentation - Supporting GitLab and GitLab Self Managed as source types in AWS CodeBuild. - `service/ec2`: Updates service API and documentation - Added support for ModifyInstanceMetadataDefaults and GetInstanceMetadataDefaults to set Instance Metadata Service account defaults - `service/ecs`: Updates service documentation - Documentation only update for Amazon ECS. - `service/emr-containers`: Updates service API - `service/globalaccelerator`: Updates service API and documentation - `service/medialive`: Updates service API and documentation - Exposing TileMedia H265 options - `service/sagemaker`: Updates service API - Introduced support for the following new instance types on SageMaker Studio for JupyterLab and CodeEditor applications: m6i, m6id, m7i, c6i, c6id, c7i, r6i, r6id, r7i, and p5 </details> <details> <summary>cenkalti/backoff (github.com/cenkalti/backoff/v4)</summary> ### [`v4.3.0`](https://togithub.com/cenkalti/backoff/compare/v4.2.1...v4.3.0) [Compare Source](https://togithub.com/cenkalti/backoff/compare/v4.2.1...v4.3.0) </details> <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.12.0`](https://togithub.com/go-git/go-git/releases/tag/v5.12.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.11.0...v5.12.0) #### What's Changed - git: Worktree.AddWithOptions: add skipStatus option when providing a specific path by [@​moranCohen26](https://togithub.com/moranCohen26) in [go-git/go-git#994 - git: Signer: fix usage of crypto.Signer interface by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#1029 - git: Remote, fetch, adds the prune option. by [@​juliens](https://togithub.com/juliens) in [go-git/go-git#366 - git: Add crypto.Signer option to CommitOptions. by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#996 - git: Worktree checkout tag hash id ([#​959](https://togithub.com/go-git/go-git/issues/959)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [go-git/go-git#966 - git: Worktree, Don't panic on empty or root path when checking if it is valid by [@​tim775](https://togithub.com/tim775) in [go-git/go-git#1042 - git: Add commit validation for Reset by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1048 - git: worktree_commit, Fix amend commit to apply changes. Fixes [#​1024](https://togithub.com/go-git/go-git/issues/1024) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1045 - git: Implement Merge function with initial `FastForwardMerge` support by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1044 - plumbing: object, Make first commit visible on logs filtered with filename. Fixes [#​191](https://togithub.com/go-git/go-git/issues/191) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1036 - plumbing: no panic in printStats function. Fixes [#​177](https://togithub.com/go-git/go-git/issues/177) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#971 - plumbing: object, Optimize logging with file. by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1046 - plumbing: object, check legitimacy in (\*Tree).Encode by [@​niukuo](https://togithub.com/niukuo) in [go-git/go-git#967 - plumbing: format/gitattributes, close file in ReadAttributesFile by [@​prskr](https://togithub.com/prskr) in [go-git/go-git#1018 - plumbing: check setAuth error. Fixes [#​185](https://togithub.com/go-git/go-git/issues/185) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#969 - plumbing: object, fix variable defaultUtf8CommitMessageEncoding name spell error by [@​Jerry-yz](https://togithub.com/Jerry-yz) in [go-git/go-git#987 - utils: merkletrie, calculate filesystem node's hash lazily. by [@​candid82](https://togithub.com/candid82) in [go-git/go-git#825 - utils: update comment in node.go's Hash() by [@​codablock](https://togithub.com/codablock) in [go-git/go-git#992 - \_example: fix 404 link and added ssh-agent clone link by [@​grinish21](https://togithub.com/grinish21) in [go-git/go-git#1022 - \_example: checkout-branch example by [@​dlambda](https://togithub.com/dlambda) in [go-git/go-git#446 - \_example: example for git clone using ssh-agent by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#998 #### New Contributors - [@​candid82](https://togithub.com/candid82) made their first contribution in [go-git/go-git#825 - [@​codablock](https://togithub.com/codablock) made their first contribution in [go-git/go-git#992 - [@​Jerry-yz](https://togithub.com/Jerry-yz) made their first contribution in [go-git/go-git#987 - [@​wlynch](https://togithub.com/wlynch) made their first contribution in [go-git/go-git#996 - [@​moranCohen26](https://togithub.com/moranCohen26) made their first contribution in [go-git/go-git#994 - [@​grinish21](https://togithub.com/grinish21) made their first contribution in [go-git/go-git#1022 - [@​prskr](https://togithub.com/prskr) made their first contribution in [go-git/go-git#1018 - [@​dlambda](https://togithub.com/dlambda) made their first contribution in [go-git/go-git#446 - [@​juliens](https://togithub.com/juliens) made their first contribution in [go-git/go-git#366 - [@​onee-only](https://togithub.com/onee-only) made their first contribution in [go-git/go-git#1036 - [@​tim775](https://togithub.com/tim775) made their first contribution in [go-git/go-git#1042 - [@​niukuo](https://togithub.com/niukuo) made their first contribution in [go-git/go-git#967 - [@​avoidalone](https://togithub.com/avoidalone) made their first contribution in [go-git/go-git#1047 **Full Changelog**: go-git/go-git@v5.11.0...v5.12.0 </details> <details> <summary>go-sql-driver/mysql (github.com/go-sql-driver/mysql)</summary> ### [`v1.8.1`](https://togithub.com/go-sql-driver/mysql/releases/tag/v1.8.1) [Compare Source](https://togithub.com/go-sql-driver/mysql/compare/v1.8.0...v1.8.1) #### What's Changed Bugfixes: - fix race condition when context is canceled in [#​1562](https://togithub.com/go-sql-driver/mysql/pull/1562) and [#​1570](https://togithub.com/go-sql-driver/mysql/pull/1570) **Full Changelog**: go-sql-driver/mysql@v1.8.0...v1.8.1 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/cerbos/cerbos). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Signed-off-by: Oğuzhan Durgun <oguzhandurgun95@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | `v5.11.0` -> `v5.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.12.0`](https://togithub.com/go-git/go-git/releases/tag/v5.12.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.11.0...v5.12.0) #### What's Changed - git: Worktree.AddWithOptions: add skipStatus option when providing a specific path by [@​moranCohen26](https://togithub.com/moranCohen26) in [go-git/go-git#994 - git: Signer: fix usage of crypto.Signer interface by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#1029 - git: Remote, fetch, adds the prune option. by [@​juliens](https://togithub.com/juliens) in [go-git/go-git#366 - git: Add crypto.Signer option to CommitOptions. by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#996 - git: Worktree checkout tag hash id ([#​959](https://togithub.com/go-git/go-git/issues/959)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [go-git/go-git#966 - git: Worktree, Don't panic on empty or root path when checking if it is valid by [@​tim775](https://togithub.com/tim775) in [go-git/go-git#1042 - git: Add commit validation for Reset by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1048 - git: worktree_commit, Fix amend commit to apply changes. Fixes [#​1024](https://togithub.com/go-git/go-git/issues/1024) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1045 - git: Implement Merge function with initial `FastForwardMerge` support by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1044 - plumbing: object, Make first commit visible on logs filtered with filename. Fixes [#​191](https://togithub.com/go-git/go-git/issues/191) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1036 - plumbing: no panic in printStats function. Fixes [#​177](https://togithub.com/go-git/go-git/issues/177) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#971 - plumbing: object, Optimize logging with file. by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1046 - plumbing: object, check legitimacy in (\*Tree).Encode by [@​niukuo](https://togithub.com/niukuo) in [go-git/go-git#967 - plumbing: format/gitattributes, close file in ReadAttributesFile by [@​prskr](https://togithub.com/prskr) in [go-git/go-git#1018 - plumbing: check setAuth error. Fixes [#​185](https://togithub.com/go-git/go-git/issues/185) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#969 - plumbing: object, fix variable defaultUtf8CommitMessageEncoding name spell error by [@​Jerry-yz](https://togithub.com/Jerry-yz) in [go-git/go-git#987 - utils: merkletrie, calculate filesystem node's hash lazily. by [@​candid82](https://togithub.com/candid82) in [go-git/go-git#825 - utils: update comment in node.go's Hash() by [@​codablock](https://togithub.com/codablock) in [go-git/go-git#992 - \_example: fix 404 link and added ssh-agent clone link by [@​grinish21](https://togithub.com/grinish21) in [go-git/go-git#1022 - \_example: checkout-branch example by [@​dlambda](https://togithub.com/dlambda) in [go-git/go-git#446 - \_example: example for git clone using ssh-agent by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#998 #### New Contributors - [@​candid82](https://togithub.com/candid82) made their first contribution in [go-git/go-git#825 - [@​codablock](https://togithub.com/codablock) made their first contribution in [go-git/go-git#992 - [@​Jerry-yz](https://togithub.com/Jerry-yz) made their first contribution in [go-git/go-git#987 - [@​wlynch](https://togithub.com/wlynch) made their first contribution in [go-git/go-git#996 - [@​moranCohen26](https://togithub.com/moranCohen26) made their first contribution in [go-git/go-git#994 - [@​grinish21](https://togithub.com/grinish21) made their first contribution in [go-git/go-git#1022 - [@​prskr](https://togithub.com/prskr) made their first contribution in [go-git/go-git#1018 - [@​dlambda](https://togithub.com/dlambda) made their first contribution in [go-git/go-git#446 - [@​juliens](https://togithub.com/juliens) made their first contribution in [go-git/go-git#366 - [@​onee-only](https://togithub.com/onee-only) made their first contribution in [go-git/go-git#1036 - [@​tim775](https://togithub.com/tim775) made their first contribution in [go-git/go-git#1042 - [@​niukuo](https://togithub.com/niukuo) made their first contribution in [go-git/go-git#967 - [@​avoidalone](https://togithub.com/avoidalone) made their first contribution in [go-git/go-git#1047 **Full Changelog**: go-git/go-git@v5.11.0...v5.12.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rgst-io/stencil). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---|---|---| | [deps.dev/api/v3](https://togithub.com/google/deps.dev) | require | digest | `ff53416` -> `d32937c` | | | | | | [deps.dev/util/maven](https://togithub.com/google/deps.dev) | require | digest | `ff53416` -> `d32937c` | | | | | | [deps.dev/util/resolve](https://togithub.com/google/deps.dev) | require | digest | `ff53416` -> `d32937c` | | | | | | [deps.dev/util/semver](https://togithub.com/google/deps.dev) | require | digest | `ff53416` -> `d32937c` | | | | | | [github.com/gkampitakis/go-snaps](https://togithub.com/gkampitakis/go-snaps) | require | patch | `v0.5.2` -> `v0.5.3` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgkampitakis%2fgo-snaps/v0.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgkampitakis%2fgo-snaps/v0.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgkampitakis%2fgo-snaps/v0.5.2/v0.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgkampitakis%2fgo-snaps/v0.5.2/v0.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | require | minor | `v5.11.0` -> `v5.12.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgo-git%2fgo-git%2fv5/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-git%2fgo-git%2fv5/v5.11.0/v5.12.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [github.com/jedib0t/go-pretty/v6](https://togithub.com/jedib0t/go-pretty) | require | patch | `v6.5.6` -> `v6.5.8` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fjedib0t%2fgo-pretty%2fv6/v6.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fjedib0t%2fgo-pretty%2fv6/v6.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fjedib0t%2fgo-pretty%2fv6/v6.5.6/v6.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fjedib0t%2fgo-pretty%2fv6/v6.5.6/v6.5.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | golang.org/x/exp | require | digest | `a685a6e` -> `93d18d7` | | | | | | golang.org/x/mod | require | minor | `v0.16.0` -> `v0.17.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.16.0/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.16.0/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | golang.org/x/sync | require | minor | `v0.6.0` -> `v0.7.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsync/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsync/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsync/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsync/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | golang.org/x/term | require | minor | `v0.18.0` -> `v0.19.0` | [![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fterm/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fterm/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fterm/v0.18.0/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fterm/v0.18.0/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require | minor | `v1.62.1` -> `v1.63.2` | [![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.63.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.63.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.62.1/v1.63.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.62.1/v1.63.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>gkampitakis/go-snaps (github.com/gkampitakis/go-snaps)</summary> ### [`v0.5.3`](https://togithub.com/gkampitakis/go-snaps/releases/tag/v0.5.3) [Compare Source](https://togithub.com/gkampitakis/go-snaps/compare/v0.5.2...v0.5.3) #### What's Changed - fix: race condition when updating snapshots in parallel by [@​gkampitakis](https://togithub.com/gkampitakis) in [gkampitakis/go-snaps#97 **Full Changelog**: gkampitakis/go-snaps@v0.5.2...v0.5.3 </details> <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.12.0`](https://togithub.com/go-git/go-git/releases/tag/v5.12.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.11.0...v5.12.0) #### What's Changed - git: Worktree.AddWithOptions: add skipStatus option when providing a specific path by [@​moranCohen26](https://togithub.com/moranCohen26) in [go-git/go-git#994 - git: Signer: fix usage of crypto.Signer interface by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#1029 - git: Remote, fetch, adds the prune option. by [@​juliens](https://togithub.com/juliens) in [go-git/go-git#366 - git: Add crypto.Signer option to CommitOptions. by [@​wlynch](https://togithub.com/wlynch) in [go-git/go-git#996 - git: Worktree checkout tag hash id ([#​959](https://togithub.com/go-git/go-git/issues/959)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [go-git/go-git#966 - git: Worktree, Don't panic on empty or root path when checking if it is valid by [@​tim775](https://togithub.com/tim775) in [go-git/go-git#1042 - git: Add commit validation for Reset by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1048 - git: worktree_commit, Fix amend commit to apply changes. Fixes [#​1024](https://togithub.com/go-git/go-git/issues/1024) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1045 - git: Implement Merge function with initial `FastForwardMerge` support by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#1044 - plumbing: object, Make first commit visible on logs filtered with filename. Fixes [#​191](https://togithub.com/go-git/go-git/issues/191) by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1036 - plumbing: no panic in printStats function. Fixes [#​177](https://togithub.com/go-git/go-git/issues/177) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#971 - plumbing: object, Optimize logging with file. by [@​onee-only](https://togithub.com/onee-only) in [go-git/go-git#1046 - plumbing: object, check legitimacy in (\*Tree).Encode by [@​niukuo](https://togithub.com/niukuo) in [go-git/go-git#967 - plumbing: format/gitattributes, close file in ReadAttributesFile by [@​prskr](https://togithub.com/prskr) in [go-git/go-git#1018 - plumbing: check setAuth error. Fixes [#​185](https://togithub.com/go-git/go-git/issues/185) by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [go-git/go-git#969 - plumbing: object, fix variable defaultUtf8CommitMessageEncoding name spell error by [@​Jerry-yz](https://togithub.com/Jerry-yz) in [go-git/go-git#987 - utils: merkletrie, calculate filesystem node's hash lazily. by [@​candid82](https://togithub.com/candid82) in [go-git/go-git#825 - utils: update comment in node.go's Hash() by [@​codablock](https://togithub.com/codablock) in [go-git/go-git#992 - \_example: fix 404 link and added ssh-agent clone link by [@​grinish21](https://togithub.com/grinish21) in [go-git/go-git#1022 - \_example: checkout-branch example by [@​dlambda](https://togithub.com/dlambda) in [go-git/go-git#446 - \_example: example for git clone using ssh-agent by [@​pjbgf](https://togithub.com/pjbgf) in [go-git/go-git#998 #### New Contributors - [@​candid82](https://togithub.com/candid82) made their first contribution in [go-git/go-git#825 - [@​codablock](https://togithub.com/codablock) made their first contribution in [go-git/go-git#992 - [@​Jerry-yz](https://togithub.com/Jerry-yz) made their first contribution in [go-git/go-git#987 - [@​wlynch](https://togithub.com/wlynch) made their first contribution in [go-git/go-git#996 - [@​moranCohen26](https://togithub.com/moranCohen26) made their first contribution in [go-git/go-git#994 - [@​grinish21](https://togithub.com/grinish21) made their first contribution in [go-git/go-git#1022 - [@​prskr](https://togithub.com/prskr) made their first contribution in [go-git/go-git#1018 - [@​dlambda](https://togithub.com/dlambda) made their first contribution in [go-git/go-git#446 - [@​juliens](https://togithub.com/juliens) made their first contribution in [go-git/go-git#366 - [@​onee-only](https://togithub.com/onee-only) made their first contribution in [go-git/go-git#1036 - [@​tim775](https://togithub.com/tim775) made their first contribution in [go-git/go-git#1042 - [@​niukuo](https://togithub.com/niukuo) made their first contribution in [go-git/go-git#967 - [@​avoidalone](https://togithub.com/avoidalone) made their first contribution in [go-git/go-git#1047 **Full Changelog**: go-git/go-git@v5.11.0...v5.12.0 </details> <details> <summary>jedib0t/go-pretty (github.com/jedib0t/go-pretty/v6)</summary> ### [`v6.5.8`](https://togithub.com/jedib0t/go-pretty/releases/tag/v6.5.8) [Compare Source](https://togithub.com/jedib0t/go-pretty/compare/v6.5.7...v6.5.8) #### What's Changed - table: paging should work with auto-merge; fixes [#​315](https://togithub.com/jedib0t/go-pretty/issues/315) by [@​jedib0t](https://togithub.com/jedib0t) in [jedib0t/go-pretty#317 **Full Changelog**: jedib0t/go-pretty@v6.5.7...v6.5.8 ### [`v6.5.7`](https://togithub.com/jedib0t/go-pretty/releases/tag/v6.5.7) [Compare Source](https://togithub.com/jedib0t/go-pretty/compare/v6.5.6...v6.5.7) #### What's Changed - table: fix paging with separators; fixes [#​312](https://togithub.com/jedib0t/go-pretty/issues/312) by [@​jedib0t](https://togithub.com/jedib0t) in [jedib0t/go-pretty#313 **Full Changelog**: jedib0t/go-pretty@v6.5.6...v6.5.7 </details> <details> <summary>grpc/grpc-go (google.golang.org/grpc)</summary> ### [`v1.63.2`](https://togithub.com/grpc/grpc-go/releases/tag/v1.63.2): Release 1.63.2 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.63.1...v1.63.2) ### Bugs - Fix the user agent string ### [`v1.63.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.63.1): Release 1.63.1 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.63.0...v1.63.1) - grpc: un-deprecate Dial and DialContext and cherry-pick ### [`v1.63.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.63.0): Release 1.63.0 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.62.2...v1.63.0) ### Behavior Changes - grpc: Return canonical target string from `resolver.Address.String()` (experimental) ([#​6923](https://togithub.com/grpc/grpc-go/issues/6923)) - client & server: when using write buffer pooling, use input value for buffer size instead of size\*2 ([#​6983](https://togithub.com/grpc/grpc-go/issues/6983)) - Special Thanks: [@​raghav-stripe](https://togithub.com/raghav-stripe) ### New Features - grpc: add `ClientConn.CanonicalTarget()` to return the canonical target string. ([#​7006](https://togithub.com/grpc/grpc-go/issues/7006)) - xds: implement LRS named metrics support ([gRFC A64](https://togithub.com/grpc/proposal/blob/master/A64-lrs-custom-metrics.md)) ([#​7027](https://togithub.com/grpc/grpc-go/issues/7027)) - Special Thanks: [@​danielzhaotongliu](https://togithub.com/danielzhaotongliu) - grpc: introduce `grpc.NewClient` to allow users to create new clients in idle mode and with "dns" as the default resolver ([#​7010](https://togithub.com/grpc/grpc-go/issues/7010)) - Special Thanks: [@​bruuuuuuuce](https://togithub.com/bruuuuuuuce) ### API Changes - grpc: stabilize experimental method `ClientConn.Target()` ([#​7006](https://togithub.com/grpc/grpc-go/issues/7006)) ### Bug Fixes - xds: fix an issue that would cause the client to send an empty list of resources for LDS/CDS upon reconnecting with the management server ([#​7026](https://togithub.com/grpc/grpc-go/issues/7026)) - server: Fix some errors returned by a server when using a `grpc.Server` as an `http.Handler` with the Go stdlib HTTP server ([#​6989](https://togithub.com/grpc/grpc-go/issues/6989)) - resolver/dns: add `SetResolvingTimeout` to allow configuring the DNS resolver's global timeout ([#​6917](https://togithub.com/grpc/grpc-go/issues/6917)) - Special Thanks: [@​and1truong](https://togithub.com/and1truong) - Set the security level of Windows named pipes to NoSecurity ([#​6956](https://togithub.com/grpc/grpc-go/issues/6956)) - Special Thanks: [@​irsl](https://togithub.com/irsl) ### [`v1.62.2`](https://togithub.com/grpc/grpc-go/releases/tag/v1.62.2): Release 1.62.2 [Compare Source](https://togithub.com/grpc/grpc-go/compare/v1.62.1...v1.62.2) ### Dependencies - Update http2 library to address vulnerability [CVE-2023-45288](https://www.kb.cert.org/vuls/id/421644) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 6am on monday" in timezone Australia/Sydney, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/google/osv-scanner). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
The main motivation behind this change is to speed up status operation. Currently it's very slow, especially for repositories with lots of ignored files (e.g. node.js repository with node_modules directory). One of the reasons for this slowness is the fact that traversing filesystem involves calculating file hashes for all files, even if those hashes are not needed in the end because the files are in gitignore.
On my machine, for a random repository with sizable (ignored) node_modules directory this changes bring the execution time for Worktree.Status from ~3.5s to ~1.4s. This is still very slow, but a significant improvement.
A better fix (instead of or in addition to this one) would be to avoid traversing ignored files in the first place. However, such change seem to be more intrusive and will require much deeper understanding of the codebase.