Как обновить или добавить файл в конкретную ветку - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь использовать pygit2 для добавления / изменения файлов в ветвях без проверки ветки.

author = pygit2.Signature("Alice Author", "alice@authors.tld")
testbranch = r.lookup_branch("testbranch")
r = pygit2.Repository("somedirectory")
oid = r.create_blob("filecontent")
commit = r.revparse_single("testbranch")
bld = r.TreeBuilder(r.revparse_single("testbranch:testdir"))
bld.insert("file", oid, pygit2.GIT_FILEMODE_BLOG)
tree = bld.write()
r.create_commit('refs/heads/testbranch', author, author, 'updated file', tree, [testbranch.target])

Код обновляет файл, но при фиксации также удаляются все остальные файлы. Кроме того, файл больше не находится в testdir, а находится в корневом каталоге папки git. Я думаю, мне нужно как-то добавить других родителей в create_commit и, возможно, использовать TreeBuilder по-другому?

...