git status
dulwichと同等の機能をどのように実行できるのでしょうか。
私はこれを試しました:
いくつかのファイルを追加/変更/名前変更し、コミットのためにそれらをステージングした後、これは私がやろうとしたことです:
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
ツリーの変更に対してはるかに優れたインターフェイスを提供します...これは実際にコミットする前に不可能ですか?