Fix collapsing of unmerged entries in the status view
The unstaged entries in the status view is read using git-diff-files,
which reports conflicting git index entries using two lines, e.g.:
:000000 100644
0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 U NEWS.adoc
:100644 100644
3c49864fe2ec26a160c6e95f21c5b2fe96d4e615 0000000000000000000000000000000000000000 M NEWS.adoc
The code reading this raw diff output would collapse any line with the
'U' status with the one that followed it. However, for certain conflicts
the unmerged entries are not followed by a "merged" entry, e.g. when
cherry picking a commit depending on files added previously in the
branch; what `git-status --porcelain` reports as "unmerged, deleted by
us":
DU include/tig/search.h
DU src/search.c
The git-diff-files output for such an index is two consecutive unmerged
entries:
:000000 100644
0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 U include/tig/search.h
:000000 100644
0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 U src/search.c
Change status_run to first parse each raw diff line and then only
collapse previous unmerged entries where the file name matches.