| 1 | /* |
| 2 | * Low level 3-way in-core file merge. |
| 3 | */ |
| 4 | |
| 5 | #ifndef LL_MERGE_H |
| 6 | #define LL_MERGE_H |
| 7 | |
| 8 | #include "xdiff/xdiff.h" |
| 9 | |
| 10 | struct index_state; |
| 11 | |
| 12 | struct ll_merge_options { |
| 13 | unsigned virtual_ancestor : 1; |
| 14 | unsigned variant : 2; /* favor ours, favor theirs, or union merge */ |
| 15 | unsigned renormalize : 1; |
| 16 | unsigned extra_marker_size; |
| 17 | long xdl_opts; |
| 18 | }; |
| 19 | |
| 20 | int ll_merge(mmbuffer_t *result_buf, |
| 21 | const char *path, |
| 22 | mmfile_t *ancestor, const char *ancestor_label, |
| 23 | mmfile_t *ours, const char *our_label, |
| 24 | mmfile_t *theirs, const char *their_label, |
| 25 | struct index_state *istate, |
| 26 | const struct ll_merge_options *opts); |
| 27 | |
| 28 | int ll_merge_marker_size(struct index_state *istate, const char *path); |
| 29 | void reset_merge_attributes(void); |
| 30 | |
| 31 | #endif |