merge-recursive: separate out xdl_merge() interface.
This just moves code around to make the actual call to xdl_merge() into a separate function. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
							parent
							
								
									515106fa13
								
							
						
					
					
						commit
						3e5261a240
					
				|  | @ -659,6 +659,39 @@ static void fill_mm(const unsigned char *sha1, mmfile_t *mm) | ||||||
| 	mm->size = size; | 	mm->size = size; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static int ll_merge(mmbuffer_t *result_buf, | ||||||
|  | 		    struct diff_filespec *o, | ||||||
|  | 		    struct diff_filespec *a, | ||||||
|  | 		    struct diff_filespec *b, | ||||||
|  | 		    const char *branch1, | ||||||
|  | 		    const char *branch2) | ||||||
|  | { | ||||||
|  | 	mmfile_t orig, src1, src2; | ||||||
|  | 	xpparam_t xpp; | ||||||
|  | 	char *name1, *name2; | ||||||
|  | 	int merge_status; | ||||||
|  |  | ||||||
|  | 	name1 = xstrdup(mkpath("%s:%s", branch1, a->path)); | ||||||
|  | 	name2 = xstrdup(mkpath("%s:%s", branch2, b->path)); | ||||||
|  |  | ||||||
|  | 	fill_mm(o->sha1, &orig); | ||||||
|  | 	fill_mm(a->sha1, &src1); | ||||||
|  | 	fill_mm(b->sha1, &src2); | ||||||
|  |  | ||||||
|  | 	memset(&xpp, 0, sizeof(xpp)); | ||||||
|  | 	merge_status = xdl_merge(&orig, | ||||||
|  | 				 &src1, name1, | ||||||
|  | 				 &src2, name2, | ||||||
|  | 				 &xpp, XDL_MERGE_ZEALOUS, | ||||||
|  | 				 result_buf); | ||||||
|  | 	free(name1); | ||||||
|  | 	free(name2); | ||||||
|  | 	free(orig.ptr); | ||||||
|  | 	free(src1.ptr); | ||||||
|  | 	free(src2.ptr); | ||||||
|  | 	return merge_status; | ||||||
|  | } | ||||||
|  |  | ||||||
| static struct merge_file_info merge_file(struct diff_filespec *o, | static struct merge_file_info merge_file(struct diff_filespec *o, | ||||||
| 		struct diff_filespec *a, struct diff_filespec *b, | 		struct diff_filespec *a, struct diff_filespec *b, | ||||||
| 		const char *branch1, const char *branch2) | 		const char *branch1, const char *branch2) | ||||||
|  | @ -687,30 +720,11 @@ static struct merge_file_info merge_file(struct diff_filespec *o, | ||||||
| 		else if (sha_eq(b->sha1, o->sha1)) | 		else if (sha_eq(b->sha1, o->sha1)) | ||||||
| 			hashcpy(result.sha, a->sha1); | 			hashcpy(result.sha, a->sha1); | ||||||
| 		else if (S_ISREG(a->mode)) { | 		else if (S_ISREG(a->mode)) { | ||||||
| 			mmfile_t orig, src1, src2; |  | ||||||
| 			mmbuffer_t result_buf; | 			mmbuffer_t result_buf; | ||||||
| 			xpparam_t xpp; |  | ||||||
| 			char *name1, *name2; |  | ||||||
| 			int merge_status; | 			int merge_status; | ||||||
|  |  | ||||||
| 			name1 = xstrdup(mkpath("%s:%s", branch1, a->path)); | 			merge_status = ll_merge(&result_buf, o, a, b, | ||||||
| 			name2 = xstrdup(mkpath("%s:%s", branch2, b->path)); | 						branch1, branch2); | ||||||
|  |  | ||||||
| 			fill_mm(o->sha1, &orig); |  | ||||||
| 			fill_mm(a->sha1, &src1); |  | ||||||
| 			fill_mm(b->sha1, &src2); |  | ||||||
|  |  | ||||||
| 			memset(&xpp, 0, sizeof(xpp)); |  | ||||||
| 			merge_status = xdl_merge(&orig, |  | ||||||
| 						 &src1, name1, |  | ||||||
| 						 &src2, name2, |  | ||||||
| 						 &xpp, XDL_MERGE_ZEALOUS, |  | ||||||
| 						 &result_buf); |  | ||||||
| 			free(name1); |  | ||||||
| 			free(name2); |  | ||||||
| 			free(orig.ptr); |  | ||||||
| 			free(src1.ptr); |  | ||||||
| 			free(src2.ptr); |  | ||||||
|  |  | ||||||
| 			if ((merge_status < 0) || !result_buf.ptr) | 			if ((merge_status < 0) || !result_buf.ptr) | ||||||
| 				die("Failed to execute internal merge"); | 				die("Failed to execute internal merge"); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano