Как добавить что-то в индекс, зафиксировать это, а затем отправить ветку master на именованный удаленный узел с помощью dulwich? - PullRequest
2 голосов
/ 28 сентября 2011

Как мне добавить что-то в индекс, как в

git add .

тогда

git commit -m "message"

тогда

git push origin master

используя Дульвича?

Пока я нашел это http://www.samba.org/~jelmer/dulwich/apidocs/dulwich.index.Index.html, но это мало что говорит, не так ли?

Спасибо

Ответы [ 2 ]

4 голосов
/ 28 сентября 2011

Это не проверенный ответ, но он ближе к толчковой части:

# set wants to master
def wantmaster(haves, wants):
  global repo
  return { "refs/heads/master": repo.refs["HEAD"] }

client, src = dulwich.client.get_transport_and_path(origin_uri) 

client.send_pack(src, wantmaster, repo.object_store.generate_pack_contents)

Вариант этого работает в моем коде.

2 голосов
/ 28 сентября 2011

В этом случае вам нужен не индекс, а репо (частью которого является индекс).http://www.samba.org/~jelmer/dulwich/apidocs/dulwich.repo.Repo.html

Как-то так должно работать:

>>> from dulwich.repo import Repo
>>> x = Repo('.')
>>> x.stage(['a'])
>>> x.do_commit(message="foo")
'151915d47467696d2f9d18de6f61be7168682aeb'
...