jesseduffield.lazygit/pkg/commands/git_commands
Stefan Haller 0f7f1a56df Fix showing diffs for renamed file when filtering by path
When filtering for a file path we use the --follow option for "git log", so it
will follow renames of the file, which is great. However, if you then selected
one of the commits before a rename, you didn't see a diff, because we would pass
the original filter path to the "git show" call.

To fix this, call git log with the --name-status option when filtering by path,
so that each commit reports which file paths are touched in this commit;
remember these in the commit object, so that we can pass them to the "git show"
call later.

Be careful not to store too many such paths unnecessarily. When filtering by
folder rather than file, all these paths will necessarily be inside the original
filter path, so detect this and don't store them in this case.

There is some unfortunate code duplication between loading commits and loading
reflog commits, which I am too lazy to clean up right now.
2025-07-27 12:05:41 +02:00
..
bisect.go rename sha to hash 9, case: Sha 2024-04-12 08:33:47 +02:00
bisect_info.go rename sha to hash 2 2024-04-12 08:33:47 +02:00
blame.go Add command to find base commit for creating a fixup 2024-01-10 09:11:40 +01:00
branch.go Fix the CurrentBranchName function 2025-06-30 16:08:03 +02:00
branch_loader.go Move LocalBranchSortOrder and RemoteBranchSortOrder to user config 2025-07-09 13:15:03 +02:00
branch_loader_test.go Remove canUsePushTrack parameter of obtainBranches function 2025-04-09 10:40:52 +02:00
branch_test.go Allow deleting a range selection of branches 2024-12-01 10:59:54 +01:00
commit.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
commit_file_loader.go Rename Name to Path in File and CommitFile 2025-03-20 12:31:34 +01:00
commit_file_loader_test.go Rename Name to Path in File and CommitFile 2025-03-20 12:31:34 +01:00
commit_loader.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
commit_loader_test.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
commit_loading_shared.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
commit_test.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
common.go Remove sync mutex 2023-10-08 18:45:36 +02:00
config.go fix: Make tag operation use GPG helper to run signing in sub-process 2025-03-24 08:41:58 +01:00
custom.go Add runCommand function to Go template syntax 2025-04-09 10:44:36 +02:00
deps_test.go Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
diff.go Move DiffContextSize and RenameSimilarityThreshold to user config 2025-07-09 13:15:03 +02:00
file.go Remove deprecated edit configs 2025-07-08 16:32:21 +02:00
file_loader.go Move DiffContextSize and RenameSimilarityThreshold to user config 2025-07-09 13:15:03 +02:00
file_loader_test.go Move DiffContextSize and RenameSimilarityThreshold to user config 2025-07-09 13:15:03 +02:00
file_test.go Remove deprecated edit configs 2025-07-08 16:32:21 +02:00
flow.go Remove ICmdObj interface 2025-05-01 15:21:37 +02:00
flow_test.go Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
git_command_builder.go Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
git_command_builder_test.go Add worktree tests for removing/detaching 2023-07-30 18:35:23 +10:00
main_branches.go Instantiate other mutexes by value 2025-06-19 18:39:46 +02:00
patch.go Use a better name for the auto-stash for moving a custom patch to index 2025-07-03 16:56:30 +02:00
rebase.go Remove git version specific code for versions we no longer support 2025-07-09 12:18:58 +02:00
rebase_test.go Fix --amend when the commit message is empty 2025-07-14 17:58:31 +02:00
reflog_commit_loader.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
reflog_commit_loader_test.go Fix showing diffs for renamed file when filtering by path 2025-07-27 12:05:41 +02:00
remote.go Allow deleting a range selection of branches 2024-12-01 10:59:54 +01:00
remote_loader.go Move LocalBranchSortOrder and RemoteBranchSortOrder to user config 2025-07-09 13:15:03 +02:00
repo_paths.go Remove git version specific code for versions we no longer support 2025-07-09 12:18:58 +02:00
repo_paths_test.go Remove git version specific code for versions we no longer support 2025-07-09 12:18:58 +02:00
stash.go Move DiffContextSize and RenameSimilarityThreshold to user config 2025-07-09 13:15:03 +02:00
stash_loader.go Make stash filtering work when filtering on a folder 2025-07-27 12:03:06 +02:00
stash_loader_test.go Move NewDummyCommon to pkg/common 2025-05-06 09:43:26 +02:00
stash_test.go Move DiffContextSize and RenameSimilarityThreshold to user config 2025-07-09 13:15:03 +02:00
status.go Make WorkingTreeState a struct, and add cherry-picking and reverting states 2025-04-20 15:53:17 +02:00
submodule.go Enable revive linter, and fix a bunch of warnings 2025-06-30 19:13:20 +02:00
sync.go Remove git version specific code for versions we no longer support 2025-07-09 12:18:58 +02:00
sync_test.go Remove git version specific code for versions we no longer support 2025-07-09 12:18:58 +02:00
tag.go Show tag information for selected tag 2025-06-30 16:12:33 +02:00
tag_loader.go Add IsAnnotated field to models.Tag struct 2025-06-30 16:12:33 +02:00
tag_loader_test.go Add IsAnnotated field to models.Tag struct 2025-06-30 16:12:33 +02:00
version.go Add a method GitVersion.IsAtLeast 2024-01-10 09:18:38 +01:00
version_test.go Add a method GitVersion.IsAtLeast 2024-01-10 09:18:38 +01:00
working_tree.go Move DiffContextSize and RenameSimilarityThreshold to user config 2025-07-09 13:15:03 +02:00
working_tree_test.go Move DiffContextSize and RenameSimilarityThreshold to user config 2025-07-09 13:15:03 +02:00
worktree.go Centralise logic for obtaining repo paths 2023-07-30 18:35:24 +10:00
worktree_loader.go Remove git version specific code for versions we no longer support 2025-07-09 12:18:58 +02:00
worktree_loader_test.go Remove git version specific code for versions we no longer support 2025-07-09 12:18:58 +02:00