• Junio C Hamano's avatar
    resolve-undo: record resolved conflicts in a new index extension section · cfc5789a
    Junio C Hamano authored
    When resolving a conflict using "git add" to create a stage #0 entry, or
    "git rm" to remove entries at higher stages, remove_index_entry_at()
    function is eventually called to remove unmerged (i.e. higher stage)
    entries from the index.  Introduce a "resolve_undo_info" structure and
    keep track of the removed cache entries, and save it in a new index
    extension section in the index_state.
    Operations like "read-tree -m", "merge", "checkout [-m] <branch>" and
    "reset" are signs that recorded information in the index is no longer
    necessary.  The data is removed from the index extension when operations
    start; they may leave conflicted entries in the index, and later user
    actions like "git add" will record their conflicted states afresh.
    Signed-off-by: default avatarJunio C Hamano <[email protected]>
resolve-undo.c 2.6 KB