Chapters ▾ 2nd Edition

A2.5 Appendix B: Incorporando o Git nos seus Aplicativos - Dulwich

Dulwich

Há também uma implementação do Git escrita inteiramente em Python: Dulwich. O projeto está hospedado em https://www.dulwich.io/. Seu objetivo é oferecer uma interface para repositórios Git (tanto locais quanto remotos) que não invoque o Git diretamente, mas use apenas Python. No entanto, ela dispõe de extensões C opcionais que melhoram significativamente o desempenho.

O Dulwich segue o design do Git e separa a API em dois níveis básicos: encanamento (plumbing) e porcelana (porcelain).

Eis um exemplo de uso da API de baixo nível para acessar a mensagem do commit mais recente:

from dulwich.repo import Repo
r = Repo('.')
r.head()
# '57fbe010446356833a6ad1600059d80b1e731e15'

c = r[r.head()]
c
# <Commit 015fc1267258458901a94d228e39f0a378370466>

c.message
# 'Add note about encoding.\n'

Para exibir um log de commits usando a API de porcelana de alto nível, você pode usar:

from dulwich import porcelain
porcelain.log('.', max_entries=1)

#commit: 57fbe010446356833a6ad1600059d80b1e731e15
#Author: Jelmer Vernooij <jelmer@jelmer.uk>
#Date:   Sat Apr 29 2017 23:57:34 +0000

Leituras Adicionais

A documentação da API, o tutorial e muitos exemplos de como realizar tarefas específicas com o Dulwich estão disponíveis no site oficial https://www.dulwich.io.