e1b3a2cad7
This makes write_tree_from_memory(), which writes the active cache as a tree and returns the struct tree for it, available to other code. It also makes available merge_trees(), which does the internal merge of two trees with a known base, and merge_recursive(), which does the recursive internal merge of two commits with a list of common ancestors. The first two of these will be used by checkout -m, and the third is presumably useful in general, although the implementation of checkout -m which entirely matches the behavior of the shell version does not use it (since it ignores the difference of ancestry between the old branch and the new branch). Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
21 lines
443 B
C
21 lines
443 B
C
#ifndef MERGE_RECURSIVE_H
|
|
#define MERGE_RECURSIVE_H
|
|
|
|
int merge_recursive(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,
|
|
struct tree *merge,
|
|
struct tree *common,
|
|
const char *branch1,
|
|
const char *branch2,
|
|
struct tree **result);
|
|
|
|
struct tree *write_tree_from_memory(void);
|
|
|
|
#endif
|