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

Skip post-checkout hook when discarding changes #4313

Merged

Conversation

stefanhaller
Copy link
Collaborator

@stefanhaller stefanhaller commented Feb 23, 2025

  • PR Description

Some people have post-checkout hooks that take a lot of time, which makes discarding changes slow. You can argue that a post-checkout hook should only run when you switch branches, so it doesnt't have to run when checking out single files or directories. You can also argue that lazygit might have implemented discarding changes by taking the current patch and applying it in reverse, which wouldn't have run a post-checkout hook either.

So disable them for all cases where we use git checkout with a path; this includes checking out a file from the commit files view.

Fixes #4272.

  • Please check if the PR fulfills these requirements
  • Cheatsheets are up-to-date (run go generate ./...)
  • Code has been formatted (see here)
  • Tests have been added/updated (see here for the integration test guide)
  • Text is internationalised (see here)
  • If a new UserConfig entry was added, make sure it can be hot-reloaded (see here)
  • Docs have been updated if necessary
  • You've read through your own file changes for silly mistakes etc

Copy link

codacy-production bot commented Feb 23, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
Report missing for 56695071 100.00%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (5669507) Report Missing Report Missing Report Missing
Head commit (9642782) 53091 45981 86.61%

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#4313) 8 8 100.00%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more

Footnotes

  1. Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.

@adilJamshad
Copy link

I have tested it for my repos and it snappy now. Thank you

Copy link
Owner

@jesseduffield jesseduffield left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Some people have post-checkout hooks that take a lot of time, which makes
discarding changes slow. You can argue that a post-checkout hook should only run
when you switch branches, so it doesnt't have to run when checking out single
files or directories. You can also argue that lazygit might have implemented
discarding changes by taking the current patch and applying it in reverse, which
wouldn't have run a post-checkout hook either.

So disable them for all cases where we use git checkout with a path; this
includes checking out a file from the commit files view.
@stefanhaller stefanhaller force-pushed the skip-post-checkout-hook-when-discarding-file-changes branch from 911302b to 9642782 Compare February 25, 2025 10:39
@stefanhaller stefanhaller merged commit 17ab91e into master Feb 25, 2025
15 checks passed
@stefanhaller stefanhaller deleted the skip-post-checkout-hook-when-discarding-file-changes branch February 25, 2025 10:42
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 26, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [jesseduffield/lazygit](https://github.com/jesseduffield/lazygit) | patch | `v0.47.1` -> `v0.47.2` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>jesseduffield/lazygit (jesseduffield/lazygit)</summary>

### [`v0.47.2`](https://github.com/jesseduffield/lazygit/releases/tag/v0.47.2)

[Compare Source](jesseduffield/lazygit@v0.47.1...v0.47.2)

<!-- Release notes generated using configuration in .github/release.yml at v0.47.2 -->

Small patch release for you all. This is mainly to fix an issue with v0.47.1 which erroneously re-indented users' lazygit config files on startup.

Shout-out to [@&#8203;karimkhaleel](https://github.com/karimkhaleel) for his MR with some gnarly yaml-handling code.

And a special shout-out to [@&#8203;ChrisMcD1](https://github.com/ChrisMcD1) who has been pumping out many great contributions lately. Great to have you aboard.

#### What's Changed

##### Enhancements 🔥

-   Skip post-checkout hook when discarding changes by [@&#8203;stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4313

##### Fixes 🔧

-   fix: Disable global keybinds when confirmation is active by [@&#8203;ChrisMcD1](https://github.com/ChrisMcD1) in jesseduffield/lazygit#4284
-   Don't rewrite config file unnecessarily when it contains commitPrefixes by [@&#8203;ChrisMcD1](https://github.com/ChrisMcD1) in jesseduffield/lazygit#4311
-   Change side panel width calculation to work for larger numbers by [@&#8203;ChrisMcD1](https://github.com/ChrisMcD1) in jesseduffield/lazygit#4287

##### Maintenance ⚙️

-   Fix auto-release schedule by [@&#8203;jesseduffield](https://github.com/jesseduffield) in jesseduffield/lazygit#4308
-   Use indentation of 2 when rewriting auto-migrated config file by [@&#8203;stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4312
-   Use refs in jsonschema by [@&#8203;karimkhaleel](https://github.com/karimkhaleel) in jesseduffield/lazygit#4309
-   Improve release workflow by [@&#8203;jesseduffield](https://github.com/jesseduffield) in jesseduffield/lazygit#4307
-   Filter out dev comments from schema by [@&#8203;stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4319
-   Fix release script by [@&#8203;jesseduffield](https://github.com/jesseduffield) in jesseduffield/lazygit#4322
-   Fix release script once again by [@&#8203;jesseduffield](https://github.com/jesseduffield) in jesseduffield/lazygit#4323

##### Docs 📖

-   Improve the error message when users have gpg signing turned on by [@&#8203;stefanhaller](https://github.com/stefanhaller) in jesseduffield/lazygit#4296

**Full Changelog**: jesseduffield/lazygit@v0.47.1...v0.47.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODAuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE4MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Can the discard functionality use other than git checkout?
3 participants