mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
![Linus Torvalds](/assets/img/avatar_default.png)
This makes no changes to current code, but it allows the individual merge functions to decide what to do about the old entry. They might decide to update it in place, rather than force them to always delete and re-add it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
39 lines
940 B
C
39 lines
940 B
C
#ifndef UNPACK_TREES_H
|
|
#define UNPACK_TREES_H
|
|
|
|
struct unpack_trees_options;
|
|
|
|
typedef int (*merge_fn_t)(struct cache_entry **src,
|
|
struct unpack_trees_options *options,
|
|
int remove);
|
|
|
|
struct unpack_trees_options {
|
|
int reset;
|
|
int merge;
|
|
int update;
|
|
int index_only;
|
|
int nontrivial_merge;
|
|
int trivial_merges_only;
|
|
int verbose_update;
|
|
int aggressive;
|
|
const char *prefix;
|
|
int pos;
|
|
struct dir_struct *dir;
|
|
merge_fn_t fn;
|
|
|
|
int head_idx;
|
|
int merge_size;
|
|
|
|
struct cache_entry *df_conflict_entry;
|
|
};
|
|
|
|
extern int unpack_trees(unsigned n, struct tree_desc *t,
|
|
struct unpack_trees_options *options);
|
|
|
|
int threeway_merge(struct cache_entry **stages, struct unpack_trees_options *o, int);
|
|
int twoway_merge(struct cache_entry **src, struct unpack_trees_options *o, int);
|
|
int bind_merge(struct cache_entry **src, struct unpack_trees_options *o, int);
|
|
int oneway_merge(struct cache_entry **src, struct unpack_trees_options *o, int);
|
|
|
|
#endif
|