Skip to content

fix: show untracked files when comparing working tree#587

Open
KEY60228 wants to merge 1 commit intosindrets:mainfrom
KEY60228:fix/show-untracked-files
Open

fix: show untracked files when comparing working tree#587
KEY60228 wants to merge 1 commit intosindrets:mainfrom
KEY60228:fix/show-untracked-files

Conversation

@KEY60228
Copy link

Note

I apologize for accidentally closing PR #585

Summary

This PR fixes an issue where untracked files are not displayed when comparing the working tree against a specific commit using DiffviewOpen.

Fixes #584

Problem

The current implementation only shows untracked files when comparing the index (stage) against the working tree (DiffviewOpen with no arguments). However, the documentation states:

" Diff the working tree against a specific commit:
:DiffviewOpen HEAD~2

When comparing the working tree against a commit, users would expect to see all changes including untracked files, but they are currently hidden.

Solution

Modified the condition in GitAdapter:show_untracked() to check if the right side of the comparison is the working tree (LOCAL), rather than requiring both specific left (STAGE) and right (LOCAL) types.

Before

-- Only show untracked files for STAGE..LOCAL comparison
if not (opt.revs.left.type == RevType.STAGE and opt.revs.right.type == RevType.LOCAL) then
  return false
end

After

-- Show untracked files when comparing against the working tree (LOCAL)
if opt.revs.right.type ~= RevType.LOCAL then
  return false
end

Testing

  • DiffviewOpen - Shows untracked files (existing behavior preserved)
  • DiffviewOpen HEAD~1 - Now shows untracked files
  • DiffviewOpen main - Now shows untracked files
  • DiffviewOpen HEAD~1 -uno - Hides untracked files as expected
  • DiffviewOpen HEAD~1..HEAD - Does not show untracked files (correct, as neither side is LOCAL)

Notes

  • The -u/--untracked-files flag now works correctly for all working tree comparisons
  • Users can still use -uno to hide untracked files if desired
  • This change aligns the behavior with the documentation and user expectations

dlyongemallo pushed a commit to dlyongemallo/diffview.nvim that referenced this pull request Feb 4, 2026
)

Show untracked files when the right side of the comparison is the
working tree (LOCAL), not just when comparing index vs working tree.
This allows seeing untracked files in more diff scenarios.

Fixes sindrets#584
dlyongemallo added a commit to dlyongemallo/diffview.nvim that referenced this pull request Feb 4, 2026
PR sindrets#587 changed the condition to show untracked files whenever the right
side is LOCAL (working tree). This caused untracked files to appear when
running `DiffviewOpen <commit>`, which compares a commit to the working
tree.

Restore the original behaviour: only show untracked files when comparing
STAGE (index) vs LOCAL (working tree), i.e. standard `DiffviewOpen`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Untracked files are not shown when comparing working tree against a specific commit

1 participant