commit-reach: prepare get_merge_bases to handle any repo
Similarly to previous patches, the get_merge_base functions are used often in the code base, which makes migrating them hard. Implement the new functions, prefixed with 'repo_' and hide the old functions behind a wrapper macro. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									f28e87f526
								
							
						
					
					
						commit
						21a9651ba3
					
				|  | @ -258,23 +258,27 @@ static struct commit_list *get_merge_bases_many_0(struct repository *r, | ||||||
| 	return result; | 	return result; | ||||||
| } | } | ||||||
|  |  | ||||||
| struct commit_list *get_merge_bases_many(struct commit *one, | struct commit_list *repo_get_merge_bases_many(struct repository *r, | ||||||
|  | 					      struct commit *one, | ||||||
| 					      int n, | 					      int n, | ||||||
| 					      struct commit **twos) | 					      struct commit **twos) | ||||||
| { | { | ||||||
| 	return get_merge_bases_many_0(the_repository, one, n, twos, 1); | 	return get_merge_bases_many_0(r, one, n, twos, 1); | ||||||
| } | } | ||||||
|  |  | ||||||
| struct commit_list *get_merge_bases_many_dirty(struct commit *one, | struct commit_list *repo_get_merge_bases_many_dirty(struct repository *r, | ||||||
|  | 						    struct commit *one, | ||||||
| 						    int n, | 						    int n, | ||||||
| 						    struct commit **twos) | 						    struct commit **twos) | ||||||
| { | { | ||||||
| 	return get_merge_bases_many_0(the_repository, one, n, twos, 0); | 	return get_merge_bases_many_0(r, one, n, twos, 0); | ||||||
| } | } | ||||||
|  |  | ||||||
| struct commit_list *get_merge_bases(struct commit *one, struct commit *two) | struct commit_list *repo_get_merge_bases(struct repository *r, | ||||||
|  | 					 struct commit *one, | ||||||
|  | 					 struct commit *two) | ||||||
| { | { | ||||||
| 	return get_merge_bases_many_0(the_repository, one, 1, &two, 1); | 	return get_merge_bases_many_0(r, one, 1, &two, 1); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  |  | ||||||
|  | @ -8,17 +8,23 @@ struct commit_list; | ||||||
| struct contains_cache; | struct contains_cache; | ||||||
| struct ref_filter; | struct ref_filter; | ||||||
|  |  | ||||||
| struct commit_list *get_merge_bases_many(struct commit *one, | struct commit_list *repo_get_merge_bases(struct repository *r, | ||||||
| 					 int n, | 					 struct commit *rev1, | ||||||
|  | 					 struct commit *rev2); | ||||||
|  | struct commit_list *repo_get_merge_bases_many(struct repository *r, | ||||||
|  | 					      struct commit *one, int n, | ||||||
| 					      struct commit **twos); | 					      struct commit **twos); | ||||||
| struct commit_list *get_merge_bases_many_dirty(struct commit *one, |  | ||||||
| 					       int n, |  | ||||||
| 					       struct commit **twos); |  | ||||||
| struct commit_list *get_merge_bases(struct commit *one, struct commit *two); |  | ||||||
| struct commit_list *get_octopus_merge_bases(struct commit_list *in); |  | ||||||
|  |  | ||||||
| /* To be used only when object flags after this call no longer matter */ | /* To be used only when object flags after this call no longer matter */ | ||||||
| struct commit_list *get_merge_bases_many_dirty(struct commit *one, int n, struct commit **twos); | struct commit_list *repo_get_merge_bases_many_dirty(struct repository *r, | ||||||
|  | 						    struct commit *one, int n, | ||||||
|  | 						    struct commit **twos); | ||||||
|  | #ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS | ||||||
|  | #define get_merge_bases(r1, r2)           repo_get_merge_bases(the_repository, r1, r2) | ||||||
|  | #define get_merge_bases_many(one, n, two) repo_get_merge_bases_many(the_repository, one, n, two) | ||||||
|  | #define get_merge_bases_many_dirty(one, n, twos) repo_get_merge_bases_many_dirty(the_repository, one, n, twos) | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | struct commit_list *get_octopus_merge_bases(struct commit_list *in); | ||||||
|  |  | ||||||
| int is_descendant_of(struct commit *commit, struct commit_list *with_commit); | int is_descendant_of(struct commit *commit, struct commit_list *with_commit); | ||||||
| int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit **reference); | int in_merge_bases_many(struct commit *commit, int nr_reference, struct commit **reference); | ||||||
|  |  | ||||||
|  | @ -64,3 +64,29 @@ expression E; | ||||||
| - parse_commit( | - parse_commit( | ||||||
| + repo_parse_commit(the_repository, | + repo_parse_commit(the_repository, | ||||||
|   E) |   E) | ||||||
|  |  | ||||||
|  | @@ | ||||||
|  | expression E; | ||||||
|  | expression F; | ||||||
|  | @@ | ||||||
|  | - get_merge_bases( | ||||||
|  | + repo_get_merge_bases(the_repository, | ||||||
|  |   E, F); | ||||||
|  |  | ||||||
|  | @@ | ||||||
|  | expression E; | ||||||
|  | expression F; | ||||||
|  | expression G; | ||||||
|  | @@ | ||||||
|  | - get_merge_bases_many( | ||||||
|  | + repo_get_merge_bases_many(the_repository, | ||||||
|  |   E, F, G); | ||||||
|  |  | ||||||
|  | @@ | ||||||
|  | expression E; | ||||||
|  | expression F; | ||||||
|  | expression G; | ||||||
|  | @@ | ||||||
|  | - get_merge_bases_many_dirty( | ||||||
|  | + repo_get_merge_bases_many_dirty(the_repository, | ||||||
|  |   E, F, G); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Stefan Beller
						Stefan Beller