Rust &引用;未由存储库支持的索引“;从';的索引写入树时,libgit2出错;拉动';犯罪
当我执行Rust &引用;未由存储库支持的索引“;从';的索引写入树时,libgit2出错;拉动';犯罪,rust,libgit2,Rust,Libgit2,当我执行index.write_tree())(index是使用merge_提交进行合并后生成的index)时,我会收到一个错误“写入树失败。索引文件未由现有存储库备份”。我有一个现有的存储库。[在这篇文章的原始版本中它是裸体的,但我已经将它改为非裸体的,它仍然不工作。]我做错了什么 更一般地说,我尝试实现git pull(先获取,然后合并)。在catch-up案例中,我理解在获取和合并之后,我需要写出一个commit。这就是我想做的。我该怎么做 基本上,我的代码是 let index=repo
index.write_tree())
(index
是使用merge_提交
进行合并后生成的index
)时,我会收到一个错误“写入树失败。索引文件未由现有存储库备份”。我有一个现有的存储库。[在这篇文章的原始版本中它是裸体的,但我已经将它改为非裸体的,它仍然不工作。]我做错了什么
更一般地说,我尝试实现git pull(先获取,然后合并)。在catch-up案例中,我理解在获取和合并之后,我需要写出一个commit。这就是我想做的。我该怎么做
基本上,我的代码是
let index=repo.merge_提交(&our_提交,&thes_提交,Some(&MergeOptions::new())?;
如果!index.has_conflications(){
让new_tree_oid=index.write_tree()?;//此处发生错误
让new_tree=repo.find_tree(new_tree_oid)?;
//...
}
这是使用rustgit2
板条箱,它包装了libgit2
库。如果有内存索引,则没有存储库的索引。这是阻止你写它的区别
您有几个处理内存中索引的选项:
write_tree_to
函数将允许您指定要写入的存储库尽管我会问,为什么要使用
git\u merge\u提交
,而不仅仅是git\u merge
,它应该为您解决所有这些问题,包括处理冲突。如果你真的在做一个git pull
仿真,那么你需要解决这个问题。这个问题有问题吗?还没有人对此发表评论。这个问题没有问题,但是错误非常具体,所以没有多少人能够回答。您可能有更好的机会直接联系liggit2和Liggit的社区,例如通过他们的github页面。@Ilyapov谢谢。libgit2站点说要尝试堆栈溢出,但它们也有一个空闲通道,所以我已经尝试过了。