summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2024-06-01Make parseDiff a non-member function so that we can test it more easilyStefan Haller
2024-06-01Rename deletedLineInfo to hunkStefan Haller
We'll use it with a more general meaning later in this branch.
2024-06-01Add user config `gui.expandedSidePanelWeight` (#3623)Stefan Haller
- **PR Description** Add a user config `gui.expandedSidePanelWeight` which lets you change the default weight of 2 that gets assigned to the expanded side panel if `expandFocusedSidePanel` is true. Closes #3621. - **Please check if the PR fulfills these requirements** * [x] Cheatsheets are up-to-date (run `go generate ./...`) * [x] Code has been formatted (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#code-formatting)) * [x] Tests have been added/updated (see [here](https://github.com/jesseduffield/lazygit/blob/master/pkg/integration/README.md) for the integration test guide) * [ ] Text is internationalised (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#internationalisation)) * [x] Docs have been updated if necessary * [x] You've read through your own file changes for silly mistakes etc
2024-06-01Add user config `expandedSidePanelWeight`Stefan Haller
2024-06-01Add test for ExpandFocusedSidePanel configStefan Haller
2024-06-01Fix pushing to branch when upstream not stored locally (#3619)Stefan Haller
- **PR Description** This fixes three different problems; two were recent regressions, one has never worked. 1. For branches whose remote is not stored locally, don't ask to force push right away. Try a normal push first. This broke with #3528. 2. For branches whose remote is not stored locally (but only for those), if the server rejects the update, ask to force push. This broke with #3387. 3. When force-pushing a branch whose remote is not stored locally, use `--force` instead of `--force-with-lease`; otherwise the push would always fail with a "stale info" error. This has never worked. Fixes #3588.
2024-06-01Add integration test for pushing when the remote is not stored locallyStefan Haller
The test needs all three fixes from this branch to succeed.
2024-06-01Use --force instead of --force-with-lease when remote is not stored locallyStefan Haller
--force-with-lease simply doesn't work in this case, it will always return a "stale info" error.
2024-06-01Rename Force to ForceWithLeaseStefan Haller
This describes better what it is, and we're going to add the regular --force in the next commit. No change in behavior in this commit.
2024-06-01Ask to force push if server rejected the update, if remote not stored locallyStefan Haller
This broke with 81b497d186 (#3387). In that PR I claimed that we never want to ask for force-pushing if the server rejected the update, on the assumption that this can only happen because the remote tracking branch is not up to date, and users should just fetch in this case. However, I didn't realize it's even possible to have a branch whose upstream branch is not stored locally; in this case we can't tell ahead of time whether a force push is going to be necessary, so we _have_ to rely on the server response to find out. But we only want to do that in this specific case, so this is not quite an exact revert of 81b497d186.
2024-06-01Don't force-push if the remote branch is not stored locallyStefan Haller
This broke with #3528. If the remote branch is not stored locally, we only see question marks in the branch status. In this case we can't tell whether we need to force-push, so it's best to assume that we don't, and see if the server rejects the push, and react to that by asking to force push. This second part is also broken right now, we'll fix this in the next commit.
2024-05-31Fix boolean config keys not appearing in the generated Config.md (#3622)Stefan Haller
- **PR Description** All boolean config keys were missing from the generated Config.md. - **Please check if the PR fulfills these requirements** * [x] Cheatsheets are up-to-date (run `go generate ./...`) * [x] Code has been formatted (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#code-formatting)) * [ ] Tests have been added/updated (see [here](https://github.com/jesseduffield/lazygit/blob/master/pkg/integration/README.md) for the integration test guide) * [ ] Text is internationalised (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#internationalisation)) * [x] Docs have been updated if necessary * [x] You've read through your own file changes for silly mistakes etc
2024-05-31Fix boolean config keys not appearing in the generated Config.mdStefan Haller
The reason why they didn't appear is that they didn't get a default value in the generated schema; this commit fixes that.
2024-05-31Remove an outdated commentStefan Haller
Lazygit doesn't touch this, the comment is just not true. I wonder if we need the config at all, actually; I'd be in favor of removing it.
2024-05-29Improve branch and reflog loading when sorting branches by date (#3609)Stefan Haller
- **PR Description** When branches are sorted by recency we have this logic that first loads the branches so that they can be rendered quickly; in parallel, it starts loading the reflog in the background, and when that's done, it loads the branches again so that they get their recency values. This means that branches are loaded twice at startup. We don't need this logic when branches are not sorted by recency, so we can simply load branches and reflog in parallel like everything else. This shouldn't change any user observable behavior, it just avoids doing unnecessary work at startup.
2024-05-29Refresh branches and reflog independently when sorting branches by dateStefan Haller
When branches are sorted by recency we have this logic that first loads the branches so that they can be rendered quickly; in parallel, it starts loading the reflog in the background, and when that's done, it loads the branches again so that they get their recency values. This means that branches are loaded twice at startup. We don't need this logic when branches are not sorted by recency, so we can simply load branches and reflog in parallel like everything else. This shouldn't change any user observable behavior, it just avoids doing unnecessary work at startup.
2024-05-29Fix out-of-date commentStefan Haller
The behavior described in the comment is no longer what we do, it was changed in ae66f720f5; we now always reuse the state.
2024-05-29Pin golangci version to 1.58 (#3611)Stefan Haller
Pin golangci version to 1.58. It is annoying when CI builds suddenly start to fail because the linter was updated and finds new things to complain about. Updating the linter and fixing the code accordingly should be a dedicated activity.
2024-05-29Pin golangci version to 1.58Stefan Haller
It is annoying when CI builds suddenly start to fail because the linter was updated and finds new things to complain about. Updating the linter and fixing the code accordingly should be a dedicated activity.
2024-05-27Fix tooltip for fixup command (#3601)Stefan Haller
### PR Description - Fix calculation of tooltip height; for tooltips that are just one or two characters longer than the available width, the last word would be cut off. On my screen this happened for the tooltip for the fixup command. - Fix tooltip of fixup command. Fixes #3600.
2024-05-26Fix tooltip of fixup commandfix-tooltip-for-fixupStefan Haller
2024-05-26Fix calculation of tooltip heightStefan Haller
For tooltips that are just one or two characters longer than the available width, the last word would be cut off. On my screen this happened for the tooltip for the fixup command.
2024-05-26Update readmeJesse Duffield
2024-05-24Delete the TODO comment about enabling `goconst` in the future from ↵Stefan Haller
`.golangci.yml` (#3596) ## Context: https://github.com/jesseduffield/lazygit/pull/3592#issuecomment-2129535231
2024-05-24Delete the TODO comment about enabling `goconst` in the future from ↵kyu08
`.golangci.yml`
2024-05-24Add `lint` to make target (#3593)Stefan Haller
I feel this is necessary when I worked on https://github.com/jesseduffield/lazygit/pull/3592.
2024-05-24Add `lint` to make targetkyu08
2024-05-24Add `copyloopvar` to enabled linters (#3586)Stefan Haller
Resolves #3573 It looks like the update to go1.22 is done by https://github.com/jesseduffield/lazygit/pull/3574. So it should be OK to close #3573 when this PR is merged. ## PR Description Add [`copyloopvar`](https://github.com/karamaru-alpha/copyloopvar) to enabled linters to detect unnecessary assignments in `for` loops. ## Context @jesseduffield and I were talking about necessity of this linter here. https://github.com/jesseduffield/lazygit/issues/3573#issuecomment-2123732829
2024-05-22Add `copyloopvar` to enabled linterskyu08
2024-05-20Add property outputTitle to CustomCommand (#3579)Stefan Haller
- **PR Description** Add property `outputTitle` to CustomCommand. It can optionally be used to set the title of the panel that shows the output of a command (when `showOutput` is true). If left unset, the command string is used as the title. Closes #3576.
2024-05-20Add property outputTitle to CustomCommandStefan Haller
It can optionally be used to set the title of the panel that shows the output of a command (when showOutput is true). If left unset, the command string is used as the title.
2024-05-20Focus on local commits view after moving code into new commit (#3577)Stefan Haller
- **PR Description** This PR forces lazygit to focus to the `Commits` view after moving a custom (partial) patch in a new commit. This closes #3200.
2024-05-20feat: focus on local commits view after moving code into new commitAzraelSec
2024-05-20Remove hint about Config.md from PR template (#3578)Stefan Haller
It used to be a common thing to have to update `Config.md` in a PR (and we often forgot despite the template). As of #3565 this is no longer necessary, so remove this from the template. Updating docs in general is still a good thing to think about, so we leave this in.
2024-05-20Remove hint about Config.md from PR templateStefan Haller
It used to be a common thing to have to update Config.md in a PR (and we often forgot despite the template). As of #3565 this is no longer necessary, so remove this from the template. Updating docs in general is still a good thing to think about, so we leave this in.
2024-05-20Update README.mdJesse Duffield
Updated the company sponsors with the new name of my company
2024-05-19Add default lazygit config generation in Config.md from JSON schema (#3565)Stefan Haller
- **PR Description** This uses the JSON schema generated in https://github.com/jesseduffield/lazygit/pull/3039 to generate and replace the default lazygit config in Config.md when running `go generate ./...` Relevant issue: https://github.com/jesseduffield/lazygit/issues/3441 The generated config contains all the entries that have default values set in `user_config.go`
2024-05-19Make Keybindings definition in UserConfig struct lastKarim Khaleel
This makes the generated default config in Config.md match the original order.
2024-05-19Add default lazygit config generator for Config.md from JSON schemaKarim Khaleel
2024-05-19Set default value for WindowSize config to pass validationKarim Khaleel
2024-05-19Remove unnecesary schema validations in user configKarim Khaleel
2024-05-19Correctly request force-pushing in a triangular workflow (#3528)v0.42.0Stefan Haller
- **PR Description** Some people push to a different branch (or even remote) than they pull from. One example is described in #3437. Our logic of when to request a force push is not appropriate for these workflows: we check the configured upstream branch for divergence, but that's the one you pull from. We should instead check the push-to branch for divergence. Fixes #3437.
2024-05-19Correctly request force-pushing in triangular workflowsStefan Haller
To determine whether we need to ask for force pushing, we need to query the push branch rather than the upstream branch, in case they are not the same.
2024-05-19Add ahead/behind information for @{push}Stefan Haller
In a triangular workflow the branch that you're pulling from is not the same as the one that you are pushing to. For example, some people find it useful to set the upstream branch to origin/master so that pulling effectively rebases onto master, and set the push.default git config to "current" so that "feature" pushes to origin/feature. Another example is a fork-based workflow where "feature" has upstream set to upstream/main, and the repo has remote.pushDefault set to "origin", so pushing on "feature" pushes to origin/feature. This commit adds new fields to models.Branch that store the ahead/behind information against the push branch; for the "normal" workflow where you pull and push from/to the upstream branch, AheadForPush/BehindForPush will be the same as AheadForPull/BehindForPull.
2024-05-19Rename Pushables/Pullables to AheadForPull/BehindForPullStefan Haller
In preparation for adding AheadForPush/BehindForPush in the next commit.
2024-05-19Add test demonstrating the problem with force-pushing in a triangular workflowStefan Haller
Our code doesn't realize that we need to prompt the user to force push, when the branch is up-to-date with its upstream but not with the branch that we're pushing to.
2024-05-19Rename PushBranch to PushBranchAndSetUpstreamStefan Haller
It is unexpected that a function called PushBranch also sets the upstream branch; also, we want to add a PushBranch function in the next commit that doesn't.
2024-05-19Create shims for all model classes in SessionStateLoaderStefan Haller
This guards against accidentally renaming a model field and thereby breaking user's custom commands. With this change we'll get a build failure when we do that.
2024-05-19Bump go version to 1.22 (#3574)Jesse Duffield
- **PR Description** Bumps go from 1.21 to 1.22, and removes newly redundant loop variable re-declarations now that in 1.22 the variables are automatically redeclared in each iteration for us. - **Please check if the PR fulfills these requirements** * [ ] Cheatsheets are up-to-date (run `go generate ./...`) * [ ] Code has been formatted (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#code-formatting)) * [ ] Tests have been added/updated (see [here](https://github.com/jesseduffield/lazygit/blob/master/pkg/integration/README.md) for the integration test guide) * [ ] Text is internationalised (see [here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#internationalisation)) * [ ] Docs (specifically `docs/Config.md`) have been updated if necessary * [ ] You've read through your own file changes for silly mistakes etc <!-- Be sure to name your PR with an imperative e.g. 'Add worktrees view' see https://github.com/jesseduffield/lazygit/releases/tag/v0.40.0 for examples -->
2024-05-19Remove redundant variable dedeclarationsJesse Duffield
In go 1.22, loop variables are redeclared with each iteration of the loop, rather than simple updated on each iteration. This means that we no longer need to manually redeclare variables when they're closed over by a function.