#ifndef INCLUDE_merge_driver_h__
#define INCLUDE_merge_driver_h__
#include "git2/merge.h"
#include "git2/index.h"
#include "git2/sys/merge.h"
struct
git_merge_driver_source {
git_repository *repo;
const
char
*default_driver;
const
git_merge_file_options *file_opts;
const
git_index_entry *ancestor;
const
git_index_entry *ours;
const
git_index_entry *theirs;
};
typedef
struct
git_merge_driver__builtin {
git_merge_driver base;
git_merge_file_favor_t favor;
} git_merge_driver__builtin;
extern
int
git_merge_driver_global_init(
void
);
extern
int
git_merge_driver_for_path(
char
**name_out,
git_merge_driver **driver_out,
git_repository *repo,
const
char
*path);
extern
int
git_merge_driver_for_source(
const
char
**name_out,
git_merge_driver **driver_out,
const
git_merge_driver_source *src);
extern
int
git_merge_driver__builtin_apply(
git_merge_driver *self,
const
char
**path_out,
uint32_t *mode_out,
git_buf *merged_out,
const
char
*filter_name,
const
git_merge_driver_source *src);
extern
git_merge_driver__builtin git_merge_driver__text;
extern
git_merge_driver__builtin git_merge_driver__union;
extern
git_merge_driver git_merge_driver__binary;
#endif