jesseduffield.lazygit/pkg/commands/git_commands
Stefan Haller d2d5bdc2bc Identify the current and main worktree by git dir, not by path
`git worktree list` reports the main worktree as the common git dir with
a trailing "/.git" removed, which equals the working tree only when the
git dir sits inside it. In a submodule, a bare repo, or a repo using
core.worktree it doesn't, so comparing the reported path against the
working tree path matches nothing: no worktree is recognized as current
or as main. Most visibly, inside a submodule lazygit claimed we were in
a linked worktree named after the submodule, and offered to remove that
"worktree".

Comparing git dirs identifies a worktree unambiguously, so use that.
A worktree whose directory is gone has no git dir to compare, and there
we still have nothing better than its path.

The submodule tests were asserting the linked-worktree suffix in the
status view; it is gone now, and the repo name still says which
submodule we're in.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 11:15:01 +02:00
..
bisect.go Don't log the "git rev-list" call when marking bisect commits 2026-01-25 11:47:07 +01:00
bisect_info.go rename sha to hash 2 2024-04-12 08:33:47 +02:00
blame.go Suppress command logs for git calls related to the ctrl+f command 2026-07-19 19:22:48 +02:00
branch.go Add backward cycling support for all branches log view 2026-03-08 17:06:17 +01:00
branch_loader.go perf(branches): use for-each-ref ahead-behind for git >= 2.41 2026-04-27 07:09:23 +02:00
branch_loader_test.go perf(branches): use for-each-ref ahead-behind for git >= 2.41 2026-04-27 07:09:23 +02:00
branch_test.go Replace MergeOpts struct with MergeVariant enum 2025-10-19 21:24:28 +02:00
commit.go Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
commit_file_loader.go Show renamed files in the custom patch builder 2026-07-04 13:05:09 +02:00
commit_file_loader_test.go Show renamed files in the custom patch builder 2026-07-04 13:05:09 +02:00
commit_loader.go Add ActionFlag field to Commit 2026-01-28 10:15:45 +01:00
commit_loader_test.go Use a better approach for determining pushed and merge statuses 2025-07-31 15:50:53 +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 Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
common.go Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
config.go Add support for git flow using git-flow-next 2026-05-26 11:57:09 +02:00
config_test.go Add support for git flow using git-flow-next 2026-05-26 11:57:09 +02:00
custom.go Add runCommand function to Go template syntax 2025-04-09 10:44:36 +02:00
deps_test.go Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
diff.go Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
file.go Support absolute paths when detecting edit preset from EDITOR env var 2026-07-30 17:31:56 +02:00
file_loader.go Suppress optional locks by default again, except foreground refresh 2026-07-02 16:05:08 +02:00
file_loader_test.go Suppress optional locks by default again, except foreground refresh 2026-07-02 16:05:08 +02:00
file_test.go Support absolute paths when detecting edit preset from EDITOR env var 2026-07-30 17:31:56 +02:00
flow.go Add support for git flow using git-flow-next 2026-05-26 11:57:09 +02:00
flow_test.go Add support for git flow using git-flow-next 2026-05-26 11:57:09 +02:00
git_command_builder.go Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
git_command_builder_test.go Add runGitCmdOnPaths utility 2026-03-27 14:34:47 +01:00
github.go Carry aggregate check state with GitHub pull requests 2026-07-31 09:01:44 +02:00
github_test.go Carry aggregate check state with GitHub pull requests 2026-07-31 09:01:44 +02:00
hosting_service.go Remove now unused code 2026-05-10 15:28:14 +02:00
main_branches.go Cleanup: remove the ignoringWarnings hack from GetMergeBase 2025-07-31 15:21:34 +02:00
patch.go Fix patch commands when git config has color=always 2026-03-30 10:42:26 +02:00
rebase.go Move dragged commits in one rebase 2026-07-31 08:37:28 +02:00
rebase_test.go Fix dropping submodule changes from a commit 2025-10-10 12:55:58 +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 Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
remote_loader.go Add PushUrls field to models.Remote 2026-05-04 13:09:47 +02:00
remote_loader_test.go Add PushUrls field to models.Remote 2026-05-04 13:09:47 +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 Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
stash_loader.go Add hash field to models.StashEntry 2025-08-25 19:23:30 +02:00
stash_loader_test.go Add hash field to models.StashEntry 2025-08-25 19:23:30 +02:00
stash_test.go Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
status.go Add Status.RefsSnapshot 2026-06-19 18:07:48 +02:00
status_test.go Add Status.RefsSnapshot 2026-06-19 18:07:48 +02:00
submodule.go Resolve the refresh's file reads against its repo root 2026-07-20 17:07:39 +02:00
submodule_test.go Show per-side commit logs for submodule conflicts in the main view 2026-06-28 16:12:36 +02:00
sync.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
sync_test.go Copy gocui files into lazygit repo under pkg/gocui 2026-04-30 14:29:08 +02:00
tag.go Suppress command logs for tag commands 2026-07-19 19:19:47 +02:00
tag_loader.go Revert "Add IsAnnotated field to models.Tag struct" 2025-07-28 10:53:51 +02:00
tag_loader_test.go Revert "Add IsAnnotated field to models.Tag struct" 2025-07-28 10:53:51 +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 Rework the custom pager config (rename to diff renderer) 2026-07-31 08:42:51 +02:00
working_tree_test.go Extract GitCommandBuilder method AddCommonDiffArgs 2026-07-31 08:42:51 +02:00
worktree.go Centralise logic for obtaining repo paths 2023-07-30 18:35:24 +10:00
worktree_loader.go Identify the current and main worktree by git dir, not by path 2026-08-08 11:15:01 +02:00
worktree_loader_test.go Identify the current and main worktree by git dir, not by path 2026-08-08 11:15:01 +02:00