Commit graph

1333 commits

Author SHA1 Message Date
Jesse Duffield 119d5be1a4 move into list context file 2020-08-23 14:29:18 +10:00
Jesse Duffield fcdc0174d9 rename context file 2020-08-23 14:29:18 +10:00
Jesse Duffield 4f4df8f9cc move context specific keybindings into context file 2020-08-23 14:29:18 +10:00
Jesse Duffield c730271e09 minor update 2020-08-23 14:29:18 +10:00
Jesse Duffield ac0eedda91 lots more stuff 2020-08-23 14:29:18 +10:00
Jesse Duffield e87635295a dont check for error when sending view to bottom 2020-08-23 14:29:18 +10:00
Jesse Duffield 62a662054b hide view if not specified in dimensions object 2020-08-23 14:29:18 +10:00
Jesse Duffield dc183c0d82 no need to set views on top anymore 2020-08-23 14:29:18 +10:00
Jesse Duffield 08e039bea9 return nil when no file selected 2020-08-23 14:29:18 +10:00
Jesse Duffield 88d329c52a WIP 2020-08-23 14:29:18 +10:00
Jesse Duffield fd8a455aff small things
WIP
2020-08-23 14:29:18 +10:00
Jesse Duffield ed4574bda9 standardise getting selected item 2020-08-23 14:29:18 +10:00
Jesse Duffield c9ae54a8c8 remove previous view 2020-08-23 14:29:18 +10:00
Jesse Duffield 6fb83b740b WIP 2020-08-23 14:29:18 +10:00
Jesse Duffield 7f89113245 WIP 2020-08-23 14:29:18 +10:00
Jesse Duffield 0ea0c48631 WIP 2020-08-23 14:29:18 +10:00
Jesse Duffield cec4cb48cb centralise some list view code 2020-08-23 14:29:18 +10:00
Jesse Duffield 1716de3b59 remove space as keybinding for confirmation panel 2020-08-17 20:30:10 +10:00
Jesse Duffield 44d8b3e8f3 allow overriding default confirm/escape keybindings 2020-08-17 18:22:57 +10:00
Jesse Duffield 4f4bb40ea6 support opening lazygit outside a git directory 2020-08-16 22:59:58 +10:00
Jesse Duffield db826b3c87 add keybinding to create new branch off of commit
retain focus in commits panel

surface prompt errors

better description
2020-08-16 22:24:54 +10:00
Jesse Duffield be658e7d64 support multi word editor config 2020-08-16 20:37:40 +10:00
Jesse Duffield 53f06f6a4e prefill commit reword editor 2020-08-16 20:37:24 +10:00
Jesse Duffield c8add47fe7 move cursor to right when using auto prefix 2020-08-16 18:44:39 +10:00
Jesse Duffield 28cd827cea better popups 2020-08-16 09:07:54 +10:00
Jesse Duffield ffda2839e0 remove anonymous reporting popup cos we dont do it anymore anyway 2020-08-16 09:07:54 +10:00
Jesse Duffield 28208e8364 refactor list view 2020-08-15 18:01:43 +10:00
Jesse Duffield 9b7a6934b3 more removing of g 2020-08-15 18:01:43 +10:00
Jesse Duffield 15229bbdab more removing of g and v 2020-08-15 18:01:43 +10:00
Jesse Duffield 63e6eea9ec files view 2020-08-15 18:01:43 +10:00
Jesse Duffield 50d5b9e8e7 status view 2020-08-15 18:01:43 +10:00
Jesse Duffield cc872b0444 menu view 2020-08-15 18:01:43 +10:00
Jesse Duffield 17b84e09c0 fix remote branches select sig 2020-08-15 18:01:43 +10:00
Jesse Duffield 43f8bae267 fix remotes select sig 2020-08-15 18:01:43 +10:00
Jesse Duffield b0fe963f8a fix branches select sig 2020-08-15 18:01:43 +10:00
Jesse Duffield 0822a9296c rename 2020-08-15 18:01:43 +10:00
Jesse Duffield d9fa02c53b clean up interface for popup panels 2020-08-15 18:01:43 +10:00
Jesse Duffield c44ee71ad4 update cheatsheet 2020-08-15 11:41:37 +10:00
Jesse Duffield 826d1660c9 move patch stuff into its own package 2020-08-15 11:41:37 +10:00
Jesse Duffield 291a8e4de0 allow opening files on the selected line in the staging panel 2020-08-15 11:41:37 +10:00
Jesse Duffield f02ccca0e0 add specs to boxlayout package 2020-08-15 09:04:40 +10:00
Jesse Duffield 1e12a60b34 move box layout stuff into its own package 2020-08-15 09:04:40 +10:00
Jesse Duffield 8430b04492 allow configurable main panel split 2020-08-13 21:50:23 +10:00
Jesse Duffield 35b72420ad support accordian mode i.e. expanding focused side panels 2020-08-13 21:50:23 +10:00
Jesse Duffield 28ba142fd6 set minimum confirmation box width 2020-08-13 21:50:23 +10:00
Jesse Duffield b39bcd5c61 more lenient for switching into portrait mode 2020-08-13 21:50:23 +10:00
Jesse Duffield 1fd35f3824 centralise logic for information section
WIP
2020-08-13 21:50:23 +10:00
Jesse Duffield e73937c2bd more work on new layout functionality 2020-08-13 21:50:23 +10:00
Jesse Duffield b51ad4fcea softcode cyclable views 2020-08-13 21:50:23 +10:00
Jesse Duffield d1a7c7283f some more changes 2020-08-13 21:50:23 +10:00
Jesse Duffield b641ecdc74 move some things around 2020-08-13 21:50:23 +10:00
Jesse Duffield 13f567ff4c add portrait mode for when the window is really tall 2020-08-13 21:50:23 +10:00
Jesse Duffield 771d4b5811 refactor how we handle layouts 2020-08-13 21:50:23 +10:00
Jesse Duffield 3c944e0351 support force push after failure 2020-08-12 21:11:24 +10:00
Jesse Duffield e26af258d6 allow rebasing onto remote branch 2020-08-12 20:58:34 +10:00
Jesse Duffield 76e5ec6d45 immediately quit when pressing q in diff or filter mode 2020-08-12 20:44:29 +10:00
Jesse Duffield 27cd12e2d9 accept umlaut keybindings 2020-08-12 20:07:56 +10:00
Jesse Duffield bfaf1c4f70 use remote prefixed branch name when merging remote branch 2020-08-12 20:07:46 +10:00
Jesse Duffield 2d18d089ce allow entering a password when fast forwarding another branch 2020-08-12 18:47:16 +10:00
Jesse Duffield 9c7e40906d rename arg 2020-08-12 18:47:16 +10:00
Jesse Duffield 401f291c3b lowercase function name 2020-08-12 18:47:16 +10:00
Jesse Duffield bea2ae5ff5 stop pulling in general 2020-08-12 18:47:16 +10:00
Jesse Duffield f49e4946f2 minor refactor 2020-08-12 18:47:16 +10:00
Jesse Duffield 8ff74072f8 update config 2020-08-12 18:47:16 +10:00
Jesse Duffield fcd5aea04e support multiple modes of git pull 2020-08-12 18:47:16 +10:00
Jesse Duffield 1c0da2967c update naming 2020-08-12 18:47:16 +10:00
Jesse Duffield 1b78a42b80 pass callback directly 2020-08-12 18:47:16 +10:00
Jesse Duffield 79e73d2eff minor cleanup
WIP
2020-08-12 18:47:16 +10:00
Jesse Duffield 23299f88e9 simplify patch modifier interface 2020-08-09 15:42:20 +10:00
mjarkk ef744e45c1 Update dutch translations 2020-08-08 14:25:11 +10:00
Jesse Duffield 660cc2f3d1 follow cursor when staging and unstaging a file rename 2020-08-07 18:59:56 +10:00
Jesse Duffield 469ac116ef allow renames to be discarded 2020-08-07 18:01:26 +10:00
Axel Navarro d49e75bd3e Add tab keybinding in commit message 2020-07-26 16:28:01 +10:00
Jesse Duffield f4718a9047 allow editing commit files 2020-07-21 18:24:39 +10:00
Jesse Duffield 7d5fe4b66c better logic for staging a renamed file 2020-07-19 14:11:32 +10:00
Jesse Duffield 845c80721f Decouple escaping from quitting
When a user is not entering text into a prompt, the 'q' key should immediately
quit the application. On the other hand, the 'esc' key should cancel/close/go-back
to the previous context.

If we're at the surface level (nothing to cancel/close) and the user hits the
escape key, the default behaviour is to close the app, however we now have a
`quitOnTopLevelReturn` config key to override this.

I actually think from the beginning we should have made this config option
default to false rather than true which is the default this PR gives it,
but I don't want to anger too many people familiar with the existing behaviour.
2020-07-18 20:00:48 +10:00
Jesse Duffield a9cc321981 prompt to create new branch if branch not found 2020-07-17 09:20:50 +10:00
Jesse Duffield 6349214f00 prompt to commit all files if committing with no staged files 2020-07-17 09:01:40 +10:00
Randshot 96f821b841 fix TestGitCommandCommit test
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-15 09:41:16 +10:00
Randshot 964e3872c1 revert changes to 'os_default_platform.go' and 'os_windows.go'
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-15 09:41:16 +10:00
Randshot 5dfa26ea8b use strconv for quoting in 'GitCommand.Commit' and 'OSCommand.ShellCommandFromString'
use raw strings for the escaped quotes in 'os_default_platform.go' and 'os_windows.go'

Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-15 09:41:16 +10:00
Randshot 014e06eefd factor out duplicate code into 'ShellCommandFromString'
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-14 08:26:53 +10:00
Randshot 39a2122dc0 add quotes around the git commit command on non-windows systems
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-14 08:26:53 +10:00
Randshot 570d27ffaa
Merge branch 'master' into add-overrideGpg-switch
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-12 11:47:35 +02:00
Randshot 21e478dd59 fix 'Amend commit using gpg' test
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-12 14:06:53 +10:00
Randshot d14fb36cb9 fix 'Commit using gpg' test
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-12 14:06:53 +10:00
Randshot 19a808642f fix platform specific quoting when using GPG
fixes #620

Signed-off-by: Randshot <randshot@norealm.xyz>
2020-07-12 14:06:53 +10:00
Jasper Mendiola e921ba0910 Remove getLocalGitConfig 2020-07-10 18:55:00 +10:00
Jasper Mendiola 0f5a073d57 Rename appconfig to config 2020-07-10 18:55:00 +10:00
Jasper Mendiola cb0bdd89c0 fix tests 2020-07-10 18:55:00 +10:00
Jasper Mendiola e89bf5d06b add oneline-graph 2020-07-10 18:55:00 +10:00
Randshot 65e955c622
add overrideGpg switch, which prevents lazygit from spawning a separate process when using GPG
Signed-off-by: Randshot <randshot@norealm.xyz>
2020-05-30 23:39:07 +02:00
Dima Kotik e73f4c6b7e Better CWD check for a git repository. 2020-05-30 00:31:58 +10:00
Jesse Duffield cf5cefb2d6 allow user to scroll themselves inside merge panel 2020-05-19 18:44:53 +10:00
Jesse Duffield 36ac764133 fix race condition when scrolling to merge conflict 2020-05-19 18:05:14 +10:00
Jesse Duffield 003e45d2f5 allow creating branches off of remote branches 2020-05-19 09:57:37 +10:00
Jesse Duffield 04e93317b8 fix https://github.com/jesseduffield/lazygit/issues/848 2020-05-19 09:57:37 +10:00
Jesse Duffield f8dedb710b additional password prompt regex 2020-05-15 22:18:07 +10:00
Jesse Duffield 1c259f69f6 check if user has configured to push to current by default 2020-05-15 21:41:23 +10:00
Jesse Duffield 913f17ee3e prevent flicker from bolding background of selected line 2020-05-15 21:12:12 +10:00
Jesse Duffield 267730bc00 standardise how we handle background colours 2020-05-13 21:24:25 +10:00
Gary Yendell 7ed8ee160d Add option to split patch into a new commit
Add GetHeadCommitMessage to read the subject of the HEAD commit
Create PullPatchIntoNewCommit based heavily on PullPatchIntoIndex to
  split the current patch from its commit and apply it in a separate
  commit immediately after.

WIP to Squash - Fill format string with format string

WIP
2020-05-09 11:59:37 +10:00
Tyler Davis b5404c6159 fix issue #640 add catCmd and OS-specific values
Add a catCmd to the Platform struct and set the value to "cat" for
non-windows builds and "type" for windows builds.
2020-04-27 19:14:18 +10:00
Jesse Duffield cc13ae252a totally screwed up the last commit 2020-04-22 11:21:20 +10:00
Jesse Duffield b97f844a3e handle comments in todo files 2020-04-22 11:15:41 +10:00
Glenn Vriesman 1d6eb015c1 fix: fixed yaml typo
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-04-22 08:52:08 +10:00
Jesse Duffield 07a8ae8c3e add handler for searching in menu 2020-04-21 19:28:31 +10:00
Jesse Duffield f05a5e531e warnings for stash actions 2020-04-20 18:57:08 +10:00
Kristijan Husak 68586ec49a Handle regex compilation errors and show them to the user. 2020-04-20 18:47:50 +10:00
Kristijan Husak 6cf75af0af Add option to set predefined commit message prefix. Fixes #760. 2020-04-20 18:47:50 +10:00
Jesse Duffield 304607ae5d support configurable merge args 2020-04-20 18:40:49 +10:00
Jesse Duffield e9f28855a2 add bugfix git flow option 2020-04-20 18:31:13 +10:00
Glenn Vriesman 66d7d5f312 fix: fixed gpg breaking terminal
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-04-20 18:30:57 +10:00
Jesse Duffield 59734f1069 whoops 2020-04-17 09:27:23 +10:00
Jesse Duffield 2974a57943 support copying stuff to clipboard 2020-04-15 10:44:56 +00:00
Jesse Duffield 97d7a8ad0c add reverse patch option 2020-03-29 21:53:25 +00:00
Jesse Duffield b89ba365d0 unbold diff info 2020-03-29 18:31:19 +11:00
Jesse Duffield 47ff388549 some more UI logic 2020-03-29 18:26:24 +11:00
Jesse Duffield 647ab9bf0f better keybinding 2020-03-29 18:26:24 +11:00
Jesse Duffield 76431b4673 simplify things 2020-03-29 18:26:24 +11:00
Jesse Duffield be0dd29e3a don't support files until we understand the use case 2020-03-29 18:26:24 +11:00
Jesse Duffield 40fbce91ce add new diff mode
WIP

WIP

WIP

WIP

WIP

WIP

WIP
2020-03-29 18:26:24 +11:00
Jesse Duffield 33d287d2f0 remove old diff mode code 2020-03-29 18:26:24 +11:00
Jesse Duffield 9eb1cbc514 reset main's origin when cycling views 2020-03-29 02:36:01 +00:00
Jesse Duffield 40b173118a fix conflict race condition 2020-03-29 02:36:01 +00:00
Jesse Duffield 8822c409e2 split reflog commits into ReflogCommits and FilteredReflogCommits 2020-03-29 11:37:29 +11:00
Jesse Duffield aa750c0819 load reflog commits manually when in filter mode for branches panel 2020-03-29 11:37:29 +11:00
Jesse Duffield d90d9d7330 reset state on each Run() call 2020-03-29 11:37:29 +11:00
Jesse Duffield a8db672ffb refactor gui.go 2020-03-29 11:37:29 +11:00
Jesse Duffield 76b66ae26f properly reset gui state when restarting or coming back from a subprocess 2020-03-29 11:37:29 +11:00
Jesse Duffield a2790cfe8e rename to filtered mode 2020-03-29 11:37:29 +11:00
Jesse Duffield 624ae45ebb allow scoped mode where the commits/reflog/stash panels are scoped to a file
WIP

restrict certain actions in scoped mode

WIP
2020-03-29 11:37:29 +11:00
Jesse Duffield 2756b82f57 fix width of half screen mode 2020-03-29 11:37:29 +11:00
Jesse Duffield 52f41ab0d5 update cheatsheet 2020-03-28 03:16:44 +00:00
Jesse Duffield fbb767893e support lazyloading in commits view 2020-03-28 14:02:53 +11:00
Jesse Duffield 229f5ee48c add keybindings for paging in list panels and jumping to top/bottom 2020-03-28 14:02:53 +11:00
Jesse Duffield 517b7d0283 fix up some things with the patch handling stuff 2020-03-28 13:19:35 +11:00
Jesse Duffield 0c0231c3e8 autostash changes when pulling file into index 2020-03-28 13:19:35 +11:00
Jesse Duffield a9559a5c87 move working tree state function into git.go 2020-03-28 13:19:35 +11:00
Jesse Duffield 814ee24c8d better error handling 2020-03-28 11:59:45 +11:00
Jesse Duffield 7876cddf4a remove dead code 2020-03-28 11:59:45 +11:00
Jesse Duffield e9051355a1 fix test 2020-03-28 11:59:45 +11:00
Jesse Duffield 29316a528a better documentation 2020-03-28 11:59:45 +11:00
Jesse Duffield 036b53acf8 in fact we don't need any of these options 2020-03-28 11:59:45 +11:00
Jesse Duffield 919463ff02 actually don't even bother limiting 2020-03-28 11:59:45 +11:00
Jesse Duffield 3f7ec3f3b8 load reflog commits in two stages to speed up startup time 2020-03-28 11:59:45 +11:00
Jesse Duffield 19604214d7 discard old reflog commits when in new context 2020-03-28 11:59:45 +11:00
Jesse Duffield f7add8d788 smarter refreshing for tags and remotes 2020-03-28 11:59:45 +11:00
Jesse Duffield d97c230747 stop switching focus to commit files view while staging line by line 2020-03-28 11:59:45 +11:00
Jesse Duffield 906a49049e smart refreshing files 2020-03-28 11:59:45 +11:00
Jesse Duffield c1a4bd0482 more smart refreshing
WIP

WIP

WIP

WIP

WIP

fix how diff entries are handled

WIP

WIP

WIP

WIP

WIP

WIP
2020-03-28 11:59:45 +11:00
Jesse Duffield d0336fe16f better presentation of remotes 2020-03-28 11:59:45 +11:00
Jesse Duffield 61b4bbf74e clean up signature 2020-03-28 11:59:45 +11:00
Jesse Duffield 384c2e13d7 better refreshing for stash 2020-03-28 11:59:45 +11:00
Jesse Duffield 198d237679 more centralised handling of refreshing 2020-03-28 11:59:45 +11:00
Jesse Duffield 39315ca1e2 use wait groups when refreshing 2020-03-28 11:59:45 +11:00
Jesse Duffield efb51eee96 more efficient refreshing 2020-03-28 11:59:45 +11:00
Jesse Duffield fbbd16bd82 use reflogs from state to work out branch recencies 2020-03-28 11:59:45 +11:00
Jesse Duffield bd2c1eef53 remove redundant fetch of reflog 2020-03-28 11:59:45 +11:00
Jesse Duffield d1395b15bb use GIT_EDITOR 2020-03-27 19:26:14 +11:00
Máximo Cuadros 2d8ed5e274 *: update go-git import 2020-03-27 19:06:21 +11:00
Jesse Duffield 95b147079f allow applying patch directly 2020-03-26 21:44:45 +11:00
Jesse Duffield 83757f1065 limit size of menu panel 2020-03-26 21:44:33 +11:00
Jesse Duffield f2036b42e5 only load new reflog entries 2020-03-26 21:44:33 +11:00
Jesse Duffield 21b7d41845 relax limit on commit list and reset on branch change 2020-03-26 21:44:33 +11:00
Jesse Duffield 91a404d033 separate commits from cherry pick state 2020-03-26 21:44:33 +11:00
Jesse Duffield d027cf969c better handling of current branch name 2020-03-26 20:37:06 +11:00
Jesse Duffield 37acc17cf3 more lenient getting of short shas 2020-03-26 18:30:02 +11:00
Dawid Dziurla c831ad39c9 pkg: use upstream pty package 2020-03-25 21:26:15 +11:00
Jesse Duffield bbcc4b7b70 just disallow undo/redo while rebasing because you need more info than just the reflog 2020-03-25 09:39:04 +11:00
Jesse Duffield 45bba0a3c5 ignore redundant actions when undoing and redoing 2020-03-25 09:39:04 +11:00
Jesse Duffield d105e2690a vastly improve the logic for undo and redo 2020-03-25 09:39:04 +11:00
Jesse Duffield 32d3e497c3 fix tests 2020-03-25 09:39:04 +11:00
Jesse Duffield 30a5d1b486 move into undoing file 2020-03-25 09:39:04 +11:00
Jesse Duffield 6b3ea56add refactor undo and redo 2020-03-25 09:39:04 +11:00
Jesse Duffield c3aefdb98e stateless undos and redos 2020-03-25 09:39:04 +11:00
Jesse Duffield 094939451d more explicit env vars 2020-03-25 09:39:04 +11:00
Jesse Duffield 0e23f44b84 support reflog action prefix 2020-03-25 09:39:04 +11:00
Jesse Duffield daecdd7c2b redoing 2020-03-25 09:39:04 +11:00
Jesse Duffield 7c8df28d01 add waiting status to checkout ref handler 2020-03-25 09:39:04 +11:00
Jesse Duffield 65917272a2 undoing status 2020-03-25 09:39:04 +11:00
Jesse Duffield 137fd80fdb note that undo functionality is experimental 2020-03-25 09:39:04 +11:00
Jesse Duffield 98fbc61221 better formatted reflog list 2020-03-25 09:39:04 +11:00
Jesse Duffield f80d15062b use reflog undo history pointer 2020-03-25 09:39:04 +11:00
Jesse Duffield b1b0219f04 autostash changes when hard resetting 2020-03-25 09:39:04 +11:00
Jesse Duffield b1941c33f7 undo via rebase 2020-03-25 09:39:04 +11:00
Jesse Duffield 5d460e1e5e add tab keybindings 2020-03-23 23:25:00 +11:00
Jesse Duffield 3d3e0be7bd more compatible commands 2020-03-23 22:33:17 +11:00
Jesse Duffield 3aab37611a show status of selected cherry picked commits 2020-03-19 21:42:21 +11:00
Jesse Duffield 8fbcc36331 allow resetting cherry picked commits selection 2020-03-19 21:42:21 +11:00
Jesse Duffield dadb646252 fix branch building 2020-03-19 12:04:17 +11:00
Jesse Duffield 0227b93409 fix branch parser 2020-03-18 23:26:02 +11:00
Jesse Duffield b0ec0821d5 fix docs 2020-03-18 22:50:35 +11:00
hitsuji_no_shippo 13a7806cac add opne menu keybindings in docs 2020-03-18 22:50:35 +11:00
hitsuji_no_shippo 41c76fb748 add close menu keybindings in docs 2020-03-18 22:50:35 +11:00
hitsuji_no_shippo ac0c3b9f92 fix search keybindings in docs 2020-03-18 22:50:35 +11:00
Jesse Duffield 1be0ff8da7 better upstream tracking and allow renaming a branch 2020-03-18 21:29:06 +11:00
hitsuji_no_shippo 2169b5109f add search keybings in docs 2020-03-11 19:43:22 +11:00
Jesse Duffield 7df4b736cf be a bit more lenient 2020-03-09 12:41:41 +11:00
Jesse Duffield e47ad846c4 big golangci-lint cleanup 2020-03-09 12:23:13 +11:00
Jesse Duffield 19146d61b1 use selected branch as base when creating a new branch 2020-03-08 18:44:15 +11:00
skwerlman e541b809ce update tests to match changed command 2020-03-06 09:25:31 +11:00
skwerlman 6ca08c6519 make branches and files non-ambiguous for git-log
fixes #694
2020-03-06 09:25:31 +11:00
Jesse Duffield 31e201ca52 allow configuring side panel width 2020-03-04 00:12:23 +11:00
Jesse Duffield b3522c48d9 refactor 2020-03-04 00:12:23 +11:00
Jesse Duffield 0fc58a7986 fix test 2020-03-04 00:12:23 +11:00
Jesse Duffield 54241d8ab9 more generic way of supporting custom pagers 2020-03-04 00:12:23 +11:00
Jesse Duffield 355f1615ab supporing custom pagers step 1 2020-03-04 00:12:23 +11:00
William Wagner Moraes Artero 3ce2b9b79a chore: keeping coverage up :D 2020-03-01 10:57:12 +11:00
William Wagner Moraes Artero a79182e50d fix: accidentally escaped %s 2020-03-01 10:57:12 +11:00
William Wagner Moraes Artero 0eb3090ad6 fix: owner groups (GitLab) 2020-03-01 10:57:12 +11:00
William Wagner Moraes Artero 6ea25bd259 feat: flexible service configuration 2020-03-01 10:57:12 +11:00
William Wagner Moraes Artero fe5f087f9c feat: configurable services 2020-03-01 10:57:12 +11:00
Jesse Duffield 79299be3b2 better keybindings for patch building mode 2020-02-29 18:48:10 +11:00
Jesse Duffield 4c9b620bd0 better keybindings for staging by line 2020-02-29 18:48:10 +11:00
Jesse Duffield a7508a5dfd fix cheatsheet script to support different contexts 2020-02-29 17:46:00 +11:00
David Chen a9fe0b8000 set --abbrev-commit to return 8-digit hash strings 2020-02-27 18:05:41 +11:00
David Chen 5af7b0235e fix #680: unpushed commits still appear to be green instead of red 2020-02-27 18:05:41 +11:00
Corentin Rossignon bf946200e9 Fix OutOfBound array access when looking for ReflogCommits
refs #679
2020-02-27 09:34:40 +11:00
Jesse Duffield 890cc87724 fix bug where commits appeared as green despite not being pushed 2020-02-27 09:33:09 +11:00
Jesse Duffield 8eb0b0f4ca do not close over variables in a function 2020-02-25 22:09:43 +11:00
Jesse Duffield e6a8dc0bcf better logic for checking if we're rebasing 2020-02-25 22:09:43 +11:00
Jesse Duffield 02c497fad6 show file list when diffing commits 2020-02-25 21:38:38 +11:00
Jesse Duffield d0ab747479 color active frames green by default 2020-02-25 21:27:50 +11:00
Jesse Duffield f94d0be2c9 refactor the way we render lists 2020-02-25 21:21:07 +11:00
Jesse Duffield 9fd9fd6816 better commit lines in fullscreen mode 2020-02-25 21:21:07 +11:00
Jesse Duffield 8ad01fe32f refresh commits when adding a tag 2020-02-25 09:10:23 +11:00
Jesse Duffield fdb543fa7d add half and fullscreen modes 2020-02-25 08:45:30 +11:00
Jesse Duffield 52b5a6410c show item counts in frames 2020-02-25 07:19:46 +11:00
Jesse Duffield 0034cfef5c show tags in commits panel 2020-02-24 23:13:54 +11:00
Jesse Duffield 78b62be96f better handling of clearing the search 2020-02-24 22:18:04 +11:00
Jesse Duffield 1f5ccab1ce eagerload commits when searching 2020-02-24 22:18:04 +11:00
Jesse Duffield 46be280c92 support searching in side panels
For now we're just doing side panels, because it will take more work
to support this in the various main panel contexts
2020-02-24 22:18:04 +11:00
Jesse Duffield 2a5763a771 switch custom command keybinding to ':' 2020-02-24 22:04:39 +11:00
Jesse Duffield 370cec098b show diff stat 2020-02-24 09:20:50 +11:00
Dawid Dziurla 49a2f0191f tasks: don't use a function that requires Go 1.12 2020-02-24 09:09:27 +11:00
Jesse Duffield fabdda0492 allow customizing background color in staging mode 2020-02-23 18:37:19 +11:00
Glenn Vriesman 6fc3290a05 Reflog: Use 20 sha digits instead of 7
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-20 08:34:01 +11:00
Jesse Duffield 66e6369c28 allow fastforwarding the current branch 2020-02-18 23:07:38 +11:00
Jesse Duffield 0f0da9c32a fix wording 2020-02-16 09:57:49 +11:00
Jesse Duffield 0a69c1a02d add reset to reflog commit menu 2020-02-16 09:57:49 +11:00
Jesse Duffield feaf98bd01 add reset to upstream option on files panel 2020-02-16 09:57:49 +11:00
Jesse Duffield 0fe9c15ce8 add mixed option to HEAD resetting, remove @{upstream} 2020-02-16 09:57:49 +11:00
Jesse Duffield f528e12c83 allow resetting to tag 2020-02-16 09:57:49 +11:00
Jesse Duffield 8ca9f93ccf allow resetting to remote branch 2020-02-16 09:57:49 +11:00
Jesse Duffield 73d8064837 allow resetting to branch 2020-02-16 09:57:49 +11:00
Jesse Duffield 5b1f60b7eb refactor create reset menu logic 2020-02-16 09:57:49 +11:00
Jesse Duffield 2e1344f611 fix specs 2020-02-15 08:47:36 +11:00
Jesse Duffield 5b9996b16f remove old createMenu function 2020-02-15 08:47:36 +11:00
Jesse Duffield 6fdc1791e4 refactor stash options menu 2020-02-15 08:47:36 +11:00
Jesse Duffield fd4f37b5c3 refactor git flow menu 2020-02-15 08:47:36 +11:00
Jesse Duffield d76e8887e5 refactor patch options menu panel 2020-02-15 08:47:36 +11:00
Jesse Duffield eb9134685a refactor rebase menu panel 2020-02-15 08:47:36 +11:00
Jesse Duffield d929b84786 refactor recent repos menu panel 2020-02-15 08:47:36 +11:00
Jesse Duffield 8ef3297b11 refactor reflog reset options panel 2020-02-15 08:47:36 +11:00
Jesse Duffield 27c7aeb117 refactor workspace reset options panel 2020-02-15 08:47:36 +11:00
Jesse Duffield c9714600e8 refactor commit reset menu 2020-02-15 08:47:36 +11:00
Jesse Duffield 665fdded14 continue refactor of menu panel 2020-02-15 08:47:36 +11:00
Jesse Duffield 814a0ea36f begin refactor of menu panel 2020-02-15 08:47:36 +11:00
Jesse Duffield 71e018a3dd get whole commit SHA from rebase commits 2020-02-13 18:10:14 +11:00
Jesse Duffield efb26f8b60 refresh current branch graph when side panels refresh 2020-02-10 19:05:55 +11:00
Glenn Vriesman d9eb6e2682 Fixed tests
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-09 23:47:22 +11:00
Glenn Vriesman b74107f2ba Use 8 instead of 7 digit long sha
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-09 23:47:22 +11:00
Glenn Vriesman 0cd91a10c6 Increase internal sha size
This does not change the sha size that is displayed to the user

Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-09 23:47:22 +11:00
Jesse Duffield f062e1dcda ignore carriage returns 2020-02-09 16:43:02 +11:00
Glenn Vriesman 9f5397a2d4 Moved function to git.go
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-06 23:19:29 +11:00
Glenn Vriesman 0164abbd4a Added feature to ignore tracked files
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-06 23:19:29 +11:00
Glenn Vriesman 047c3cf880 Added more keybinds
* Commit with editor
 * Commit without hook

Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-04 23:21:51 +11:00
Glenn Vriesman 47d7d87c82 Added commit keybinding to staging views 2020-02-04 23:21:51 +11:00
Glenn Vriesman 5f53d50492 Check cached when showing new file diffs
Signed-off-by: Glenn Vriesman <glenn.vriesman@gmail.com>
2020-02-04 08:41:41 +11:00
Jesse Duffield 5f71f87496 correctly compare new main height to previous 2020-02-03 21:50:31 +11:00
Chris Taylor c6cb90e8ca verify that VISUAL,EDITOR,LGCC envvars are set for non-interactive commands 2020-02-02 11:29:22 +11:00
Chris Taylor fb156bcaac add a helper to search a list for a pattern 2020-02-02 11:29:22 +11:00
Chris Taylor 75ba2196ba perpetuate this style of dependency injection 2020-02-02 11:29:22 +11:00
Chris Taylor 4cb50b15e4 make amend more non-interactive 2020-02-02 11:29:22 +11:00
Jesse Duffield df050472a1 more ticker improvements 2020-02-02 11:26:24 +11:00
Jesse Duffield 434582b5f5 explicitly tell gocui when to start animating the loader 2020-02-01 00:23:22 +11:00
Jesse Duffield cf6be928a3 only rerender app status when we need to 2020-02-01 00:23:22 +11:00
Jesse Duffield c907c55144 close more things when switching repos or to a subprocess 2020-01-31 20:53:08 +11:00
Jesse Duffield 64782a433e fix segfault on line by line panel
The state object is sometimes undefined in the onclick method of the
line by line panel. Because we set it to nil in a bunch of places,
I've decided to just change the main context to 'normal' before setting
it to nil anywhere. That way the keybindings for the line by line panel
won't get executed and we won't get a segfault.
2020-01-31 08:27:49 +11:00
Jesse Duffield 44edb49a6e handle files that were deleted downstream but modified upstream 2020-01-29 19:07:47 +11:00
Jesse Duffield 1a6d269063 split main view vertically
When staging lines (or doing anything that requires the main view to split into two)
we want to split vertically if there's not much width available in the window.
If there is enough width we will split horizontally. The aim here is to allow for
sufficient room in the side panel. We might need to tweak this or make it configurable
but I think it's set to a pretty reasonable default i.e. switching to split vertically
when the window width falls under 220
2020-01-29 18:44:50 +11:00
Jesse Duffield b64953ebdb safely unstage lines 2020-01-29 18:19:11 +11:00
Jesse Duffield deaa2bcb15 remove rollbar 2020-01-29 17:29:36 +11:00
Jesse Duffield c166c57c5d make use of branch config when pushing/pulling 2020-01-29 15:19:19 +11:00
Jesse Duffield 6b77e4ee4a fix comment 2020-01-28 22:18:55 +11:00
Jesse Duffield e5534f060d use reflog timestamps rather than commit timestamps to show commit recency 2020-01-28 22:12:48 +11:00
Jamie Brynes 810adab957 handle case where file watcher is disabled 2020-01-16 00:30:53 +00:00
Jesse Duffield 83a3c9fc8d handle when fsnotify doesn't work 2020-01-12 14:46:23 +11:00
Jesse Duffield 5e95019b3f Missed a spot with this new string task thing
The issue here was that we were using a string task
but expecting to be able to set the origin straight after
to point at the conflict, but because it's async it was
actually resetting the origin to 0 after a little bit.

The proper solution here is maybe to add a flag to that thing
asking whether you want to reset main's origin. But I'm
too lazy to do that right now so instead I'm just using
setViewContent. That will probably cause issues in the future.
2020-01-12 14:43:17 +11:00
Jesse Duffield 83a895a463 reset origin when clicking on list item 2020-01-12 13:55:14 +11:00
Jesse Duffield 77a82e9d51 use view line height to see if you should stop scrolling 2020-01-12 13:55:14 +11:00
Jesse Duffield bd79c2e8dc keep track of current view when pushing 2020-01-12 11:17:20 +11:00
Jesse Duffield 23bcc19180 allow fast flicking through any list panel
Up till now our approach to rendering things like file diffs, branch logs, and
commit patches, has been to run a command on the command line, wait for it to
complete, take its output as a string, and then write that string to the main
view (or secondary view e.g. when showing both staged and unstaged changes of a
file).

This has caused various issues. For once, if you are flicking through a list of
files and an untracked file is particularly large, not only will this require
lazygit to load that whole file into memory (or more accurately it's equally
large diff), it also will slow down the UI thread while loading that file, and
if the user continued down the list, the original command might eventually
resolve and replace whatever the diff is for the newly selected file.

Following what we've done in lazydocker, I've added a tasks package for when you
need something done but you want it to cancel as soon as something newer comes
up. Given this typically involves running a command to display to a view, I've
added a viewBufferManagerMap struct to the Gui struct which allows you to define
these tasks on a per-view basis.

viewBufferManagers can run files and directly write the output to their view,
meaning we no longer need to use so much memory.

In the tasks package there is a helper method called NewCmdTask which takes a
command, an initial amount of lines to read, and then runs that command, reads
that number of lines, and allows for a readLines channel to tell it to read more
lines. We read more lines when we scroll or resize the window.

There is an adapter for the tasks package in a file called tasks_adapter which
wraps the functions from the tasks package in gui-specific stuff like clearing
the main view before starting the next task that wants to write to the main
view.

I've removed some small features as part of this work, namely the little headers
that were at the top of the main view for some situations. For example, we no
longer show the upstream of a selected branch. I want to re-introduce this in
the future, but I didn't want to make this tasks system too complicated, and in
order to facilitate a header section in the main view we'd need to have a task
that gets the upstream for the current branch, writes it to the header, then
tells another task to write the branch log to the main view, but without
clearing inbetween. So it would get messy. I'm thinking instead of having a
separate 'header' view atop the main view to render that kind of thing (which
can happen in another PR)

I've also simplified the 'git show' to just call 'git show' and not do anything
fancy when it comes to merge commits.

I considered using this tasks approach whenever we write to a view. The only
thing is that the renderString method currently resets the origin of a view and
I don't want to lose that. So I've left some in there that I consider harmless,
but we should probably be just using tasks now for all rendering, even if it's
just strings we can instantly make.
2020-01-12 11:17:20 +11:00
Jesse Duffield 282f08df36 lazyload commits 2020-01-12 10:10:56 +11:00
Jesse Duffield d647a96ed5 add reflog reset options 2020-01-09 22:36:07 +11:00
Jesse Duffield 1b64ea3210 add checkout reflog commit keybinding 2020-01-09 22:36:07 +11:00
Jesse Duffield 9b32e99eb8 add reflog tab in commits panel 2020-01-09 22:36:07 +11:00
Jesse Duffield 79e696d8a7 switch to 'i' for toggling diff commits 2020-01-08 22:59:12 +11:00
Jesse Duffield e0015a52e5 refresh side panels when resetting to upstream 2020-01-08 22:30:54 +11:00