Don't show Unmerged files in Staged area

Unmerged files (i.e unresolved conflicts) should only appear in the Unstaged area, and not "duplicated" in the Staged area.

Motivation:
* The user-friendly git-status command does not show these as "Changes to be committed".
* If they appear in the Staged area, they are quite redundant since the Diff view will just show "No changes or only EOL changes".
* Some other Git UIs (like Fork) don't show these as Staged items either.

NOTE: According to docs for the git-status "Short Format" (and --porcelain=v1), the XY fields for Unmerged paths do NOT actually represent the Index & Working-tree states, instead they represent the states introduced by each HEAD in the merge (i.e Ours & Theirs, relative to Base).
This commit is contained in:
Göran W 2025-05-23 17:21:21 +02:00
parent e28b75b860
commit 30eb936913

View file

@ -1535,7 +1535,8 @@ namespace SourceGit.ViewModels
foreach (var c in _cached) foreach (var c in _cached)
{ {
if (c.Index != Models.ChangeState.None && if (c.Index != Models.ChangeState.None &&
c.Index != Models.ChangeState.Untracked) c.Index != Models.ChangeState.Untracked &&
!c.IsConflict)
rs.Add(c); rs.Add(c);
} }
return rs; return rs;