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

When bisecting, always mark the current commit as good/bad, not the selected #2837

Merged
merged 1 commit into from
Jul 29, 2023

Conversation

stefanhaller
Copy link
Collaborator

For marking as good or bad, the current commit is pretty much always the one you want to mark, not the selected. It's different for skipping; sometimes you know already that a certain commit doesn't compile, for example, so you might navigate there and mark it as skipped. So in the case that the current commit is not the selected one, we now offer two separate menu entries for skipping, one for the current commit and one for the selected.

Fixes #2836.

  • Please check if the PR fulfills these requirements
  • Cheatsheets are up-to-date (run go run scripts/cheatsheet/main.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)
  • Docs (specifically docs/Config.md) have been updated if necessary
  • You've read through your own file changes for silly mistakes etc

Label: self.c.Tr.Bisect.ResetOption,
}
if info.GetCurrentSha() != "" && info.GetCurrentSha() != commit.Sha {
menuItems = append(menuItems, lo.ToPtr(types.MenuItem{
Copy link
Owner

Choose a reason for hiding this comment

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

When we're bisecting (meaning there is a 'current' commit), what are your thoughts on showing both skip options unconditionally, for the sake of muscle memory?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'd vote against it. In the vast majority of cases, the selected commit and the current commit will be the same, so it would be confusing to always see two menu entries for the same sha that only differ in their keyboard shortcut. Also (in my personal experience, at least) it's much more common to skip the current commit rather than some arbitrary different one, so most people will have s in their muscle memory and not S.

Copy link
Owner

Choose a reason for hiding this comment

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

Fair point: you've convinced me!

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

…elected

For marking as good or bad, the current commit is pretty much always the one you
want to mark, not the selected. It's different for skipping; sometimes you know
already that a certain commit doesn't compile, for example, so you might
navigate there and mark it as skipped. So in the case that the current commit is
not the selected one, we now offer two separate menu entries for skipping, one
for the current commit and one for the selected.
@stefanhaller stefanhaller force-pushed the bisect-always-mark-current-commit branch from a276b11 to 6794149 Compare July 29, 2023 12:44
@stefanhaller stefanhaller merged commit 52447e5 into master Jul 29, 2023
12 checks passed
@stefanhaller stefanhaller deleted the bisect-always-mark-current-commit branch July 29, 2023 12:56
renovate bot added a commit to scottames/dots that referenced this pull request Aug 5, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[GoogleContainerTools/skaffold](https://togithub.com/GoogleContainerTools/skaffold)
| patch | `v2.6.2` -> `v2.6.3` |
| [ajeetdsouza/zoxide](https://togithub.com/ajeetdsouza/zoxide) | patch
| `v0.9.1` -> `v0.9.2` |
| [aquaproj/aqua-registry](https://togithub.com/aquaproj/aqua-registry)
| patch | `v4.32.0` -> `v4.32.2` |
| [jesseduffield/lazygit](https://togithub.com/jesseduffield/lazygit) |
minor | `v0.39.4` -> `v0.40.0` |
| [weaveworks/eksctl](https://togithub.com/weaveworks/eksctl) | minor |
`v0.150.0` -> `v0.151.0` |

---

### Release Notes

<details>
<summary>GoogleContainerTools/skaffold
(GoogleContainerTools/skaffold)</summary>

###
[`v2.6.3`](https://togithub.com/GoogleContainerTools/skaffold/releases/tag/v2.6.3):
Release

[Compare
Source](https://togithub.com/GoogleContainerTools/skaffold/compare/v2.6.2...v2.6.3)

##### v2.6.3 Release - 2023-08-04

**Linux amd64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.3/skaffold-linux-amd64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**Linux arm64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.3/skaffold-linux-arm64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**macOS amd64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.3/skaffold-darwin-amd64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**macOS arm64**
`curl -Lo skaffold
https://storage.googleapis.com/skaffold/releases/v2.6.3/skaffold-darwin-arm64
&& chmod +x skaffold && sudo mv skaffold /usr/local/bin`

**Windows**

https://storage.googleapis.com/skaffold/releases/v2.6.3/skaffold-windows-amd64.exe

**Docker image**
`gcr.io/k8s-skaffold/skaffold:v2.6.3`

**Full Changelog**:
GoogleContainerTools/skaffold@v2.6.2...v2.6.3

</details>

<details>
<summary>ajeetdsouza/zoxide (ajeetdsouza/zoxide)</summary>

###
[`v0.9.2`](https://togithub.com/ajeetdsouza/zoxide/releases/tag/v0.9.2):
0.9.2

[Compare
Source](https://togithub.com/ajeetdsouza/zoxide/compare/v0.9.1...v0.9.2)

##### Added

-   Short option `-a` for `zoxide query --all`.

##### Fixed

-   PowerShell: use `global` scope for variables / functions.

</details>

<details>
<summary>aquaproj/aqua-registry (aquaproj/aqua-registry)</summary>

###
[`v4.32.2`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.32.2)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.32.1...v4.32.2)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.32.2)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.32.2)
| aquaproj/aqua-registry@v4.32.1...v4.32.2

##### Fixes


[#&#8203;14327](https://togithub.com/aquaproj/aqua-registry/issues/14327)
Rename kyleconroy/sqlc to sqlc-dev/sqlc as of repository migration
[@&#8203;ichizero](https://togithub.com/ichizero)

[#&#8203;14339](https://togithub.com/aquaproj/aqua-registry/issues/14339)
sqlc-dev/sqlc: Support old versions

###
[`v4.32.1`](https://togithub.com/aquaproj/aqua-registry/releases/tag/v4.32.1)

[Compare
Source](https://togithub.com/aquaproj/aqua-registry/compare/v4.32.0...v4.32.1)


[Issues](https://togithub.com/aquaproj/aqua-registry/issues?q=is%3Aissue+milestone%3Av4.32.1)
| [Pull
Requests](https://togithub.com/aquaproj/aqua-registry/pulls?q=is%3Apr+milestone%3Av4.32.1)
| aquaproj/aqua-registry@v4.32.0...v4.32.1

#### Fixes


[#&#8203;14275](https://togithub.com/aquaproj/aqua-registry/issues/14275)
[#&#8203;14276](https://togithub.com/aquaproj/aqua-registry/issues/14276)
[#&#8203;14277](https://togithub.com/aquaproj/aqua-registry/issues/14277)
[#&#8203;14278](https://togithub.com/aquaproj/aqua-registry/issues/14278)
[domoritz/arrow-tools/{csv2arrow,csv2parquet,json2arrow,json2parquet}](https://togithub.com/domoritz/arrow-tools):
Follow up changes of asset names

</details>

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

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

[Compare
Source](https://togithub.com/jesseduffield/lazygit/compare/v0.39.4...v0.40.0)

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

### 🎉  LAZYGIT FIVE YEAR ANNIVERSARY EDITION 🎉

Holy moly, has it really been 5 years since Lazygit's birth? Time flies
when you're having fun.

I've written a post celebrating the anniversary
[here](https://jesseduffield.com/Lazygit-5-Years-On).

As for this release, we've got some great features here.

##### Worktrees

We now have a worktrees view so you can easily create worktrees and
switch to them and so on. I'm not a big worktrees user myself so please
raise an issue if you can think of places to improve the UX.


![worktree_create_from_branches-compressed](https://togithub.com/jesseduffield/lazygit/assets/8456633/3ef0b085-e9d0-42de-af58-16cbae581d34)

##### Rebase --onto

Rebasing onto a marked base commit is a very useful feature that we've
been sorely lacking for a while
(demo coming soon)

##### Auto-refresh on window focus

Auto-refresh on window activation is a complete game-changer. No more
having to manually press shift+R when you come back from your editor.

##### Nuking the worktree

We also have a fun enhancement in this release: showing an explosion
animation when you nuke the working tree.


![nuke-gif](https://togithub.com/jesseduffield/lazygit/assets/8456633/32b3f91c-fea3-474d-8997-1de2f5e4f5d4)

You'll also notice in the readme we've got some updated demo gifs to
showoff Lazygit's features. More of those to come.

#### What's Changed

##### Features ✨

- Add worktrees view by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) (with help
from [@&#8203;kadaan](https://togithub.com/kadaan)) in
[jesseduffield/lazygit#2147
- Rebase onto branch from a marked base commit by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2835
- Auto-refresh on window activation by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2854

##### Enhancements 🔥

- Faster refresh by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2841
- feat: add os.copyToClipboardCmd to allow for a custom command
[#&#8203;1055](https://togithub.com/jesseduffield/lazygit/issues/1055)
by [@&#8203;redstreet](https://togithub.com/redstreet) in
[jesseduffield/lazygit#2784
- Add bisect menu entry that lets you choose bisect terms by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2838
- When bisecting, always mark the current commit as good/bad, not the
selected by [@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2837
- Visualize local branch heads in commits panel, 2nd approach by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2775
- Allow force-tagging if tag exists by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2827
- Save IgnoreWhitespaceInDiffView in state.yml by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2830
- Show loader when rebasing by
[@&#8203;KarlHeitmann](https://togithub.com/KarlHeitmann) in
[jesseduffield/lazygit#2851
- Internationalise logging of commands by
[@&#8203;KarlHeitmann](https://togithub.com/KarlHeitmann) in
[jesseduffield/lazygit#2852
- Show visual explosion effect when nuking worktree by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2861

##### Fixes 🔧

- Fix issue where using `null` to un-map a keybinding was ignored by
[@&#8203;hatredholder](https://togithub.com/hatredholder) in
[jesseduffield/lazygit#2832
- Show error when trying to open patch menu with an empty patch by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2829
- Fix merge status for update-ref command by
[@&#8203;stefanhaller](https://togithub.com/stefanhaller) in
[jesseduffield/lazygit#2845
- Stop worktrees view from stealing the window by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2863
- Fix confirmation view sizing by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2879

##### Maintenance ⚙️

- Standardise on using lo for slice functions by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2846
- Remove redundant secureexec package by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2847
- Add automated demo recordings by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2853
- Remove file watcher code by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2865
- Add more demos to the README by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2866
- Move features to top of readme by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2867
- Add more demos by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2874

##### Other Changes

- Create demo output dir if it doesn't already exist by
[@&#8203;jesseduffield](https://togithub.com/jesseduffield) in
[jesseduffield/lazygit#2857

#### New Contributors

- [@&#8203;hatredholder](https://togithub.com/hatredholder) made their
first contribution in
[jesseduffield/lazygit#2832
- [@&#8203;redstreet](https://togithub.com/redstreet) made their first
contribution in
[jesseduffield/lazygit#2784
- [@&#8203;kadaan](https://togithub.com/kadaan) made their first
contribution in
[jesseduffield/lazygit#2147
- [@&#8203;KarlHeitmann](https://togithub.com/KarlHeitmann) made their
first contribution in
[jesseduffield/lazygit#2851

**Full Changelog**:
jesseduffield/lazygit@v0.39.4...v0.40.0

</details>

<details>
<summary>weaveworks/eksctl (weaveworks/eksctl)</summary>

###
[`v0.151.0`](https://togithub.com/eksctl-io/eksctl/releases/tag/v0.151.0):
eksctl 0.151.0 (permalink)

[Compare
Source](https://togithub.com/weaveworks/eksctl/compare/0.150.0...0.151.0)

### Release v0.151.0

#### 🚀 Features

- Support custom AMIs for self-managed Windows nodegroups
([#&#8203;6804](https://togithub.com/weaveworks/eksctl/issues/6804))
- Support custom Ubuntu AMIs for EKS-managed nodegroups
([#&#8203;6850](https://togithub.com/weaveworks/eksctl/issues/6850))

#### 🎯 Improvements

- Remove support for EKS 1.22
([#&#8203;6704](https://togithub.com/weaveworks/eksctl/issues/6704))

#### 🐛 Bug Fixes

- Fix error with tar in `Post Cache go-build and mod` step
([#&#8203;6840](https://togithub.com/weaveworks/eksctl/issues/6840))
- Fix setting link-time variables for release version
([#&#8203;6841](https://togithub.com/weaveworks/eksctl/issues/6841))
- Select one subnet for AZs where multiple are present and no VPC config
provided
([#&#8203;6814](https://togithub.com/weaveworks/eksctl/issues/6814))
- Paginate instance type offerings response
([#&#8203;6832](https://togithub.com/weaveworks/eksctl/issues/6832))

#### 🧰 Maintenance

- Bump dependencies
([#&#8203;6852](https://togithub.com/weaveworks/eksctl/issues/6852),
[#&#8203;6859](https://togithub.com/weaveworks/eksctl/issues/6859))
- Cleanup Flux Integration
([#&#8203;6836](https://togithub.com/weaveworks/eksctl/issues/6836))

#### Acknowledgments

Weaveworks would like to sincerely thank:
[@&#8203;watany-dev](https://togithub.com/watany-dev)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 4pm on thursday" (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, 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/scottames/dots).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@Dagur
Copy link

Dagur commented Aug 17, 2023

I don't understand how to use this fix. If I press b it asks me if I want to mark the current commit as good or bad but it's always the selected commit that gets marked, not the current one.

@Dagur
Copy link

Dagur commented Aug 17, 2023

I think I found a bug because it only works after I've found both a good commit and a bad one.
If I've only found one of the two, then it suggests the selected item as the "current" commit instead of the checked out commit.

@stefanhaller
Copy link
Collaborator Author

That's not a bug, that's how bisect works. You tell it a good and a bad commit explicitly (by selecting them), and then it checks out commits for you that you test. It's only from that point on that the "current, not selected" logic makes sense.

@Dagur
Copy link

Dagur commented Aug 17, 2023

I see your point but I still think it makes sense to say that the checked out commit is the "current" one.

Here's why that would be useful to me. I check out tags to find the first good and first bad commits. When I've found a version that fits, I want to be able to mark it good or bad right away. Currently I have to either:

  1. Go to the list of commits and scroll down (often for a very long time) to find the tagged commit
  2. Use the command line and type "git bisect good|bad"

Another solution would be to add a bisect option to tags, I wouldn't mind that at all.

@stefanhaller
Copy link
Collaborator Author

OK, I do see two bugs here:

  • if you check out the good commit and mark it "good", and then go back to the branches panel to check out a newer commit (often master), then this is not shown in the local commits panel. It still only shows the commits from the good one downwards. As a workaround, always mark the bad commit first.
  • if you have only marked one commit as good or bad, the bisect dialog says "current commit", which is wrong, it should say "selected commit". (The sha in parens is the right one though.)

I agree that it might be useful to show bisect options in the tags panel (only as long as we don't have a good and a bad commit, that is). Feel free to file an issue for that.

Apart from that, I can only recommend to use the / key to find tags in the local commits panel. I use that all the time, works great.

@Dagur
Copy link

Dagur commented Aug 17, 2023

Thanks. I've created an issue here #2941

The / key doesn't search the whole history. I'm not sure how far back it goes, but often it's not enough.

@stefanhaller
Copy link
Collaborator Author

That no longer seems to be true; typing / triggers loading all commits. I'm not sure when this has changed, I remember that previously you had to type > manually to trigger loading all commits.

(Actually, I don't like this behavior; our monorepo at work is so big that loading all commits takes a really long time, and consumes so much memory that everything is super slow afterwards. I want to be able to search in the loaded commits only, and then only trigger loading more when needed.)

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.

Bisect good/bad: current or selected commit?
3 participants