Skip to content

fix: show untracked files when comparing working tree #587

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

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

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