1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-12-14 11:23:09 +02:00
Commit Graph

4008 Commits

Author SHA1 Message Date
Jesse Duffield
804a134aa5
Merge pull request #2471 from stefanhaller/improve-custom-patch-conflict-handling 2023-03-08 20:45:10 +11:00
Jesse Duffield
82fc6fb111
Merge pull request #2491 from TylerBarnes/patch-1 2023-03-08 10:26:06 +11:00
Jesse Duffield
0bda93d4c3 Add more unit tests 2023-03-08 09:19:23 +11:00
Tyler Barnes
6735bf4c89
Update Config.md 2023-03-07 11:54:47 -08:00
Stefan Haller
4bd1322941 Rename WillBeAppliedReverse to Reverse
This is the only "reverse"-related option that is left, so use a less clumsy
name for it.
2023-03-07 13:40:07 +01:00
Stefan Haller
45cf993982 Remove the PatchOptions.Reverse option
All callers pass false now (except for the tests, which we simply remove), so we
don't need the option any more.
2023-03-07 13:39:45 +01:00
Stefan Haller
e4659145e8 Use WillBeAppliedReverse (and git apply --reverse) in the staging panel too
It's simpler to have only one way of reversing a patch.
2023-03-07 13:38:19 +01:00
Stefan Haller
bf6e9a1bd3 Reenable failing test 2023-03-07 09:49:34 +01:00
Stefan Haller
a68cd6af9c Concatenate patches to apply them all at once
This fixes the problem that patching would stop at the first file that has a
conflict. We always want to patch all files.

Also, it's faster for large patches, and the code is a little bit simpler too.
2023-03-07 09:49:34 +01:00
Stefan Haller
4ca012dbfb Add test for reverse-applying a patch that conflicts
The patch contains changes to two files; the first one conflicts, the second
doesn't. Note how it only applies changes to the first file at this point in the
branch; we'll fix this in the next commit.

This test would fail on master for multiple reasons.
2023-03-07 09:49:34 +01:00
Stefan Haller
6bd1c1d068 Remove parameters that are no longer needed
All callers in this file now use reverseOnGenerate=false and
keepOriginalHeader=true, so hard-code that in the call to ModifiedPatchForLines
and get rid of the parameters.
2023-03-07 09:49:34 +01:00
Stefan Haller
5d692e8961 Remove the keepOriginalHeader retry loop
The loop is pointless for two reasons:
- git apply --3way has this fallback built in already. If it can't do a
  three-way merge, it will fall back to applying the patch normally.
- However, the only situation where it does this is when it can't do a 3-way
  merge at all because it can't find the necessary ancestor blob. This can only
  happen if you transfer a patch between different repos that don't have the
  same blobs available; we are applying the patch to the same repo that is was
  just generated from, so a 3-way merge is always possible. (Now that we fixed
  the bug in the previous commit, that is.)

But the retry loop is not only pointless, it was actually harmful, because when
a 3-way patch fails with a conflict, git will put conflict markers in the
patched file and then exit with a non-zero exit status. So the retry loop would
try to patch the already patched file again, and this almost certainly fails,
but with a cryptic error message such as "error: main.go: does not exist in
index".
2023-03-07 09:49:34 +01:00
Stefan Haller
9cc33c479b Use forward patches and --reverse flag for partial patches too
There's no reason to have two different ways of applying patches for whole-file
patches and partial patches; use --reverse for both. Not only does this simplify
the code a bit, but it fixes an actual problem: when reverseOnGenerate and
keepOriginalHeader are both true, the generated patch header is broken (the two
blobs in the line `index 6d1959b..6dc5f84 100644` are swapped). Git fails to do
a proper three-way merge in that case, as it expects the first of the two blobs
to be the common ancestor.

It would be possible to fix this by extending ModifiedPatchForLines to swap the
two blobs in this case; but this would prevent us from concatenating all patches
and apply them in one go, which we are going to do later in the branch.
2023-03-07 09:49:34 +01:00
Stefan Haller
c79e360584 Add patch option WillBeAppliedReverse
It's not used yet, but covered with tests already.
2023-03-07 09:49:34 +01:00
Stefan Haller
f76cc27956 Bundle the reverse and keepOriginalHeader flags into a PatchOptions struct
We are going to add one more flag in the next commit.

Note that we are not using the struct inside patch_manager.go; we keep passing
the individual flags there. The reason for this will become more obvious later
in this branch.
2023-03-07 09:49:34 +01:00
Stefan Haller
5a50bfd179 Fix opening the current test file from the integration test gui 2023-03-07 09:49:34 +01:00
Jesse Duffield
c36333af3d
Merge pull request #2433 from Ryooooooga/subcommits-limit 2023-03-06 18:22:57 +11:00
Jesse Duffield
4d78d76a44
Merge pull request #2486 from humblepenguinn/master 2023-03-06 17:34:08 +11:00
README-bot
d08a9849c3 Updated README.md 2023-03-06 06:32:51 +00:00
Jesse Duffield
3791b5057a
Merge pull request #2481 from stefanhaller/fix-accordion-mode-for-custom-patch 2023-03-06 17:32:28 +11:00
Humble Penguin
dfe5c805c4 generated cheatsheets and ran code formatting 2023-03-05 07:06:34 +05:00
Humble Penguin
e94ff63bc5 issue #2473 2023-03-05 06:47:21 +05:00
Stefan Haller
723504a290 Keep side context in context stack when pushing a main context
This fixes accordion mode for the commit files panel. When entering a file, the
commit files panel should stay expanded.
2023-03-04 15:07:48 +01:00
README-bot
40a29fd622 Updated README.md 2023-03-03 10:06:38 +00:00
Jesse Duffield
648748781d
Merge pull request #2483 from stefanhaller/fix-setting-selectedLineBgColor 2023-03-03 21:06:19 +11:00
Stefan Haller
63e8b8c01c Fix setting gui.selectedRangeBgColor as a hex value 2023-03-03 08:46:43 +01:00
Stefan Haller
ed47529604 Add some tests for GetTextStyle
The tests show that setting a hex color doesn't work; we'll fix that in the next
commit.
2023-03-03 08:46:43 +01:00
Jesse Duffield
ff5d0155db
Merge pull request #2467 from jesseduffield/remove-file 2023-03-01 19:23:55 +11:00
Jesse Duffield
48acf3818f
Merge pull request #2479 from stefanhaller/fix-you-are-here-issues 2023-03-01 19:21:26 +11:00
Stefan Haller
de3e4838ad Store WorkingTreeState in model
This is the working tree state at the time the model commits were loaded. This
avoids a visual glitch with the "You Are Here" label appearing at times when it
is not supposed to.
2023-03-01 09:12:00 +01:00
Stefan Haller
6af8f278d0 Don't put "<--- YOU ARE HERE" in the commit model's name
Instead, derive it from context at display time (if we're rebasing, it's the
first non-todo commit). This fixes the problem that unfolding the current
commit's files in the local commits panel would show junk in the frame's title.

Along the way we make sure to only display the "<--- YOU ARE HERE" string in the
local commits panel; previously it would show for the top commit of a branch or
tag if mid-rebase.
2023-03-01 09:12:00 +01:00
README-bot
e3c6887e5d Updated README.md 2023-03-01 07:28:41 +00:00
Jesse Duffield
c34e0deca7
Merge pull request #2478 from stefanhaller/make-test-more-robust 2023-03-01 18:28:23 +11:00
README-bot
75b2c50a55 Updated README.md 2023-02-27 23:12:06 +00:00
Jesse Duffield
af7c71d1ee
Merge pull request #2476 from pereBohigas/feature/add_kotlin_icon 2023-02-28 10:11:47 +11:00
Stefan Haller
161bb684fa Make integration test more robust
If you ran this test enough times it would eventually fail; this happened
whenever the resulting squashed commit had a sha that happened to start with
"02". We test that "commit 02" does not appear in the diff window, but in that
case it did, at the very top of the window.

A better fix might be to change the commit message that we use in CreateNCommits
to something other than "commit XY", but that would require touching tons of
tests, so this is the easier fix.
2023-02-27 08:53:06 +01:00
Ryooooooga
a624e0457f
feat(subcommits): load unlimited sub-commits 2023-02-27 15:29:00 +09:00
README-bot
f2aa7e7e28 Updated README.md 2023-02-26 02:07:25 +00:00
Jesse Duffield
75aa339b4e
Merge pull request #2477 from jesseduffield/migrate-merge-conflict-tests 2023-02-26 13:07:11 +11:00
Jesse Duffield
45d45d2397 show file tree by default in integration tests 2023-02-26 13:01:51 +11:00
Jesse Duffield
f7e8b2dd71 cleanup integration test code 2023-02-26 12:54:13 +11:00
Jesse Duffield
8b5d59c238 remove legacy integration tests 2023-02-26 11:34:18 +11:00
Jesse Duffield
f82f4f6dbc disable auto-refresh in integration tests 2023-02-26 11:23:18 +11:00
Jesse Duffield
ff3c5d331e migrate merge conflict tests 2023-02-26 11:22:24 +11:00
Pere Bohigas
adef3bd4ca Add icon for Kotlin script files 2023-02-25 15:14:26 +01:00
README-bot
33f9f81c8c Updated README.md 2023-02-25 10:40:16 +00:00
Jesse Duffield
f6fafc65ee
Merge pull request #2475 from jesseduffield/migrate-patch-building-tests 2023-02-25 21:40:02 +11:00
Jesse Duffield
9c645088bf give CI longer wait times before failing assertions 2023-02-25 21:37:16 +11:00
Jesse Duffield
dd1bf629b8 migrate patch building tests 2023-02-25 21:37:16 +11:00
Pere Bohigas
c80a94aa7a Add icon for Kotlin files 2023-02-25 10:51:43 +01:00