Kapitel ▾ 2. Auflage

A2.5 Anhang B: Git in Ihre Anwendungen einbetten - Dulwich

Dulwich

Es gibt auch eine reine Python-Git-Implementierung – Dulwich. Das Projekt wird unter https://www.dulwich.io/ gehostet. Es zielt darauf ab, eine Schnittstelle zu Git-Repositories (sowohl lokal als auch remote) bereitzustellen, die Git nicht direkt aufruft, sondern stattdessen reines Python verwendet. Es verfügt jedoch über optionale C-Erweiterungen, die die Leistung erheblich verbessern.

Dulwich folgt dem Git-Design und trennt zwei grundlegende API-Ebenen: Plumbing und Porcelain.

Hier ist ein Beispiel für die Verwendung der API auf niedrigerer Ebene, um auf die Commit-Nachricht des letzten Commits zuzugreifen

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

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

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

Um ein Commit-Log mit der High-Level-Porcelain-API auszugeben, kann man verwenden

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

Weiterführende Literatur

Die API-Dokumentation, ein Tutorial und viele Beispiele, wie man spezifische Aufgaben mit Dulwich erledigt, sind auf der offiziellen Website https://www.dulwich.io verfügbar.