Git è progettato per essere costituito da "tubature" e "porcellana". I componenti idraulici costituiscono il sistema di base, di basso livello: gestione di oggetti, repository, telecomandi e così via. La porcellana, d'altra parte, significa strumenti di alto livello di facile utilizzo che utilizzano l'impianto idraulico.
Storicamente, solo le parti più fondamentali/prestazioni critiche (principalmente idraulici) sono state implementate in C, il resto ha usato script shell/perl. Per essere più portabile, sempre più codice è stato riscritto in C.
Con questo sfondo, mi sento di raccomandare di utilizzare semplicemente le chiamate di sistema all'eseguibile git per il vostro wrapping python. Considera il tuo codice come parte della porcellana di Git. Rispetto all'utilizzo di una biblioteca specializzata:
PRO
- Non c'è bisogno di imparare un'API - utilizzare i comandi
git
si ha familiarità con
- set completo di strumenti - è possibile utilizzare porcellana e non si limitano alla funzionalità di basso livello
CONTRA
- È necessario analizzare l'output della riga di comando dalle chiamate
git
.
- potrebbe essere più lento
fonte
2011-08-19 09:24:14
+1 per libgit2. –
Grazie mille per il link "git python experience". Potrei essere in grado di basare la mia decisione su questo. – Sailesh
Dovresti tenere a mente che (a causa della data) quelle risposte non menzionano i collegamenti Python basati su libgit2, che sono interessanti perché la libreria libgit2 è una libreria rientranti per interagire con i repository git. Inoltre, l'uso del modulo subprocess per invocare i comandi git (come suggerisce @Ferdinand Beyer) ha funzionato bene per me in molti script e potrebbe essere tutto ciò che serve. –