Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust &引用;未由存储库支持的索引“;从';的索引写入树时,libgit2出错;拉动';犯罪_Rust_Libgit2 - Fatal编程技术网

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)?;
//...
}
这是使用rust
git2
板条箱,它包装了
libgit2
库。

如果有内存索引,则没有存储库的索引。这是阻止你写它的区别

您有几个处理内存中索引的选项:

  • 可以使用将其转换为树(然后可以创建使用该树的提交)。
    write_tree_to
    函数将允许您指定要写入的存储库
  • 您可以使用将其作为存储库的索引

  • 尽管我会问,为什么要使用
    git\u merge\u提交
    ,而不仅仅是
    git\u merge
    ,它应该为您解决所有这些问题,包括处理冲突。如果你真的在做一个
    git pull
    仿真,那么你需要解决这个问题。

    这个问题有问题吗?还没有人对此发表评论。这个问题没有问题,但是错误非常具体,所以没有多少人能够回答。您可能有更好的机会直接联系liggit2和Liggit的社区,例如通过他们的github页面。@Ilyapov谢谢。libgit2站点说要尝试堆栈溢出,但它们也有一个空闲通道,所以我已经尝试过了。