jesseduffield.lazygit/pkg/gui
Jesse Duffield a2a8755a7c Add commit store
I want an efficient way to get information about the commits of a repo.
So far, our Commit model contains a mix of immutable and mutable fields, and this means we need to throw out
commits whenever we refresh, because one of the mutable fields may have changed.

The commit store will store a new model, ImmutableCommit which never changes so we can just continue adding
commits to the store without worrying about invalidating any of it.

One use case for this store is the ability to determine if one commit is an ancestor of another, which will
help us colour the commits against each of our branches in the local branches view. Without an in-memory
store, we would need to make one git call per commit which would be super slow.

If this store proves useful, we could switch to using it as the source of truth for our commits, with
mutable stuff handled separately.
2023-10-02 16:25:15 +11:00
..
context Refresh commits viewport on focus lost 2023-06-01 21:31:57 +10:00
controllers Add commit store 2023-10-02 16:25:15 +11:00
filetree fix could-not-access error 2022-11-12 18:09:15 -03:30
keybindings Use same labels for keys that we use in the config 2023-05-21 10:59:16 +10:00
mergeconflicts migrate patch building tests 2023-02-25 21:37:16 +11:00
modes refactor cherry pick code to move state access out of helper 2023-04-30 13:19:53 +10:00
patch_exploring refactor patch code 2023-03-19 16:30:39 +11:00
popup lots of changes 2023-04-30 13:19:53 +10:00
presentation Apply correct styling to root commit in graph 2023-06-01 22:20:30 +10:00
services/custom_commands Support using command output directly in menuFromCommand custom command prompt 2023-05-29 22:52:16 +10:00
status lots of changes 2023-04-30 13:19:53 +10:00
style Stop hiding underscores for VSCode 2023-06-01 20:12:20 +10:00
types Add commit store 2023-10-02 16:25:15 +11:00
background.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
command_log_panel.go Show correct keybinding in tip 2023-05-20 23:36:34 +10:00
context.go Don't deactivate context that you're about to activate 2023-05-16 21:01:38 +10:00
context_config.go move some methods 2023-04-30 13:19:53 +10:00
controllers.go Split commit message panel into commit summary and commit description panel 2023-04-30 13:19:53 +10:00
dummies.go feat: add GitVersion struct 2022-12-30 20:01:14 +09:00
editors.go Split commit message panel into commit summary and commit description panel 2023-04-30 13:19:53 +10:00
extras_panel.go lots of changes 2023-04-30 13:19:53 +10:00
file_watching.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
global_handlers.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
gui.go Add commit store 2023-10-02 16:25:15 +11:00
gui_common.go remove duplicate method 2023-05-11 19:00:41 +10:00
gui_driver.go Rename CmdLog -> GuiLog 2023-05-16 21:01:38 +10:00
information_panel.go lots of changes 2023-04-30 13:19:53 +10:00
keybindings.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
layout.go Allow the selected line of a list view to be outside the visible area 2023-05-11 13:23:58 +02:00
main_panels.go Visualize the "ignore whitespace" state in the subtitle of the diff view 2023-05-20 12:58:32 +10:00
menu_panel.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
options_map.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
pty.go Make sure scrollbars have the right size initially 2023-03-21 18:26:18 +01:00
pty_windows.go Format code to pass lint 2021-09-16 21:38:43 +08:00
recent_repos_panel.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
searching.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
tasks_adapter.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
test_mode.go remove old integration test recording code 2023-03-24 18:42:11 +11:00
view_helpers.go lots more refactoring 2023-04-30 13:19:53 +10:00
views.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00