首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >libgit2:与冲突合并

libgit2:与冲突合并
EN

Stack Overflow用户
提问于 2017-04-12 20:24:02
回答 1查看 504关注 0票数 0

我正在使用libgit2实现合并,在处理冲突(对文件中同一行的更改)时遇到了困难--合并只是中止,没有写入索引或工作区。可解决的冲突(对不同行的更改)运行良好。

它与GIT_ECONFLICT一起存在,这显然表明工作树和/或索引不是干净的,但是我在调用git_merge()之前使用git status进行了检查,并且它是干净的。

我使用默认的合并选项,并将签出选项设置为GIT_CHECKOUT_SAFE | GIT_CHECKOUT_ALLOW_CONFLICTS。我尝试使用FORCE而不是SAFE,但这没有帮助。我还需要做什么才能记录冲突?

代码在这里(在Swift中):https://github.com/Uncommon/Xit/blob/ff1bf6312bb1250b1db432035947a282a2cdd362/Xit/XTRepository%2BMergePushPull.swift#L154

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 14:48:54

结果问题是,由于我的单元测试刚刚使用命令行工具执行了一个git commit,所以libgit2 2的内存中索引副本已经过时,所以使用该索引的旧副本它认为存在冲突。在调用git_index_read()之前,用git_merge()重新加载索引解决了这个问题。

这实际上是libgit2中的一个错误;git_merge应该重新加载索引本身:https://github.com/libgit2/libgit2/issues/4203

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43378998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档