我想知道如何執行相當於git status
與德威?編程`git狀態`與德威
我嘗試這樣做:
添加/更改/重命名了一些文件和分期他們提交後,這是我試着做:
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...'))
但是這個輸出要求我進一步處理它來檢測:
- 我修改了
README.txt
。 - 我將其更名爲
Makefile
至Makefile.mk
。 - 我將
TEST.txt
添加到存儲庫。
dulwich.diff_tree
中的函數提供了更好的樹更改界面......在實際提交之前這是不可能的嗎?
看來,因爲'repo.head沒有工作()'是類型'str'因此你不能辦理'.tree'就可以了: ( – Mapio
似乎是更多的api更改。現在有一個'dulwich.porcelain.get_tree_changes(回購)' - 「通過比較索引與HEAD返回添加/刪除/修改樹的更改。」@Mapio – gameweld