jesseduffield.lazygit/pkg/gui/controllers
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
..
helpers Add commit store 2023-10-02 16:25:15 +11:00
attach.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
base_controller.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
basic_commits_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
bisect_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
branches_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
command_log_controller.go lots of changes 2023-04-30 13:19:53 +10:00
commit_description_controller.go Split commit message panel into commit summary and commit description panel 2023-04-30 13:19:53 +10:00
commit_message_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
commits_files_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
common.go lots of changes 2023-04-30 13:19:53 +10:00
confirmation_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
context_lines_controller.go lots of changes 2023-04-30 13:19:53 +10:00
custom_command_action.go move custom command action into its own file 2023-04-30 13:19:53 +10:00
custom_patch_options_menu_action.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
diffing_menu_action.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
files_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
files_remove_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
filtering_menu_action.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
git_flow_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
global_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
jump_to_side_window_controller.go move side window actions to controllers package 2023-04-30 13:19:53 +10:00
list_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
local_commits_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
menu_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
merge_conflicts_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
options_menu_action.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
patch_building_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
patch_explorer_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
quit_actions.go move quit actions to controller 2023-04-30 13:19:53 +10:00
reflog_commits_controller.go lots of changes 2023-04-30 13:19:53 +10:00
remote_branches_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
remotes_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
screen_mode_actions.go move more actions into controller 2023-04-30 13:19:53 +10:00
side_window_controller.go move side window actions to controllers package 2023-04-30 13:19:53 +10:00
snake_controller.go lots of changes 2023-04-30 13:19:53 +10:00
staging_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
stash_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
status_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
sub_commits_controller.go Visualize the "ignore whitespace" state in the subtitle of the diff view 2023-05-20 12:58:32 +10:00
submodules_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
suggestions_controller.go lots of changes 2023-04-30 13:19:53 +10:00
switch_to_diff_files_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
switch_to_sub_commits_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
sync_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
tags_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
toggle_whitespace_action.go Remove the toast when toggling "ignore whitespace" 2023-05-20 12:58:32 +10:00
types.go introduce Ref interface 2022-04-02 17:04:42 +11:00
undo_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00
vertical_scroll_controller.go lots of changes 2023-04-30 13:19:53 +10:00
workspace_reset_controller.go Use sentence case everywhere 2023-05-25 23:52:19 +10:00