diff-index --cached --raw: show tree entry on the LHS for unmerged entries.

This updates the way diffcore represents an unmerged pair
somewhat.  It used to be that entries with mode=0 on both sides
were used to represent an unmerged pair, but now it has an
explicit flag.  This is to allow diff-index --cached to report
the entry from the tree when the path is unmerged in the index.

This is used in updating "git reset <tree> -- <path>" to restore
absense of the path in the index from the tree.

Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano
2007-01-05 01:25:18 -08:00
parent 13e86efbea
commit e9c8409900
4 changed files with 15 additions and 8 deletions

6
diff.c
View File

@ -2875,10 +2875,12 @@ void diff_change(struct diff_options *options,
}
void diff_unmerge(struct diff_options *options,
const char *path)
const char *path,
unsigned mode, const unsigned char *sha1)
{
struct diff_filespec *one, *two;
one = alloc_filespec(path);
two = alloc_filespec(path);
diff_queue(&diff_queued_diff, one, two);
fill_filespec(one, sha1, mode);
diff_queue(&diff_queued_diff, one, two)->is_unmerged = 1;
}