"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>
		
			
				
	
	
		
			24 lines
		
	
	
		
			666 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			666 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef RESOLVE_UNDO_H
 | 
						|
#define RESOLVE_UNDO_H
 | 
						|
 | 
						|
struct cache_entry;
 | 
						|
struct index_state;
 | 
						|
struct pathspec;
 | 
						|
struct string_list;
 | 
						|
 | 
						|
#include "hash-ll.h"
 | 
						|
 | 
						|
struct resolve_undo_info {
 | 
						|
	unsigned int mode[3];
 | 
						|
	struct object_id oid[3];
 | 
						|
};
 | 
						|
 | 
						|
void record_resolve_undo(struct index_state *, struct cache_entry *);
 | 
						|
void resolve_undo_write(struct strbuf *, struct string_list *);
 | 
						|
struct string_list *resolve_undo_read(const char *, unsigned long);
 | 
						|
void resolve_undo_clear_index(struct index_state *);
 | 
						|
int unmerge_index_entry(struct index_state *, const char *, struct resolve_undo_info *, unsigned);
 | 
						|
void unmerge_index(struct index_state *, const struct pathspec *, unsigned);
 | 
						|
 | 
						|
#endif
 |