libgit2 - 当用户 git_merge 在 libgit2 中失败时如何输出通知回调?
问题描述
我正在尝试从带有 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.
}
解决方案
推荐阅读
- kotlin - 如何在 Ktor websockets 上发送 ping
- xamarin.forms - Xamarin.forms ios打开拨号器没有警报框
- android - 相机崩溃时的返回按钮
- python - 熊猫合并数据帧并覆盖原始df中的数据
- angular - 这个对象类型是什么以及如何获得它的价值?
- r - R:如何在复杂的数据框中删除具有某些条件的重复项?
- scanning - Tosca 元素定位器在 x 扫描链接或按钮属性时出现问题
- avr - 在 Arduino Uno 上设置 16 MHz 的 SPI_CLOCK 时钟速度是否安全?
- javascript - 将文件文本呈现为 html 并能够搜索其内容
- python - 请求问题 - 下载空图像