Merge branch 'ea/merge-code-cleanup'
A loop has been rewritten for conciseness and clarity. * ea/merge-code-cleanup: builtin/merge.c - cleanup of code in for-cycle that tests strategiesmaint
						commit
						dd0bc5b531
					
				|  | @ -892,6 +892,7 @@ static int finish_automerge(struct commit *head, | |||
| 	struct strbuf buf = STRBUF_INIT; | ||||
| 	struct object_id result_commit; | ||||
|  | ||||
| 	write_tree_trivial(result_tree); | ||||
| 	free_commit_list(common); | ||||
| 	parents = remoteheads; | ||||
| 	if (!head_subsumed || fast_forward == FF_NO) | ||||
|  | @ -1586,8 +1587,8 @@ int cmd_merge(int argc, const char **argv, const char *prefix) | |||
| 	    save_state(&stash)) | ||||
| 		oidclr(&stash); | ||||
|  | ||||
| 	for (i = 0; i < use_strategies_nr; i++) { | ||||
| 		int ret; | ||||
| 	for (i = 0; !merge_was_ok && i < use_strategies_nr; i++) { | ||||
| 		int ret, cnt; | ||||
| 		if (i) { | ||||
| 			printf(_("Rewinding the tree to pristine...\n")); | ||||
| 			restore_state(&head_commit->object.oid, &stash); | ||||
|  | @ -1604,40 +1605,26 @@ int cmd_merge(int argc, const char **argv, const char *prefix) | |||
| 		ret = try_merge_strategy(use_strategies[i]->name, | ||||
| 					 common, remoteheads, | ||||
| 					 head_commit); | ||||
| 		if (!option_commit && !ret) { | ||||
| 			merge_was_ok = 1; | ||||
| 			/* | ||||
| 			 * This is necessary here just to avoid writing | ||||
| 			 * the tree, but later we will *not* exit with | ||||
| 			 * status code 1 because merge_was_ok is set. | ||||
| 			 */ | ||||
| 			ret = 1; | ||||
| 		} | ||||
|  | ||||
| 		if (ret) { | ||||
| 			/* | ||||
| 			 * The backend exits with 1 when conflicts are | ||||
| 			 * left to be resolved, with 2 when it does not | ||||
| 			 * handle the given merge at all. | ||||
| 			 */ | ||||
| 			if (ret == 1) { | ||||
| 				int cnt = evaluate_result(); | ||||
|  | ||||
| 				if (best_cnt <= 0 || cnt <= best_cnt) { | ||||
| 					best_strategy = use_strategies[i]->name; | ||||
| 					best_cnt = cnt; | ||||
| 		/* | ||||
| 		 * The backend exits with 1 when conflicts are | ||||
| 		 * left to be resolved, with 2 when it does not | ||||
| 		 * handle the given merge at all. | ||||
| 		 */ | ||||
| 		if (ret < 2) { | ||||
| 			if (!ret) { | ||||
| 				if (option_commit) { | ||||
| 					/* Automerge succeeded. */ | ||||
| 					automerge_was_ok = 1; | ||||
| 					break; | ||||
| 				} | ||||
| 				merge_was_ok = 1; | ||||
| 			} | ||||
| 			cnt = evaluate_result(); | ||||
| 			if (best_cnt <= 0 || cnt <= best_cnt) { | ||||
| 				best_strategy = use_strategies[i]->name; | ||||
| 				best_cnt = cnt; | ||||
| 			} | ||||
| 			if (merge_was_ok) | ||||
| 				break; | ||||
| 			else | ||||
| 				continue; | ||||
| 		} | ||||
|  | ||||
| 		/* Automerge succeeded. */ | ||||
| 		write_tree_trivial(&result_tree); | ||||
| 		automerge_was_ok = 1; | ||||
| 		break; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano