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

3111 Commits

Author SHA1 Message Date
Jesse Duffield
dd31f8ecea update cheatsheets 2023-04-30 13:19:53 +10:00
Jesse Duffield
5a7b2ab6d0 fix rendering of commit files view 2023-04-30 13:19:53 +10:00
Jesse Duffield
68a9d7fd77 appease linter 2023-04-30 13:19:53 +10:00
Jesse Duffield
19cbafcdfc remove unused file 2023-04-30 13:19:53 +10:00
Jesse Duffield
f2c85c5b19 move side window actions to controllers package 2023-04-30 13:19:53 +10:00
Jesse Duffield
0faa41e6f8 move toggle whitespace action to controllers package 2023-04-30 13:19:53 +10:00
Jesse Duffield
2e32e55957 update integration test for toggling whitespace 2023-04-30 13:19:53 +10:00
Jesse Duffield
037cd99138 move quit actions to controller 2023-04-30 13:19:53 +10:00
Jesse Duffield
d3e9bc2185 remove unused file 2023-04-30 13:19:53 +10:00
Jesse Duffield
ea4587a3b8 move some methods 2023-04-30 13:19:53 +10:00
Jesse Duffield
2da300f2fb move diffing menu action to controller 2023-04-30 13:19:53 +10:00
Jesse Duffield
7848958326 move filtering menu action to controller 2023-04-30 13:19:53 +10:00
Jesse Duffield
2cba98e3fe move another action into controller 2023-04-30 13:19:53 +10:00
Jesse Duffield
f8c9ce33c2 move more actions into controller 2023-04-30 13:19:53 +10:00
Jesse Duffield
71753770ad move custom patch options menu action to controllers package 2023-04-30 13:19:53 +10:00
Jesse Duffield
820b1e811d move custom command action into its own file 2023-04-30 13:19:53 +10:00
Jesse Duffield
4a33fede7b move window arrangement helper 2023-04-30 13:19:53 +10:00
Jesse Duffield
db12853bbe lots of changes 2023-04-30 13:19:53 +10:00
Jesse Duffield
711674f6cd standardise controller helper methods 2023-04-30 13:19:53 +10:00
Jesse Duffield
fc91ef6a59 standardise helper args 2023-04-30 13:19:53 +10:00
Jesse Duffield
43251e7275 split context common from helper common 2023-04-30 13:19:53 +10:00
Jesse Duffield
f081358943 move getDisplayStrings funcs into contexts 2023-04-30 13:19:53 +10:00
Jesse Duffield
0c6ab4b43e refactor cherry pick code to move state access out of helper 2023-04-30 13:19:53 +10:00
Jesse Duffield
1b2fb34ffd start moving getDisplayStrings funcs into contexts 2023-04-30 13:19:53 +10:00
Jesse Duffield
0e5a4c7a36 move getModel functions into contexts 2023-04-30 13:19:53 +10:00
Jesse Duffield
47b91f1ef5 move views into contexts 2023-04-30 13:19:53 +10:00
Jesse Duffield
e2db6a1732 remove context callback opts 2023-04-30 13:19:53 +10:00
Jesse Duffield
509e3efa70 lots more refactoring 2023-04-30 13:19:53 +10:00
Jesse Duffield
8edad826ca Begin refactoring gui
This begins a big refactor of moving more code out of the Gui struct into contexts, controllers, and helpers. We also move some code into structs in the
gui package purely for the sake of better encapsulation
2023-04-30 13:19:52 +10:00
Jesse Duffield
9adbef40de Refresh staging panel when committing
We now refresh the staging panel when doing an unscoped refresh, so that if we commit from the staging panel we escape
back to the files panel if need be. But that causes flickering when doing an unscoped refresh from other contexts,
because the refreshStagingPanel function assumes that the staging panel has focus. So we're adding a guard at the top
of that function to early exit if we don't have focus.
2023-04-30 12:17:34 +10:00
Jesse Duffield
0cd5257523 Retain commit message when cycling history
When cycling history, we want to make it so that upon returning to the original prompt, you get your text back.
Importantly, we don't want to use the existing preservedMessage field for that because that's only for preserving
a NEW commit message, and we don't want the history stuff of the commit reword flow to overwrite that.
2023-04-30 12:17:34 +10:00
Sean
49da7b482d Split commit message panel into commit summary and commit description panel
When we use the one panel for the entire commit message, its tricky to have a keybinding both for adding a newline and submitting.
By having two panels: one for the summary line and one for the description, we allow for 'enter' to submit the message when done from the summary panel,
and 'enter' to add a newline when done from the description panel. Alt-enter, for those who can use that key combo, also works for submitting the message
from the description panel. For those who can't use that key combo, and don't want to remap the keybinding, they can hit tab to go back to the summary panel
and then 'enter' to submit the message.

We have some awkwardness in that both contexts (i.e. panels) need to appear and disappear in tandem and we don't have a great way of handling that concept,
so we just push both contexts one after the other, and likewise remove both contexts when we escape.
2023-04-30 12:17:34 +10:00
Stefan Haller
d675117289 Fix activation of initial context
This broke with 40f6767cfc77; the symptom is that starting lazygit with a git
arg (e.g. "lazygit log") wouldn't activate the requested panel correctly. While
it would show in the expanded view, it didn't have a green frame, and keyboard
events would go to the files panel.
2023-04-29 07:37:44 +02:00
Jesse Duffield
e63858215e refactor moveFixupCommitDown 2023-04-29 07:28:33 +02:00
Stefan Haller
3fe4db9316 Make RebaseCommands.AmendTo more robust
This fixes two problems with the "amend commit with staged changes" command:

1. Amending to a fixup commit didn't work (this would create a commmit with the
   title "fixup! fixup! original title" and keep that at the top of the branch)
2. Unrelated fixup commits would be squashed too.

The added integration test verifies that both of these problems are fixed.
2023-04-29 07:28:33 +02:00
Jesse Duffield
185bbf0c75 Refactor to tighten interface to lazygit daemon 2023-04-29 07:28:33 +02:00
Stefan Haller
a8586ba57e Refactor: simplify PrepareInteractiveRebaseCommand API
Instead of passing a bunch of different options in
PrepareInteractiveRebaseCommandOpts, where it was unclear how they interact if
several are set, have only a single field "instruction" which can be set to one
of various different instructions.

The functionality of replacing the entire todo file with our own is no longer
available; it is only possible to prepend todos to the existing file.

Also, instead of using different env vars for the various rebase operations that
we want to tell the daemon to do, use a single one that contains a json-encoded
struct with all available instructions. This makes the protocol much clearer,
and makes it easier to extend in the future.
2023-04-29 07:28:33 +02:00
Stefan Haller
dad7a70bf8 Implement moving commits up/down in terms of daemon 2023-04-29 07:28:33 +02:00
Stefan Haller
3791f0b2fa Implement "move patch to selected commit" in terms of daemon 2023-04-29 07:28:33 +02:00
Stefan Haller
b8fbe9756e Implement squash, fixup, drop, and reword in terms of daemon 2023-04-29 07:28:33 +02:00
Stefan Haller
ab25600ccb Extract EditRebaseTodo into a function in utils.rebaseTodo
We want to reuse it from the daemon code in the next commit.
2023-04-29 07:28:33 +02:00
Stefan Haller
d50c58b4c6 Implement "edit commit" in terms of the new EditRebase function 2023-04-29 07:28:33 +02:00
Stefan Haller
5645a662de Use --rebase-merges for interactive rebase
At the moment it doesn't make a big difference, because the vast majority of
callers create a list of todos themselves to completely replace what git came up
with. We're changing this in the following commits though, and then it's helpful
to preserve merges.
2023-04-29 07:28:33 +02:00
Stefan Haller
a41218551d Put gitCommon.version back in deps_test.go
This was reverted in 3546ab8f21, but shouldn't have.
2023-04-29 07:28:33 +02:00
Jesse Duffield
aec46942a8 enforce lowercase filenames 2023-04-29 13:05:05 +10:00
Jesse Duffield
aa70723e3a
Merge pull request #2558 from stefanhaller/allow-resetting-author-during-rebase 2023-04-29 12:44:14 +10:00
Jesse Duffield
7db54a948a
Merge pull request #2548 from AKARSHITJOSHI/fix/tagPush 2023-04-29 12:43:55 +10:00
J. B. Rainsberger
6c010a788c
Add an editor preset for kakoune (kakoune.org). 2023-04-27 13:41:54 -03:00
Jesse Duffield
79dc1d9052
Merge pull request #2557 from noahziheng/feature/add-gitea-pr 2023-04-24 13:42:05 +10:00
Noah Gao
bf3dd79b7a feat: add gitea to hosting service 2023-04-18 16:16:09 +00:00
Stefan Haller
21072226d2 Don't allow resetting non-HEAD commits (including rebase todos) during rebase 2023-04-18 17:34:07 +02:00
Stefan Haller
b09000194a Allow resetting author of HEAD commit during rebase 2023-04-18 17:33:33 +02:00
Ryooooooga
3546ab8f21
Revert "feat: support for push --force-if-includes"
This reverts commit e00f248cf7.
2023-04-17 19:37:33 +09:00
Personal
9a13447b97 Change push tag command
Signed-off-by: AKARSHITJOSHI <akarshitjoshi@gmail.com>
2023-04-16 10:37:11 +05:30
AzraelSec
08a445eb9d test: check focus on commits after performing an advanced rebase 2023-04-15 11:01:55 +02:00
AzraelSec
28501fbf77 chore: add focus on local commits after interactively rebase 2023-04-15 10:42:36 +02:00
Jesse Duffield
8f1f712841 use lowercase text for menu items (as we're still yet to standardise on 'Sentence case') 2023-04-15 17:29:31 +10:00
AzraelSec
b82b6a2992 test: add integration test to verify the interactive rebase correctly work 2023-04-15 17:26:08 +10:00
AzraelSec
ddcd6be245 refactor: introduce a struct to pack the
`PrepareInteractiveRebaseCommand` function
2023-04-15 17:26:08 +10:00
Jesse Duffield
711be78811 extract out function 2023-04-15 17:26:08 +10:00
AzraelSec
3422b1e218 test: update the UI to follow the new rebase type selection instead of confirm the previous popup 2023-04-15 17:26:08 +10:00
AzraelSec
a3fdf91714 feat: allow to perform a rebase with breaking before the first commit 2023-04-15 17:26:08 +10:00
AzraelSec
368f9c8cb3 feat: let interactive rebase prepend commands to the default todo file 2023-04-15 17:26:08 +10:00
Stefan Haller
d675eb6507 Don't allow changing the type of certain rebase todos
We already show "merge" todo entries when starting an interactive rebase with
--rebase-merges outside of lazygit. Changing the type of a merge entry to "pick"
or "edit" doesn't make sense and shouldn't be allowed. Earlier in this branch we
have started to show "update-ref" entries, these can't be changed either (they
can be moved, though).

You might argue that it should be possible to change them to "drop", but in the
case of "update-ref" this doesn't make sense either, because "drop" needs a Sha
and we don't have one here. Also, you would then be able to later change it back
to "pick", so we would have to remember that this isn't allowed for this
particular drop entry; that's messy, so just disallow all editing.
2023-04-15 08:36:03 +02:00
Stefan Haller
dc4e88f8a4 Make moving todo commits more robust 2023-04-15 08:36:03 +02:00
Stefan Haller
120dd1530a Make EditRebaseTodo more robust
It used to work on the assumption that rebasing commits in lazygit's model
correspond one-to-one to lines in the git-rebase-todo file, which isn't
necessarily true (e.g. when users use "git rebase --edit-todo" at the custom
command prompt and add a "break" between lines).
2023-04-15 08:36:03 +02:00
Stefan Haller
860a8d102b Add integration test for dropping a todo commit when there's an update-ref
The test shows how we are accidentally dropping the wrong commit in this case.
We'll fix that in the next commit.
2023-04-15 08:36:03 +02:00
Stefan Haller
a304fed68c Add GitVersion field to NewIntegrationTestArgs
It can be used to specify which git versions a given test should or should not run on.
2023-04-15 08:36:03 +02:00
Stefan Haller
227b0b781c Show update-ref commands in rebase todo list
This is useful when working with stacked branches, because you can now move
"pick" entries across an update-ref command and you can tell exactly which
branch the commit will end up in.

It's also useful to spot situations where the --update-refs option didn't work
as desired. For example, if you duplicate a branch and want to rebase only one
of the branches but not the other (maybe for testing); if you have
rebase.updateRefs=true in your git config, then rebasing one branch will move
the other branch along. To solve this we'll have to introduce a way to delete
the update-ref entry (maybe by hitting backspace?); this is out of scope for
this PR, so for now users will have to type "git rebase --edit-todo" into the
custom command prompt to sort this out.

We will also have to prevent users from trying to turn update-ref commands into
other commands like "pick" or "drop"; we'll do this later in this branch.
2023-04-15 08:36:03 +02:00
Stefan Haller
740474c10c Visualize branch heads in commits panel
Useful when working with stacked branches.
2023-04-15 08:36:03 +02:00
Stefan Haller
a0d179b6dc Make getHydratedRebasingCommits more robust
So far the algorithm worked on the assumption that the output of the "git show"
command corresponds one-to-one to the lines of the rebase-todo file. This
assumption doesn't hold once we start to include todo lines that don't have a
sha (like update-ref), or when the todo file contains multiple entries for the
same sha. This should never happen normally, but it can if users manually edit
the todo file and duplicate a line.
2023-04-15 08:36:03 +02:00
Stefan Haller
c53c5e47ef Store commit.Action as an enum instead of a string
The main reason for doing this (besides the reasons given for Status in the
previous commit) is that it allows us to easily convert from TodoCommand to
Action and back. This will be needed later in the branch. Fortunately,
TodoCommand is one-based, so this allows us to add an ActionNone constant with
the value 0.
2023-04-15 08:36:03 +02:00
Stefan Haller
188773511e Store commit.Status as an enum instead of a string
This is unrelated to the changes in this PR, but since we are doing the same
thing for the commit.Action field in the next commit, it makes sense to do it
for Status too for consistency. Modelling this as an enum feels more natural
than modelling it as a string, since there's a finite set of possible values.
And it saves a little bit of memory (not very much, since none of the strings
were heap-allocated, but still).
2023-04-15 08:36:03 +02:00
Jesse Duffield
7f5465a27b fix flaky tests 2023-04-14 21:01:45 +10:00
Stefan Haller
6a340ec840 Reorder tests 2023-04-13 19:17:08 +02:00
Stefan Haller
3535cd0f94 Rename test files to match test names 2023-04-13 19:17:08 +02:00
Jesse Duffield
82c54ed3d2
Merge pull request #2544 from scallaway/git-diff-detect-renames 2023-04-13 21:47:59 +10:00
Jesse Duffield
bd62b519de
Merge pull request #2496 from jesseduffield/feature/prevent-history-custom-command 2023-04-13 21:25:35 +10:00
Jesse Duffield
04e0a9bb45
Merge pull request #2523 from stefanhaller/editor-config 2023-04-13 21:22:17 +10:00
Luka Markušić
2b4ac986a2 Don't add custom command to history if it starts with space
Add tests for custom command with leading space
2023-04-13 21:20:46 +10:00
Stefan Haller
046b0d9daa Show warning about deprecated edit configs
We print this to the terminal after lazygit quits rather than showing it in a
panel at startup, so as to not annoy people too much. Hopefully it will still be
prominent enough this way.
2023-04-13 13:14:00 +02:00
Stefan Haller
e4e16fa38e Change OpenCommand to Open and OpenLinkCommand to OpenLink
We do this for consistency with the edit settings. The old names are kept as a
fallback for now.
2023-04-13 13:14:00 +02:00
Stefan Haller
b7e029adc7 Don't set platform defaults on OSConfig struct immediately
Instead, query the platform defaults only if the config is empty. This will be
necessary later to distinguish an empty config from a default config, so that we
can give deprecation warnings.
2023-04-13 13:14:00 +02:00
Stefan Haller
08d679c3a8 Remove line number support for "open" command
The "open" command is supposed to behave in the same way as double-clicking a
file in the Finder/Explorer. The concept of jumping to a specific line in the
file doesn't make sense for this; use "edit" instead.
2023-04-13 13:14:00 +02:00
Stefan Haller
2947b56134 Add support for falling back to legacy edit config 2023-04-13 13:14:00 +02:00
Stefan Haller
659d668e16 Implement edit presets 2023-04-13 13:14:00 +02:00
Stefan Haller
7bbcec965b Cleanup: fix copy/paste error in comment 2023-04-13 13:14:00 +02:00
Stefan Haller
24de156592 Fix windows tests
Now that the tests run again, it turns out that they actually fail, so fix them.
2023-04-13 13:14:00 +02:00
Stefan Haller
8d3cce4a49 Rename test files so that test discovery works again
These files were renamed from os_windows_test.go to os_test_windows.go (etc.) in
95b2e9540a. Since then, the tests have no longer run, since go only looks for
tests in files ending with "test.go".

It isn't important that the file name ends with "_windows.go", since there are
already build constrains in the files themselves.
2023-04-13 13:14:00 +02:00
Scott Callaway
6ffe98abac
feat: remove --no-renames flag from main panel diffs (to show renamed files) 2023-04-13 10:57:38 +01:00
Scott Callaway
046cb942c2
fix: organise commit test file
Pulled this out into a separate commit since it was unrelated to the
feature coming behind it.

This just cleans up the `commit_test.go` file slightly (for the method
that I was working on) so that the tests are built in a way that is
slightly more readable - testing each configuration option individually
without combining any of them.
2023-04-12 12:31:06 +01:00
Andrew
298dae23e8 fix: generalize parsing of ssh git urls 2023-04-03 12:10:30 +10:00
Jesse Duffield
a02b54e1b7
Merge pull request #2497 from stefanhaller/fix-initial-scroll-bar-size 2023-04-02 16:38:07 +10:00
Jesse Duffield
0af4e5a843 prevent unnecessary re-renders of view 2023-04-02 15:44:05 +10:00
Stefan Haller
d508badd62 Better error message when trying to amend a commit other than head during rebase 2023-04-01 08:16:15 +02:00
Luka Markušić
e7d0116312 Allow amending the head commit during interactive rebase 2023-04-01 08:16:15 +02:00
Stefan Haller
85fdb700ba Extract amendHead function into new AmendHelper 2023-04-01 08:16:15 +02:00
Stefan Haller
7513d77567 Add integration test for amending from the files panel 2023-04-01 08:16:15 +02:00
Stefan Haller
c757063264 Better error message when trying to edit or move a non-todo commit during rebase
Previously we would have tried to do the rebase, resulting in a long and
somewhat cryptic error message from git; now we check ourselves and show a less
intimidating message.
2023-04-01 08:16:15 +02:00
Stefan Haller
b24955063c Allow rewording the head commit during interactive rebase 2023-04-01 08:16:15 +02:00
Stefan Haller
c6930e0538 Cleanup: use commit.isTODO() consistently
It seems cleaner than checking the Status for "rebasing".
2023-04-01 08:16:15 +02:00
Jesse Duffield
213ae8dd07 fix reflog text colour by defaulting every view to the same foreground colour 2023-03-26 15:24:09 +11:00
Jesse Duffield
4780953cef
Merge pull request #2377 from shinhs0506/clear-staging-after-commit 2023-03-24 19:13:00 +11:00
Jesse Duffield
8121a0cc74 remove old integration test recording code 2023-03-24 18:42:11 +11:00
Stefan Haller
4adca84d68 Make sure scrollbars have the right size initially
We refresh the view after reading just enough to fill it, so that we see the
initial content as quickly as possible, but then we continue reading enough
lines so that we can tell how long the scrollbar needs to be, and then we
refresh again. This can result in slight flicker of the scrollbar when it is
first drawn with a bigger size and then jumps to a smaller size; however, that's
a good tradeoff for a solution that provides both good speed and accuracy.
2023-03-21 18:26:18 +01:00
Stefan Haller
b7c61aa883 Push initial context instead of just putting it in the context array
This makes sure activateContext gets called on it.
2023-03-20 20:14:13 +11:00
Stefan Haller
40f6767cfc Avoid deactivating and activating when pushing the current context again
When calling PushContext, do nothing if the context to be pushed is already on
top of the stack. Avoids flicker in certain situations.
2023-03-20 20:14:13 +11:00
John Shin
776d8f4d2e refresh the staging panel on successful commit
apply formatting
2023-03-20 20:13:59 +11:00
Jesse Duffield
4b67a45a16
Merge pull request #2515 from stefanhaller/fix-deprecated-rand-seed 2023-03-20 20:12:25 +11:00
Jesse Duffield
a82d952f48
Merge pull request #2495 from jesseduffield/feature/remove-altreturn 2023-03-20 20:11:35 +11:00
Stefan Haller
549ce09f71 Fix deprecated rand.Seed 2023-03-19 10:00:19 +01:00
Jesse Duffield
60f902f026 rename patch manager to patch builder 2023-03-19 16:35:57 +11:00
Jesse Duffield
7ce3165afa specify view when assertion on line count fails 2023-03-19 16:30:39 +11:00
Jesse Duffield
73c7dc9c5d refactor patch code 2023-03-19 16:30:39 +11:00
Jesse Duffield
e6274af015
appease golangci-lint (#2512) 2023-03-19 11:20:29 +11:00
Luka Markušić
8dbd7d44ff
Fix checking for credentials performance (#2452)
Co-authored-by: Jesse Duffield <jessedduffield@gmail.com>
2023-03-19 11:08:54 +11:00
Stefan Haller
4b4dccfd7d
Fix "move patch into new commit" for partial hunk (#2507) 2023-03-18 18:17:47 +11:00
Jens Kutilek
5c8bc790ff
Make arrows consistent (#2501) 2023-03-18 11:32:44 +11:00
yk-kd
b5d612e6d6
Add border config (#2344)
Co-authored-by: yk-kd <yosuke.komada@gmail.com>
2023-03-18 11:23:31 +11:00
Ryooooooga
33f332e28d
build: remove github.com/jesseduffield/yaml package 2023-03-17 23:19:11 +09:00
Ryooooooga
55fb3ef4e6
fix(commit_loader): fix log command 2023-03-16 20:13:23 +09:00
Luka Markušić
f314cb3763 Remove alternative confirmation and return keymappings 2023-03-09 10:32:00 +01:00
Jesse Duffield
0bda93d4c3 Add more unit tests 2023-03-08 09:19:23 +11: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
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
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
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
Jesse Duffield
c34e0deca7
Merge pull request #2478 from stefanhaller/make-test-more-robust 2023-03-01 18:28:23 +11: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
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
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
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
Jesse Duffield
037e957282 fix PullMergeConflict integration test 2023-02-25 11:39:24 +11:00
Jesse Duffield
db011d8e34 Improve staging panel integration tests 2023-02-25 11:35:41 +11:00
Jesse Duffield
c63fed2074 migrate staging tests 2023-02-23 22:29:40 +11:00
Jesse Duffield
1034962c7e migrate more tests 2023-02-22 22:29:01 +11:00
Jesse Duffield
eabe7f462a migrate more tests 2023-02-22 21:57:32 +11:00
Jesse Duffield
22c10479d5 migrate reflog integration tests 2023-02-22 21:15:03 +11:00
Jesse Duffield
78f3a7a478 migrate interactive rebase integration tests 2023-02-22 19:36:31 +11:00
Jesse Duffield
526c9dea9b
Merge pull request #2293 from jesseduffield/feature/make-discarding-harder 2023-02-21 22:03:25 +11:00
Jesse Duffield
bfde06d049 migrate push tests 2023-02-21 21:50:03 +11:00
Jesse Duffield
2b6a109e38 migrate stash tests 2023-02-20 21:52:27 +11:00
Jesse Duffield
71a30155dc rerun test generator 2023-02-20 19:29:15 +11:00
Jesse Duffield
6ee20840b2 migrate switch tab from menu test 2023-02-20 19:28:52 +11:00
Jesse Duffield
56424eb1aa remove x keybinding for opening menu so we now only use '?' 2023-02-20 19:28:45 +11:00
Jesse Duffield
38c7030b0f mention path in tooltips 2023-02-20 19:28:45 +11:00
Luka Markušić
31b8524fe6 Add tooltips for discarding 2023-02-20 19:28:45 +11:00
Luka Markušić
0ae34aeeb7 Make discarding items less error prone
The menu is opened by `d` so this makes it harder to mess things up by
accidentally pressing `dd`.
2023-02-20 19:28:45 +11:00
Jesse Duffield
e1c376ef54
Merge pull request #2453 from stefanhaller/allow-rebasing-to-first-commit 2023-02-20 19:21:37 +11:00
Jesse Duffield
0b55eaca1d add create tag from commit test 2023-02-20 19:01:08 +11:00
Jesse Duffield
ee8c31880c add reset to tag test 2023-02-20 19:01:08 +11:00
Jesse Duffield
daf8176dd7 add tag checkout test 2023-02-20 19:01:08 +11:00
Jesse Duffield
082d342bf8 add tag tests 2023-02-20 19:01:08 +11:00
Jesse Duffield
39c56553b3 show tag message 2023-02-20 19:01:08 +11:00
Stefan Haller
c5cd217a65 Allow squashing fixups above the first commit of a repo
This includes amending changes into a given commit, since that's implemented in
terms of the former.
2023-02-20 08:29:43 +01:00
Jesse Duffield
9e2a3a87dd improved commit test 2023-02-20 18:20:23 +11:00
Jesse Duffield
ac580ae6a0 migrate undo2 2023-02-20 18:20:23 +11:00
Jesse Duffield
9e1e20fef2
Merge pull request #2421 from Ryooooooga/tag-on-branch 2023-02-20 18:20:16 +11:00
Jesse Duffield
4b49bd406f
Update pkg/integration/tests/branch/create_tag.go 2023-02-20 17:58:08 +11:00
Stefan Haller
7351907474 Add integration tests for rebasing to the initial commit 2023-02-20 07:40:05 +01:00
Stefan Haller
a349e886ce Allow interactive rebasing all the way down to the first commit
Pass --root instead of a sha when we want to rebase down to the initial commit.
2023-02-20 07:40:05 +01:00
Stefan Haller
dd61c49a15 Better error message for trying to squash or fixup the first commit
It's not so much the total number of commits that matters here, it's just
whether we are on the first one. (This includes the other condition.)

This allows us to get rid of the condition in rebase.go.
2023-02-20 07:40:04 +01:00
Stefan Haller
ac9515d8c7 Revert "fix: improve backward compatibility"
Since we now require git 2.20, we don't need this any more.

This reverts commit 7c5f33980f.
2023-02-19 16:13:31 +01:00
Ryoga
72a92d748f
test: fix TagNamesAt
Co-authored-by: Jesse Duffield <jessedduffield@gmail.com>
2023-02-19 23:35:38 +09:00
Ryooooooga
36c2b00336
test: add an integration test for creating tag on branches 2023-02-19 23:35:38 +09:00
Ryooooooga
67b08ac239
feat: support to create tag on branch 2023-02-19 23:31:46 +09:00
Stefan Haller
67b8ef449c Edit by breaking after current commit
Instead of rebasing from the commit below the current one and then setting the
current one to "edit", we rebase from the current one and insert a "break" after
it. In most cases the behavior is exactly the same as before, except that the
new method also works if the current commit is a merge commit. This is useful if
you want to create a new commit at the very beginning of your branch (by editing
the last commit before your branch).
2023-02-19 10:21:01 +01:00
Stefan Haller
bb856ad7c6 Bump minimum required git version to 2.20
We need this because the next commit is going to make use of the "break"
interactive rebase instruction, which was added in 2.20.
2023-02-19 10:20:14 +01:00
Jesse Duffield
65bd0ab431 migrate undo test 2023-02-19 15:48:09 +11:00
Jesse Duffield
93b9e1bd19 migrate merge conflict undo test 2023-02-19 15:48:09 +11:00
Jesse Duffield
a51f64814c show snapshot of lazygit when test fails for easier investigation 2023-02-19 15:48:09 +11:00
Jesse Duffield
b5e325b0a4 migrate revert merge test 2023-02-19 15:48:09 +11:00
Jesse Duffield
88c76868ba migrate initial open test 2023-02-19 15:48:09 +11:00
Jesse Duffield
13ee0f0a5d migrate open to branches with cli arg test 2023-02-19 15:48:09 +11:00
Jesse Duffield
76a1b501f2 migrate more force push tests 2023-02-19 15:48:09 +11:00
Jesse Duffield
7201a91b69 remove unneeded config setting 2023-02-19 13:51:37 +11:00
Jesse Duffield
31d796ee75 migrate forcePush integration test 2023-02-19 13:38:15 +11:00
Jesse Duffield
b0383ba73a update readme 2023-02-19 12:42:48 +11:00
Jesse Duffield
a3096e720c migrate pullAndSetUpstream test 2023-02-19 12:42:48 +11:00
Jesse Duffield
c599aaed51 migrate pull integration test 2023-02-19 11:48:21 +11:00
Jesse Duffield
f999bbce7c add code generator for creating tests list 2023-02-19 11:48:09 +11:00
Jesse Duffield
bff076c70a rename key to Pull 2023-02-19 11:42:00 +11:00
Stefan Haller
979c3d6278
Fix yellow/red coloring of pushed/unpushed commits in branch commits panel (#2448) 2023-02-19 10:13:46 +11:00
stk
4d39668743 Undo a change made in #2444 that we didn't end up needing 2023-02-18 09:53:31 +01:00
Jesse Duffield
c517d1e0a2 update view cursor when selecting new line in patch explorer view 2023-02-18 10:19:34 +11:00
stk
8cad8cda8f Don't bother setting view cursor pos for staging/stagingSecondary views
Now that the cursor highlight is never shown (see previous commit), there's no
reason to update the cursor position any more.
2023-02-15 21:32:21 +01:00
stk
6b81e6adca Turn highlighting off in staging/stagingSecondary views
There are two reasons for doing this:
1. The view cursor position is often out of sync with the selected line; see
   first commit of this branch.
2. The highlighting is already turned off when the view loses focus, and never
   turned back on thereafter. So just turn it off from the start then.
2023-02-15 21:29:38 +01:00
stk
b499eba1a8 Select next stageable line correctly after staging a range of lines
We already have this very convenient behavior of jumping to the next stageable
line after staging something. However, while this worked well for staging
single lines or hunks, it didn't work correctly when staging a range of lines;
in this case we want to start searching from the first line of the range.
2023-02-15 21:29:00 +01:00
stk
97daec7228 Add test demonstrating selection bug when staging a range of lines
The selected line is not in the right position after staging a range of lines;
see next commit.
2023-02-15 21:28:05 +01:00
stk
ff2a799200 Make SelectedLine/SelectedLineIdx work in staging/stagingSecondary views
While we try to keep the view's cursor position in sync with the context state's
selectedLineIdx (at least when pressing up or down), there are enough situations
where the two run out of sync; for example when initially opening the view, or
after staging a hunk, or when scrolling the view using the wheel. While it would
be possible to fix these situations to keep them always in sync, it doesn't seem
worth it, because the view's cursor position isn't really used for anything
else. So we rather special-case the SelectedLine/SelectedLineIdx functions of
ViewDriver to query the context state's selectedLineIdx directly if it is a
patch explorer context.
2023-02-15 21:22:11 +01:00
Jesse Duffield
31fcec16d9
Merge pull request #2429 from stefanhaller/do-not-autosquash-in-regular-rebase 2023-02-15 20:21:08 +11:00
Jesse Duffield
09178a1276
Merge pull request #2435 from Ryooooooga/return-alt1 2023-02-14 20:53:42 +11:00
Jesse Duffield
3cfdae4116 migrate submodule reset test 2023-02-12 18:12:01 +11:00
Jesse Duffield
d7956c481d migrate submodule enter test 2023-02-12 18:12:01 +11:00
Jesse Duffield
7a3291a1f7 fix test 2023-02-12 18:12:01 +11:00
Jesse Duffield
08c2b46d04 better visibility for tui 2023-02-12 10:47:45 +11:00
Jesse Duffield
1c48842277 migrate submodule remove test 2023-02-12 10:47:45 +11:00
Jesse Duffield
010f6d7f6e migrate submodule add test 2023-02-12 10:47:41 +11:00
Ryooooooga
39c20bc634
chore: change to work return-alt1 on all views 2023-02-11 21:19:47 +09:00
Jesse Duffield
823d95a8c6
Merge pull request #2418 from jesseduffield/feature/copy-remote-branch-to-clipboard 2023-02-11 10:53:31 +11:00
Jesse Duffield
225cd3cc60
Merge pull request #2412 from Ryooooooga/disable-help-on-suggestions 2023-02-11 10:52:49 +11:00
Ryooooooga
984eb95cb7
chore: remove UNKNOWN_VIEW_ERROR_MSG 2023-02-10 21:26:51 +09:00
stk
1da762c295 Explicitly pass --no-autosquash when rebasing
This fixes the problem shown in the previous commit.
2023-02-09 18:21:11 +01:00
stk
e357c00d4d Add an integration test showing a problem with autosquash during normal rebase
For users who have the rebase.autoSquash git config set to true, any regular
rebase will squash fixups in addition to rebasing. Not good -- we'll fix that in
the next commit.
2023-02-09 17:35:20 +01:00
Ryooooooga
1be6c522d8
fix: disable menu key binding while displaying popup 2023-02-09 20:13:41 +09:00
Luka Markušić
8af59c3e6e Copy remote branch name to clipboard 2023-02-09 11:56:12 +01:00
Jesse Duffield
c713d19383
Merge pull request #2417 from stefanhaller/make_integration_tests_more_robust 2023-02-09 21:55:30 +11:00
Jesse Duffield
4f7324bad0
Merge pull request #2413 from stefanhaller/allow-ignore-whitespace-everywhere 2023-02-09 21:55:12 +11:00
Jesse Duffield
5e2254395a fix linting issue 2023-02-09 21:45:14 +11:00
stk
b243f30f48 Disable ~/.gitconfig when running integration tests
A global ~/.gitconfig file can have influence on how integration tests behave;
in my case, I had the option "merge.conflictStyle" set to "diff3", which made
the integration test "cherry_pick_conflict" fail because the diff was different
from what the test expected.

Make this more robust by telling git to ignore the global config file when
running tests.
2023-02-07 17:26:45 +01:00
stk
e57843d947 Add integration test for ignoring whitespace in diff 2023-02-07 13:33:10 +01:00
stk
5bb6198219 Allow ignoring whitespace in diff in commits panel 2023-02-07 12:14:29 +01:00
stk
bbaeab68e1 Better redrawing after toggling "ignore whitespace"
There's no need for refreshing anything; all that's needed is to re-focus the
selected list item. This way it will also work in other panels, which we are
about to add in the next commit.
2023-02-07 12:09:17 +01:00
stk
946c1dff99 Cleanup: remove extra space 2023-02-07 12:09:15 +01:00
stk
d838965a41 Make "Toggle whitespace in diff view" a global key binding
Since it is going to affect a number of views later in the branch, it's easier
to make it global than to find all views that are affected.
2023-02-07 09:25:38 +01:00
Jesse Duffield
469938ee9b
Merge pull request #2342 from knutwalker/override-git-sequence-editor-for-rebase 2023-02-05 13:52:35 +11:00
Ryooooooga
7bd0c779c7
fix: fix default color to be white 2023-02-03 23:36:59 +09:00
Jesse Duffield
c0e805718d
Merge pull request #2358 from phanithinks/#2319_default_screen_mode 2023-02-01 21:52:09 +11:00
Phanindra kumar Paladi
35c5f940a4 Fixing indent in user_config.go 2023-02-01 09:50:37 +05:30
Jesse Duffield
368d6437b8
Merge pull request #2373 from phanithinks/clipboard_patch_option_2357 2023-01-31 17:02:46 +11:00
Phanindra Kumar Paladi
01f0efb997
Merge branch 'master' into #2319_default_screen_mode 2023-01-29 10:25:14 +05:30
Phanindra kumar Paladi
d0851113d1 Skipping copy_patch_to_clipboard test case 2023-01-29 10:20:56 +05:30
Phanindra kumar Paladi
df58c75ca4 Fixed breaking integrtion tests(old) 2023-01-29 10:03:59 +05:30
Jesse Duffield
d8c7d47067
Merge pull request #2395 from stefanhaller/trailing-lf-when-copying-diff-lines 2023-01-29 14:19:29 +11:00
Jesse Duffield
f79a8c281f
Merge pull request #2398 from Ryooooooga/fix-detached-head
fix https://github.com/jesseduffield/lazygit/issues/1467
2023-01-29 14:19:05 +11:00
Jesse Duffield
996a1e469f
Merge pull request #2401 from Ryooooooga/disable-log-order 2023-01-29 14:05:31 +11:00
Jesse Duffield
18db5eafd4
Merge pull request #2384 from stefanhaller/disable-reword-in-editor-prompt 2023-01-29 13:43:23 +11:00
Ryooooooga
2183c157d4
feat(log): allow to disable git.log.order 2023-01-28 21:17:05 +09:00
Ryooooooga
5dec080719
fix: fix RefName of detached HEAD to works in Chinese 2023-01-27 20:45:18 +09:00
stk
fc38e3b54d Don't omit final line feed when copying diff lines to clipboard 2023-01-26 10:30:05 +01:00
stk
93d845cb01 Cleanup: remove unused function RenderPlain 2023-01-26 10:30:05 +01:00
stk
67fb28e2b8 Add user config gui.skipRewordInEditorWarning 2023-01-26 09:01:22 +01:00
Jesse Duffield
679b0456f3
Merge pull request #2388 from Ryooooooga/remove-unused-texts 2023-01-26 13:46:01 +11:00
Jesse Duffield
f7f24dbfc1 better test 2023-01-26 13:25:56 +11:00
Ryooooooga
069af50f50
chore(i18n): remove unused texts 2023-01-24 21:24:46 +09:00
Phanindra kumar Paladi
c6929c36ae Corrected test assert 2023-01-23 15:53:21 +05:30
Phanindra kumar Paladi
e8f4508cba Fixed integration test case 2023-01-23 15:48:43 +05:30
stk
b8d33b8f7b Extract helper function doRewordEditor
No behavior change, just a preparation for the next commit.
2023-01-22 15:59:32 +01:00
Phanindra kumar Paladi
946b8b5670 Fixed the lable in the custom_patch_options_panel.go 2023-01-18 21:13:31 +05:30
Phanindra kumar Paladi
d479a41cad Added Integration testing the copy to clipboard in patchbuilding 2023-01-18 21:05:40 +05:30
Ryooooooga
7149cfeb11
fix: fix ReplacePlaceholderString 2023-01-18 20:56:22 +09:00
Phanindra kumar Paladi
265cdde7bc Fixed typo 2023-01-18 10:14:48 +05:30
Phanindra kumar Paladi
e87fc4a229 Change key of clipboard copy 2023-01-18 05:50:47 +05:30
Phanindra kumar Paladi
f6f82091bc Added copy to clipboard option to the patch options 2023-01-17 09:07:07 +05:30
Phanindra kumar Paladi
a11e91e651 replaced 'screenMode' to 'windowSize' in config 2023-01-16 20:07:21 +05:30
Phanindra kumar Paladi
f4ccb68464 Added screenMode configuration to gui configuration 2023-01-11 16:51:46 +05:30
Ryooooooga
21f8857d36
refactor: simplify log format 2023-01-06 11:15:33 +09:00
Ryooooooga
965f7bfcb2
feat(config): change git.commit.verbose to accept "default" 2023-01-06 11:15:33 +09:00
Ryooooooga
00b922604a
fix: fix goroutine leaks 2023-01-06 10:51:09 +09:00
Paul Horn
bc7873144e
Override GIT_SEQUENCE_EDITOR for rebase commands
I noticed that `$GIT_SEQUENCE_EDITOR` is overridden in `PrepareInteractiveRebaseCommand`
but not in `runSkipEditorCommand`.

Before this change, some commands such as `SquashAllAboveFixupCommits`
would not work when a different sequence editor, e.g.
[git-interactive-rebase-tool](https://github.com/MitMaro/git-interactive-rebase-tool)
is configured.
2023-01-01 04:37:19 +01:00
Jesse Duffield
1bb138c79c
Merge pull request #2341 from knutwalker/commit-verbose 2023-01-01 13:57:49 +11:00
Paul Horn
d98130c3ef
Add option to allow --verbose commit in editor commits 2023-01-01 02:01:04 +01:00
Ryooooooga
7c5f33980f
fix: improve backward compatibility 2022-12-31 22:47:21 +09:00
Jesse Duffield
5c42e1a5dc defend against possible nil function 2022-12-30 22:49:08 +11:00
Jesse Duffield
6c3671f807 appease linter 2022-12-30 22:47:56 +11:00
Jesse Duffield
89ba3a38b4 migrate filter path tests 2022-12-30 22:42:32 +11:00
Jesse Duffield
6f709456fe migrate test for rename branch and pull 2022-12-30 22:42:32 +11:00
Jesse Duffield
277ca706eb migrate fetchPrune integration test 2022-12-30 22:42:32 +11:00
Jesse Duffield
8a1c763942 more git ignore stuff in integration test 2022-12-30 22:42:32 +11:00
Ryooooooga
e00f248cf7
feat: support for push --force-if-includes 2022-12-30 20:01:15 +09:00
Ryooooooga
cd9111837e
feat: add GitVersion struct 2022-12-30 20:01:14 +09:00
Ryooooooga
41222f07ed
chore(gui): remove unused gitConfig 2022-12-30 20:01:14 +09:00
Jesse Duffield
1da0427e3a appease linter 2022-12-30 12:18:59 +11:00
Jesse Duffield
af5b3be286 integrate snake game into lazygit 2022-12-30 12:18:59 +11:00
Jesse Duffield
81281a49b2 add snake game 2022-12-29 14:32:33 +11:00
Jesse Duffield
0300bfdec2 update readme 2022-12-28 15:35:12 +11:00
Jesse Duffield
f770a6246b rename function 2022-12-28 14:19:56 +11:00
Jesse Duffield
5e9a897348 migrate ignore gitignore integration test 2022-12-28 13:35:07 +11:00
Jesse Duffield
f2d0f362d4 migrate discard staged changes test 2022-12-28 13:24:23 +11:00
Jesse Duffield
ae07cf5506 migrate discard old file change test 2022-12-28 13:01:32 +11:00
Jesse Duffield
f3fa9ec2d1
Merge pull request #2311 from wakaka6/add_return_alt1 2022-12-28 11:54:16 +11:00
Jesse Duffield
e661916ba6
Merge pull request #2331 from Ryooooooga/remove-unused-config 2022-12-28 11:43:08 +11:00
Jesse Duffield
14a974742f rename from asserter to driver 2022-12-28 11:27:48 +11:00
Jesse Duffield
9fef4447b6 move popup assertions into a struct 2022-12-28 11:00:22 +11:00
Jesse Duffield
7aa843c75a create actions struct 2022-12-28 10:54:38 +11:00
Jesse Duffield
a27092a7ad remove broken test 2022-12-28 10:43:14 +11:00
Jesse Duffield
a3450dfdfc fix suggestions test 2022-12-28 10:41:42 +11:00
Jesse Duffield
b4e9806352 fix test 2022-12-28 10:32:36 +11:00
Jesse Duffield
f495945b87 fix bug 2022-12-28 10:29:32 +11:00
Jesse Duffield
47de61b57c update integration test readme 2022-12-28 10:23:59 +11:00
Jesse Duffield
06c878c051 minor changes 2022-12-28 10:23:54 +11:00
Jesse Duffield
ed93e0a2b0 remove dependency on model 2022-12-27 22:52:20 +11:00
Jesse Duffield
c5050ecabd move shell into test driver 2022-12-27 21:47:37 +11:00
Jesse Duffield
78b495f50a rename input to t 2022-12-27 21:35:36 +11:00
Jesse Duffield
53e06b71ae add tap function 2022-12-27 21:26:18 +11:00
Jesse Duffield
b166b8f776 combine assert and input structs, clean up interface 2022-12-27 21:26:18 +11:00
Jesse Duffield
c5c9f5bb94 rename 2022-12-27 21:26:18 +11:00
Jesse Duffield
09e80e5f2a better namespacing for assertions 2022-12-27 21:26:18 +11:00
Jesse Duffield
be30cbb375 add view asserter getter struct 2022-12-27 21:26:18 +11:00
Jesse Duffield
b64f55518b refactor commit message stuff in integration tests 2022-12-27 21:26:18 +11:00
Jesse Duffield
926ed7b9b2 more refactoring of popup stuff 2022-12-27 21:26:18 +11:00
Jesse Duffield
8052ac4fd6 add prompt asserter 2022-12-27 21:26:18 +11:00
Jesse Duffield
c976839a63 refactor prompt handling in integration tests 2022-12-27 21:26:17 +11:00
Ryooooooga
ac127f017e
chore(config): remove unused config 2022-12-26 16:14:30 +09:00
Jesse Duffield
cd418ec929
Merge pull request #2330 from jesseduffield/yet-more-test-migrations 2022-12-26 17:59:30 +11:00
Jesse Duffield
8c89069965 update readme 2022-12-26 17:51:19 +11:00
Jesse Duffield
09db4c4397 allow checking if line is selected in Lines and TopLines methods 2022-12-26 17:45:10 +11:00
Jesse Duffield
96310288ee allow chaining matchers 2022-12-26 17:15:33 +11:00
Jesse Duffield
c841ba8237 add switch-to-view methods 2022-12-26 16:49:54 +11:00
Jesse Duffield
9a6f21ce42 cleaner test assertions 2022-12-26 12:20:13 +11:00
Jesse Duffield
fa0414777f rename SelectedLine to CurrentLine in tests 2022-12-26 10:42:19 +11:00
Jesse Duffield
5d2584a188 introduce ViewLines functions 2022-12-25 11:38:00 +11:00
Jesse Duffield
fb15a2f4f8
Merge pull request #2326 from Ryooooooga/fix-scroll
fix https://github.com/jesseduffield/lazygit/issues/2309
2022-12-24 19:20:23 +11:00
Jesse Duffield
b623ecf898 add helper functions for popups in tests 2022-12-24 19:15:59 +11:00
Jesse Duffield
aedfce2845 refactor to not have Match at the start of assert method names, because it reads better that way 2022-12-24 19:14:52 +11:00
Jesse Duffield
fa97b0c76e move background code into its own file 2022-12-24 19:14:52 +11:00
Jesse Duffield
13639ac924 faster test 2022-12-24 19:05:46 +11:00
Jesse Duffield
5c11b1ecb7 discard changes integration test 2022-12-24 19:05:46 +11:00
Jesse Duffield
7c7f7bf9b9 migrate diffing integration tests 2022-12-21 22:52:23 +11:00
Jesse Duffield
57a1817deb don't kill long-running sandbox sessions 2022-12-21 22:51:39 +11:00
wakaka6
b6c73b3620 Change null as the default return-alt1 2022-12-20 21:39:24 +08:00
Ryooooooga
7bdba1abe4
fix(#2309): fix diff scroll 2022-12-20 22:25:49 +09:00
Jesse Duffield
f910b42c9c migrate confirm-on-quit integration test 2022-12-20 23:08:39 +11:00
Jesse Duffield
dde70486a1 apply user config changes in sandbox mode 2022-12-20 23:07:43 +11:00
Jesse Duffield
186b7197e4 clean up some integration test stuff 2022-12-20 22:54:00 +11:00
Jesse Duffield
e3c6738535 remove snapshot approach for new integration tests 2022-12-20 22:45:03 +11:00
Jesse Duffield
bc4ace8357 add commit revert integration test 2022-12-20 22:45:02 +11:00
Jesse Duffield
b40190bd94 add multi-line commit integration test 2022-12-20 22:45:02 +11:00
Jesse Duffield
5679efe174
Merge pull request #2239 from bdach/u2f-key-prompts
close https://github.com/jesseduffield/lazygit/issues/2230
2022-12-20 21:44:29 +11:00
Jesse Duffield
b13cfdfea0 migrate branch reset integration test 2022-12-19 22:38:32 +11:00
navazjm
3a1921cab0 updated rebase confirmation message 2022-12-16 17:36:37 -06:00
wakaka6
6386a03805 add return alt1 2022-12-11 15:44:25 +08:00
Arnaud PERALTA
50b0d85cd3 integration tests for commit without pre-commit hooks in staging files menu 2022-12-01 09:12:18 +11:00
Arnaud PERALTA
bfcbf228bf commit integrations test with window name's assertion 2022-12-01 09:12:18 +11:00
Arnaud PERALTA
87e0f6b92d integration tests for commit in staged files and unstaged files menus 2022-12-01 09:12:18 +11:00
Arnaud PERALTA
0af63daf18 workingtree controller fixed with new references for commit in staged menu 2022-12-01 09:12:18 +11:00
Arnaud PERALTA
8b894d7bf5 wip: commit logic in helper and reported in files/staging controllers 2022-12-01 09:12:18 +11:00
Jesse Duffield
65d6d7fb2d fix ignore file keybinding 2022-11-30 19:36:35 +11:00
Bartłomiej Dach
1a1f042f49 Add credential prompts for U2F-backed SSH keys
The 8.2 release of OpenSSH added support for FIDO/U2F hardware
authenticators, which manifests in being able to create new types of SSH
key, named `ecdsa-sk` nad `ed25519-sk`. This is relevant to lazygit,
as those SSH keys can be used to authorise git operations over SSH, as
well as signing git commits. Actual code changes are required for
correct support, as the authentication process for these types of keys
is different than the process for types supported previously.

When an operation requiring credentials is initialised with a U2F
authenticator-backed key, the first prompt is:

	Enter PIN for ${key_type} key ${path_to_key}:

at which point the user is supposed to enter a numeric (and secret) PIN,
specific to the particular FIDO/U2F authenticator using which the SSH
keypair was generated. Upon entering the correct key, the user is
supposed to physically interact with the authenticator to confirm
presence. Sometimes this is accompanied by the following text prompt:

	Confirm user presence for key ${key_type} ${key_fingerprint}

This second prompt does not always occur and it is presumed that the
user will know to perform this step even if not prompted specifically.
At this stage some authenticator devices may also begin to blink a LED
to indicate that they're waiting for input.

To facilitate lazygit's interoperability with these types of keys, add
support for the first PIN prompt, which allows "fetch", "pull", and
"push" git operations to complete.
2022-11-30 13:34:32 +11:00
Jesse Duffield
f96246c038
Merge pull request #2284 from arnaudperalta/defaultfgcolor-config
Closes https://github.com/jesseduffield/lazygit/issues/2279
2022-11-26 13:41:41 +11:00
Luka Markušić
b3d086bdc1 Resolve the prompt just before using it
In case a later command depends on a prompt input from a previous one we
need to evaluate it only after the previous prompt has been confirmed.
2022-11-25 22:46:36 +01:00
Nils Andresen
245563bc99 (#2288) quote remoteName before compiling regex
If the remote name contains special regex-chars,
the compilation of the regex might fail.
Quoting the remoteName ensures that all special chars
in the remoteName are properly escaped before compiling
the regex.
2022-11-24 12:56:28 +00:00
Arnaud PERALTA
37997dcbcd [#2279] defaultFgColor entry in theme config 2022-11-21 21:48:18 +01:00
Jesse Duffield
de22238589
Merge pull request #2224 from Ryooooooga/ambiguous-branch 2022-11-14 19:09:37 +11:00
Ryooooooga
52a2e4c1dc fix: fix ambiguous branch name
test: add an integration test for checkout branch by name

fix: fix full ref name of detached head

refactor: refactor current branch loader

chore: use field name explicitly
2022-11-14 19:05:07 +11:00
Jesse Duffield
e953659ebf
Merge pull request #2273 from artvi/fix/show_loading_state_when_bottomline_disabled 2022-11-14 19:01:26 +11:00
Jesse Duffield
b33ec5a050
Merge pull request #1980 from ajhynes7/stash-untracked-changes 2022-11-14 18:46:53 +11:00
sudoburt
3e73dacce3 Merge loaders package into git_commands package 2022-11-14 18:11:45 +11:00
Andrew Hynes
684d1e955e lint: try deleting blank line 2022-11-13 19:51:30 -03:30
Jesse Duffield
f67824b349
Merge pull request #2265 from nitinmewar/gitVersion 2022-11-14 10:00:58 +11:00
Art V
c53752a5f9 [#2258] hide options panel when showBottom line is disabled 2022-11-14 01:04:56 +03:00
Art V
dc163bfc4d [#2258] show bottom line when having status 2022-11-14 00:53:55 +03:00
Andrew Hynes
3c436b3457 lint: delete unused argument from handleStashSave 2022-11-13 11:02:06 -03:30
nitin mewar
526d02de1c
added gitVersion for version flag
Signed-off-by: nitin mewar <nitinmewar28@gmail.com>
2022-11-13 19:27:12 +05:30
Jesse Duffield
a905a28e41 better hiding of underscores 2022-11-13 14:46:13 +11:00
Jesse Duffield
5964472ec1 hide underscores more 2022-11-13 14:41:43 +11:00
Jesse Duffield
d26350502c stop switching focus to commits view when resetting 2022-11-13 03:26:50 +00:00
Jesse Duffield
df3cd941d7 use tempdir in tests to prevent polluting worktree 2022-11-13 14:10:21 +11:00
Jesse Duffield
863a65cf94 disable underscores in vscode while we wait for underscore glitch to be fixed 2022-11-13 13:41:49 +11:00
Jesse Duffield
fbac05fff7
Update README.md 2022-11-13 11:54:37 +11:00
Andrew Hynes
9e91aa8b43 fix: delete duplicate import 2022-11-12 18:11:34 -03:30
Andrew Hynes
7977c2deb5 fix: delete duplicate line 2022-11-12 18:10:34 -03:30
Andrew Hynes
d7fb441a3c refactor: sort list of integration tests 2022-11-12 18:09:55 -03:30
Jesse Duffield
91f83c6be7 use better colour defaults 2022-11-12 18:09:16 -03:30
Jesse Duffield
f98b2edae5 fix broken CI (see https://vielmetti.typepad.com/logbook/2022/10/git-security-fixes-lead-to-fatal-transport-file-not-allowed-error-in-ci-systems-cve-2022-39253.html)
try this

WIP
2022-11-12 18:09:15 -03:30
Jesse Duffield
97ced9e14f fix could-not-access error 2022-11-12 18:09:15 -03:30
Andrew Hynes
66a253916e test: add more assertions 2022-11-12 18:09:15 -03:30
nitin mewar
188890fc49
added gitVersion to version flag
Signed-off-by: nitin mewar <nitinmewar28@gmail.com>
2022-11-12 16:00:24 +05:30
Jesse Duffield
1ac3ae1ad1 use better colour defaults 2022-11-12 14:59:15 +11:00
Jesse Duffield
52316e628e fix broken CI (see https://vielmetti.typepad.com/logbook/2022/10/git-security-fixes-lead-to-fatal-transport-file-not-allowed-error-in-ci-systems-cve-2022-39253.html)
try this

WIP
2022-11-12 10:53:12 +11:00
Jesse Duffield
e8b97c9fe2 fix could-not-access error 2022-11-11 12:30:14 +11:00
Andrew Hynes
a47e72892a
Merge branch 'master' into stash-untracked-changes 2022-11-01 16:08:34 -02:30
Ryooooooga
14ec0cd92e
feat: allow null in keybindings 2022-10-18 22:20:03 +09:00
Ryooooooga
2ec0b671e6
test: update stash/rename integration test 2022-10-16 16:26:17 +09:00
Ryooooooga
3103398e31
chore: refactor rename stash 2022-10-16 09:30:04 +09:00
Ryooooooga
e78e829e3a
test: add an integration test for rename stash 2022-10-16 09:30:03 +09:00
Ryooooooga
eceb3a5aa6
chore: refactor rename stash 2022-10-16 09:12:43 +09:00
Ryoga
8a9eefa4d2
chore: remove unnecessary space
Co-authored-by: Jesse Duffield <jessedduffield@gmail.com>
2022-10-16 09:12:43 +09:00
Ryooooooga
11316b7a48
feat: add rename stash 2022-10-16 09:12:42 +09:00
Jesse Duffield
8f3ccd07db
Merge pull request #2223 from gusandrioli/use-lazycore-to-get-dir 2022-10-15 10:05:03 -07:00
Gustavo Andrioli
39e84e13f4 Use lazycore utils: Clamp and GetLazyRootDirectory 2022-10-15 13:55:44 -03:00
Ryooooooga
0c3eab4059
fix: fix initial origin of commit message panel 2022-10-15 20:09:23 +09:00
Ryooooooga
d90fedfbf8
feat: add stash icon 2022-10-14 21:58:58 +09:00
Ryooooooga
a4239c7a37
fix: fix stash with empty message 2022-10-13 22:23:56 +09:00
Jesse Duffield
fc0b14edef
Update README.md 2022-10-11 08:40:35 -07:00
Jesse Duffield
dba0edb998 use boxlayout from lazycore 2022-10-09 08:31:14 -07:00