Nodegit treebuilder错误:无法插入条目:指定了无效的对象

问题描述

我正在使用打字稿中的nodegit探索git。我正在将回购的内容写入外部文件,然后尝试使用该文件内容重新创建新的回购。

这是外部文件的结构:

interface ITree {
    sha: string;
    url: string;
    tree: ITreeEntry[];
}

export interface ITreeEntry {
    path: string;
    mode: string;
    type: string;
    size: number;
    sha: string;
    content: string;
}

我正在尝试读取外部文件并创建一个新的仓库,如下所示:

  1. 我正在树上遍历,每当看到斑点时,我都会将斑点推入新创建的存储库中
  2. 然后,我尝试使用nodegit Treebuilder创建树。但是,当我尝试在Treebuilder中插入以下节点时,出现错误:{“ mode”:“ 40000”,“ path”:“。logTail”,“ sha”:“ 5df738a98c422a0d9ad6f142f9c3724aeaf952f0”,“ type”:“树”}

Failed to insert entry: invalid object specified - .logTail

const repository = await repoManager.open(owner,repo);
const builder = await git.Treebuilder.create(repository,null);
for (const node of tree) {
    builder.insert(node.path,git.Oid.fromString(node.sha),parseInt(node.mode,8));
}

我希望使用此git树来创建提交,然后更新引用以从外部文件有效地补水。有人可以让我知道我在哪里出错吗?

我从this link看到会有更多的验证,但是我不明白为什么我要插入的对象无效。

解决方法

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

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

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