libgit2中用户git_merge失败时如何输出通知回调?

问题描述

我正试图从libgit2的仓库中撤出。

我的步骤是这些:

我使用git_remote_fetch删除远程原始数据并返回OK。

使用git_merge API之后。 问题是两个用户修改同一文件的同一区域,libgit2将报告内容冲突。此状态正常。

接下来,我只删除本地文件'a.txt',同时我只修改远程分支文件'b.txt'。并在我的git_checkout_options中设置一个notify_cb,并设置notify_flags以包括GIT_CHECKOUT_NOTIFY_CONFLICT | GIT_CHECKOUT_NOTIFY_ALL。结果git_merge刚返回的错误代码是'-13',没有输出冲突文件名。合并失败时如何从通知回调获取冲突文件名?

git_merge_options checkout_opt = GIT_CHECKOUT_OPTINS_INIT;
git_checkout_options checkout_opt = GIT_CHECKOUT_OPTIONS_INT;
checkout_opt.checkout_strategy = GIT_CHECKOUT_SAFE | GIT_CHECKOUT_ALLOW_CONFLICTS;
checkout_opt.notify_flags = GIT_CHECKOUT_NOTIFY_ALL | GIT_CHECKOUT_NOTIFY_CONFLICT;
checkout_opt.notify_cb = git_checkout_notify_cb // git_checkout_notify_cb is myself write callback.

int error = git_merge(repo,&their_head[0],1,&merge_opt,&checkout);
if(error<0)
{
   //Just output error code -13. no call notify callback.
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)