gpt4 book ai didi

dulwich - 以编程方式 `git status` 与 dulwich

转载 作者:行者123 更新时间:2023-12-02 00:21:09 25 4
gpt4 key购买 nike

我想知道如何使用 dulwich 执行与 git status 等效的操作?

我试过这个:

在添加/更改/重命名一些文件并将它们暂存以供提交后,这就是我尝试做的事情:

from dulwich.repo  import Repo
from dulwich.index import changes_from_tree
r = Repo('my-git-repo')
index = r.open_index()
changes = index.changes_from_tree(r.object_store, r['HEAD'].tree)

输出如下:

>>> list(changes)
(('Makefile', None), (33188, None), ('9b20...', None))
(('test/README.txt', 'test/README.txt'), (33188, 33188), ('484b...', '4f89...'))
((None, 'Makefile.mk'), (None, 33188), (None, '9b20...'))
((None, 'TEST.txt'), (None, 33188), (None, '2a02...'))

但是这个输出需要我进一步处理它来检测:

  1. 我修改了 README.txt
  2. 我将 Makefile 重命名为 Makefile.mk
  3. 我将 TEST.txt 添加到存储库。

dulwich.diff_tree 中的函数为树更改提供了一个更好的接口(interface)...在实际提交之前这不可能吗?

最佳答案

您应该能够使用 dulwich.diff_tree.tree_changes检测两棵树之间的变化。

其中一个要求是您将相关的树对象添加到对象存储中 - 您可以为此使用 dulwich.index.commit_index

关于dulwich - 以编程方式 `git status` 与 dulwich,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10903803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com