Chapters ▾ 2nd Edition

A2.5 Appendix B: Ενσωμάτωση του Git στις εφαρμογές μας - Dulwich

Dulwich

Υπάρχει επίσης μια καθαρή υλοποίση του Git σε Python - Dulwich. Το project φιλοξενείται στο https://www.dulwich.io/. Στοχεύει στην παροχή μιας διεπαφής με τα Git αποθετήρια (τοπικά και απομακρυσμένα) που δεν καλεί το Git απευθείας αλλά, αντιθέτως, χρησιμοποιεί μόνο Python. Έχει προαιρετικές C επεκτάσεις όμως, που βελτιώνουν σημαντικά την απόδοση.

Το Dulwich ακολουθεί το σχεδιασμό του Git και διαχωρίζει δύο βασικά επίπεδα API: τη διοχέτευση (plumbing) και πορσελάνη (porcelain).

Ακολουθεί ένα παράδειγμα που χρησιμοποιεί χαμηλού επιπέδου API για την πρόσβαση στο μήνυμα υποβολής της τελευταίας υποβολής:

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

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

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

Για να εκτυπώσουμε το log μιας υποβολής χρησιμοποιώντας υψηλού επιπέδου πορσελάνη (porcelain) API, μπορούμε να χρησιμοποιήσουμε:

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

Περαιτέρω Ανάγνωση

Η τεκμηρίωση API, μαθήματα (tutorial), και πολλά παραδείγματα για το πως να κάνουμε συγκεκριμένες εργασίες (tasks) με το Dulwich είναι διαθέσιμα στην επίσημη ιστοσελίδα https://www.dulwich.io.