2011-09-30 16 views
14

Firma poprosiła mnie o zaprogramowanie opakowania GIT dla nich.czy istnieje interfejs API GIT (C++ lub inne języki)?

Ludzie, którzy tam mają absolutnie nie ma systemów wersji, ale ostatecznie zostaną włączone do ich codziennej rutyny (poprzez mój program).

Planuję używać VC++ do stworzenia małego apletu Windows, który pomoże w tym procesie. Jakieś myśli na ten temat?

Co z procesem Deamon sprawdzającym, czy ludzie chcą zatwierdzać/wypychać swoje pliki?

+8

jaki jest cel owijki, że git i inne narzędzia * gita * tam nie mogą sobie poradzić? –

+3

Zakładając, że potrzebujesz systemu otoki, możesz po prostu wywołać git bezpośrednio z twojego programu, używając odpowiednich argumentów. – mwd

Odpowiedz

21

Dla prawie (ale nie zawsze!) Przypadków użycia, libgit2 jest najprostszym sposobem na interakcję z repozytoriów Git za pomocą kodu.

+0

To wygląda dobrze ... Zastanawiałem się, kiedy spojrzałem na libgit2 jeśli było wiązanie C++, które nie wymagało Qt ... Wygląda na to, że nie ma żadnych reklamowanych na podanej stronie. Zauważam, że OP chciał VC++: Wygląda na to, że ktoś miał problem z VS2010 C++, ale został rozwiązany w tym poście SO: http://stackoverflow.com/questions/14860814/qt-creator-unresolved-external-symbol – rholmes

5

Istnieje już TortoiseGit, między innymi "przyjaznymi" interfejsami. Nie wynajduj ponownie koła, zacznij od sprawdzenia, co jest już dostępne.

+0

Oczywiście jest to open source, więc nawet jeśli nie jest to, czego chcesz, to prawdopodobnie jest dużo bliżej niż nic. – Cascabel

+1

On prosi o zawijanie funkcji gita, a nie interfejs. Na przykład, jeśli chcesz zaimplementować funkcje współpracujące w oprogramowaniu, potrzebujesz biblioteki. Wiem o Grit w Ruby, ale afaik nie ma czegoś takiego dla C/C++. – Michael

+2

@ user626921: Jego pytanie wyraźnie stwierdza, że ​​jego celem jest zapewnienie jego użytkownikom interfejsu. Jego obecny plan polega na napisaniu jednego, ale sugeruję, że podejście oparte na niższych kosztach polega na dostosowaniu takiego, które już istnieje. –

11

Git ma już dwie warstwy: hydraulika (która może Cię zainteresować), na której zbudowana jest główna porcelana , która zapewnia interfejs użytkownika. Jeśli chcesz zaimplementować coś takiego jak git-commit, ale z nieco inną semantyką, wszystkie bazowe programy, takie jak git-write-tree i git-rev-parse, są dostępne do rozbudowania.

Zobacz także What does the term "porcelain" mean in Git?

+0

dziękuję bardzo. właśnie to szukam – Draconar

+0

Git jest bardzo elastyczny - porcelana jest świetna. Jeśli nie jesteś przywiązany do GUI, możesz wypróbować proste podejście do skryptów za pomocą ulubionego języka (Ruby, Python, Perl lub powłoka bash-podobna). Widziałem, jak dobrze działały w systemach DVCS, ale może to być trudne dla osób, które nie korzystają z linii poleceń. Dodanie aliasowanych poleceń w samym Git może również przebiegać bardzo długo, ale musisz mieć możliwość dystrybucji ich do bazy użytkowników (niezbyt trudne, wiele opcji). – rholmes

Powiązane problemy