Я хочу использовать libgit2, чтобы получить предварительный просмотр коммита конфликта в голом репо, что означает отсутствие рабочего каталога.
использует эти функции, git_merge_commits
git_index_has_conflicts
и git_index_conflict_get
, чтобы получить относительную информацию.
Основной код вроде этого:
git_index *index;
int error = git_merge_commits(&index, repo, git_commit1, git_commit2, NULL);
int conflict_count = git_index_has_conflicts(index);
git_oid index_tree_oid, index_commit_oid;
git_tree *index_tree;
if(conflict_count == 0) {
// do commit the index
} else {
// solve conflict
const git_index_entry *ancestor = NULL,
*ours = NULL,
*theirs = NULL;
error = git_index_conflict_get(
&ancestor,
&ours,
&theirs,
index,
"file2");
error_check(error);
...
Как получить предварительный просмотр слияния в буфере
содержит <<<< HEAD
как это?
aaaaaaaa
bbbbbbbb22222222
<<<<<<< HEAD
bbbbbbbb11111111
bbbbbbbb11111111
=======
bbbbbbbb22222222
>>>>>>> b3
aaaaaaaa
aaaaaaaa
aaaaaaaa
В настоящее время объединение может содержать только один файл.
Спасибо