2011-09-30 10 views
14

Una società mi ha chiesto di programmare un wrapper GIT per loro.esiste un'API per GIT (C++ o altre lingue)

Le persone presenti non hanno esperienza assoluta dei sistemi di controllo delle versioni, ma alla fine saranno incorporate nella loro routine quotidiana (tramite il mio programma).

Sto pensando di utilizzare VC++ per creare una piccola applet di Windows che aiuterà ppl in questo processo. Qualche idea su questo?

Che ne è di un processo Deamon che verifica se le persone vogliono impegnare/spingere i propri file?

+8

quale sarebbe lo scopo del wrapper che git e * altri * strumenti git là fuori non possono gestire? –

+3

Supponendo che hai bisogno del sistema di wrapper, puoi semplicemente chiamare git direttamente dal tuo programma usando gli argomenti appropriati. – mwd

risposta

21

Per quasi (ma non tutti!) I casi d'uso, libgit2 è il modo più semplice per interagire con i repository Git tramite codice.

+0

Questo sembra buono ... Mi sono chiesto quando ho guardato libgit2 se c'era un binding in C++ che non richiedeva Qt ... Sembra che non ci sia nessuno pubblicizzato sul sito fornito. Osservo che l'OP voleva VC++: sembra che qualcun altro abbia avuto un problema con VS2010 C++ ma è stato risolto in questo post SO: http://stackoverflow.com/questions/14860814/qt-creator-unresolved-external-symbol – rholmes

5

C'è già TortoiseGit, tra le altre interfacce "amichevoli". Non reinventare la ruota, inizia a ricercare ciò che è già disponibile.

+0

E ovviamente, è open source, quindi anche se non è quello che vuoi, probabilmente è molto più vicino di niente. – Cascabel

+1

Chiede di inserire le funzionalità git, non un'interfaccia. Ad esempio, se si desidera implementare funzionalità di collaborazione in un software, è necessaria una libreria. Conosco Grit in Ruby, ma non c'è una cosa del genere per C/C++. – Michael

+2

@ user626921: la sua domanda specifica che il suo obiettivo è fornire ai suoi utenti un'interfaccia. Il suo piano attuale è di scriverne uno, ma suggerisco che un approccio a costo inferiore è quello di personalizzarne uno già esistente. –

11

Git ha già due livelli: l'impianto idraulico (che potrebbe essere interessato) in cima al quale è stata creata la porcellana primaria che fornisce l'interfaccia utente. Se vuoi implementare qualcosa come git-commit ma con semantica leggermente diversa, tutti i programmi sottostanti come git-write-tree e git-rev-parse sono pronti per essere costruiti.

Vedi anche What does the term "porcelain" mean in Git?

+0

grazie mille. quello è esattamente quello che sto cercando – Draconar

+0

Git's molto flessibile - la porcellana è grande. Se non sei sposato con una GUI potresti provare un semplice approccio di scripting tramite una lingua preferita (anche Ruby, Python, Perl o shell bash-like). Ho visto quelli usati con buoni risultati con i sistemi DVCS, ma potrebbe essere difficile per le persone che non adottano la linea di comando. L'aggiunta di comandi con alias in Git può anche essere molto lunga, ma devi essere in grado di distribuirli alla tua base di utenti (non troppo, molte opzioni) – rholmes

Problemi correlati