Git
Chapters ▾ 2nd Edition

A2.5 Appendix B: Git in je applicaties inbouwen - Dulwich

Dulwich

Er is ook een zuivere Python Git implementatie - Dulwich. Het project wordt gehost onder https://www.dulwich.io/ Het doel van het project is om een interface naar git repositories te bieden (zowel lokaal als remote) die geen directe git aanroepen doet, maar daarentegen puur Python gebruikt. Het heeft echter een optionele C-extensie, die de prestaties behoorlijk versnelt.

Dulwich volgt het git ontwerp en maakt een scheiding tussen twee basisniveaus wat APIs betreft: binnenwerk en koetswerk (plumbing en porcelain).

Hier is een voorbeeld hoe een lager niveau API te gebruiken om toegang tot het commit-bericht van de laatste commit te benaderen:

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

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

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

Om een commit-log af te drukken gebruikmakend van de API van het hogere niveau (porcelein), kan men het volgende doen:

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

Meer weten