Browse Source
* mv/merge-recursive: builtin-merge: release the lockfile in try_merge_strategy() merge-recursive: get rid of virtual_id merge-recursive: move current_{file,directory}_set to struct merge_options merge-recursive: move the global obuf to struct merge_options merge-recursive: get rid of the index_only global variable merge-recursive: move call_depth to struct merge_options cherry-pick/revert: make direct internal call to merge_tree() builtin-merge: avoid run_command_v_opt() for recursive and subtree merge-recursive: introduce merge_options merge-recursive.c: Add more generic merge_recursive_generic() Split out merge_recursive() to merge-recursive.cmaint
Shawn O. Pearce
16 years ago
8 changed files with 1580 additions and 1454 deletions
@ -1,20 +1,48 @@
@@ -1,20 +1,48 @@
|
||||
#ifndef MERGE_RECURSIVE_H |
||||
#define MERGE_RECURSIVE_H |
||||
|
||||
int merge_recursive(struct commit *h1, |
||||
#include "string-list.h" |
||||
|
||||
struct merge_options { |
||||
const char *branch1; |
||||
const char *branch2; |
||||
unsigned subtree_merge : 1; |
||||
unsigned buffer_output : 1; |
||||
int verbosity; |
||||
int diff_rename_limit; |
||||
int merge_rename_limit; |
||||
int call_depth; |
||||
struct strbuf obuf; |
||||
struct string_list current_file_set; |
||||
struct string_list current_directory_set; |
||||
}; |
||||
|
||||
/* merge_trees() but with recursive ancestor consolidation */ |
||||
int merge_recursive(struct merge_options *o, |
||||
struct commit *h1, |
||||
struct commit *h2, |
||||
const char *branch1, |
||||
const char *branch2, |
||||
struct commit_list *ancestors, |
||||
struct commit **result); |
||||
|
||||
int merge_trees(struct tree *head, |
||||
/* rename-detecting three-way merge, no recursion */ |
||||
int merge_trees(struct merge_options *o, |
||||
struct tree *head, |
||||
struct tree *merge, |
||||
struct tree *common, |
||||
const char *branch1, |
||||
const char *branch2, |
||||
struct tree **result); |
||||
|
||||
struct tree *write_tree_from_memory(void); |
||||
/* |
||||
* "git-merge-recursive" can be fed trees; wrap them into |
||||
* virtual commits and call merge_recursive() proper. |
||||
*/ |
||||
int merge_recursive_generic(struct merge_options *o, |
||||
const unsigned char *head, |
||||
const unsigned char *merge, |
||||
int num_ca, |
||||
const unsigned char **ca, |
||||
struct commit **result); |
||||
|
||||
void init_merge_options(struct merge_options *o); |
||||
struct tree *write_tree_from_memory(struct merge_options *o); |
||||
|
||||
#endif |
||||
|
Loading…
Reference in new issue