【发布时间】:2020-03-15 18:39:21
【问题描述】:
您的新手正在尝试使用 libgit2 将文件添加到子目录。我想要的是一些关于我是否了解我需要做什么的反馈。
我已经设法在顶级目录中创建了一些文件。我还设法创建了一个子目录,子目录在顶级目录中,文件在子目录中。
我在一个裸存储库中完成所有这些工作,每个目录都有 libgit2 树对象,使用树构建器创建和重新创建。
但是当我尝试在子目录中创建一个新文件时,它会进入顶级目录。事实上,我期望在子目录中的所有内容都在顶级目录中结束。
所以,在我看来:
- 我正在“在子目录中”做的是用现有内容和我的新文件创建一个新目录。
- 然后我需要做的是创建一个新的顶级目录,其中包含 (a) 现有顶级目录的所有内容,除了 (b) 我新创建的子目录代替旧的子目录。
大概然后,要更新文件层次结构中的任何文件,我还需要运行目录树来重建每个祖先目录。然后我需要在commit中提交顶级目录。
我确实有一些代码,但现在很混乱,所以我不想把它强加到 StackOverflow 上。
如果有人可以共享任何执行此操作的代码,那就太好了。我实际上为此使用了 Rust,但任何语言都可以。
【问题讨论】:
标签: git subdirectory libgit2