diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-08-01 01:44:09 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-08-01 02:16:44 +0300 |
commit | 5bdedac3c7b0894643256304cd5f0dd29cf8eec9 (patch) | |
tree | 13fdeb61cb4c728dee967e02909f7bf1e757f857 /rerere.c | |
parent | ed3789f2f0ab8b8d5e325e47f0caf02b6bd9edfc (diff) |
checkout: allow "checkout -m path" to unmerge removed paths
"git checkout -m -- path" uses the unmerge_marked_index() API, whose
implementation is incapable of unresolving a path that was resolved
as removed. Extend the unmerge_index() API function so that we can
mark the ce_flags member of the cache entries we add to the index as
unmerged, and replace use of unmerge_marked_index() with it.
Now, together with its unmerge_index_entry_at() helper function,
unmerge_marked_index() function is no longer called by anybody, and
can safely be removed.
This makes two known test failures in t2070 and t7201 to succeed.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'rerere.c')
-rw-r--r-- | rerere.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1112,7 +1112,7 @@ int rerere_forget(struct repository *r, struct pathspec *pathspec) * recover the original conflicted state and then * find the conflicted paths. */ - unmerge_index(r->index, pathspec); + unmerge_index(r->index, pathspec, 0); find_conflict(r, &conflict); for (i = 0; i < conflict.nr; i++) { struct string_list_item *it = &conflict.items[i]; |