6

pygit2 ライブラリを使用しようとしています。

最初のステップで行き詰まったようです。そのドキュメントには、ブロブを作成してツリーに追加する方法が説明されていません。ほとんどの場合、既存の git リポジトリを操作する方法に関するものですが、リポジトリを作成して、ブロブ、コミットなどをリポジトリに追加したいと考えています。ファイルから直接 BLOB を作成することは可能ですか? ファイルの内容を読み取って blob.data を設定する必要がありますか?

from pygit2 import Repository
from pygit2 import init_repository

bare = False
repo = init_repository('test', bare)

BLOB またはツリーを作成してリポジトリに追加するにはどうすればよいですか?

4

1 に答える 1

7

Pythonバインディングでは、ファイルから直接BLOBを作成することはできないため、ファイルをメモリに読み込んでRepository.write(pygit2.GIT_OBJ_BLOB, filecontents)、BLOBの作成に使用する必要があります。

TreeBuilder次に、たとえば、次のようにツリーを作成できます。

import pygit2 as g

repo = g.Repository('.')
# grab the file from wherever and store in 'contents'
oid = repo.write(g.GIT_OBJ_BLOB, contents)
bld = repo.TreeBuilder()
# attributes is whether it's a file or dir, 100644, 100755 or 040000
bld.insert('file.txt', oid, attributes)
treeoid = bld.write()
于 2012-05-02T14:14:33.623 に答える