Chapters ▾ 2nd Edition

A2.5 Bilaga B: Bädda in Git i dina applikationer - Dulwich

Dulwich

Det finns också en ren Python‑implementation av Git som heter Dulwich. Projektet finns på https://www.dulwich.io/. Det siktar på att ge ett gränssnitt till Git‑kodförråd (både lokala och fjärrkodförråd) som inte anropar Git direkt utan i stället använder ren Python. Det har dock valfria C‑tillägg som avsevärt förbättrar prestandan.

Dulwich följer Gits design och delar upp API:t i två huvudnivåer: lågnivådel och användardel.

Här är ett exempel på hur man använder lågnivå‑API:t för att komma åt incheckningsmeddelandet för den senaste incheckningen:

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

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

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

För att skriva ut en incheckningslogg med användar‑API:t (porcelain) på hög nivå kan du göra så här:

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

Vidare läsning

API‑dokumentation, handledning och många exempel på hur man gör specifika uppgifter med Dulwich finns på den officiella webbplatsen https://www.dulwich.io.