enhance: don't show unmerged files in STAGED area (#1359)

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-24 13:42:10 +02:00 committed by GitHub
parent ca33107a45
commit 30d4c1008a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

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