2012-05-02 7 views
6

Próbuję użyć biblioteki pygit2.dodać bloby lub drzewa do utworzonego repozytorium za pomocą pygit2 (libgit2)?

wydaje się, że utknąłem na pierwszym kroku. jego dokumentacja nie wyjaśnia, jak utworzyć obiekt typu blob i dodać go do drzewa. Chodzi głównie o to, jak pracować z istniejącym repozytorium git, ale chcę je utworzyć i dodać bloby, zatwierdzenia, ... do mojego repozytorium. Czy można utworzyć plik blob bezpośrednio z pliku lub powinienem przeczytać zawartość pliku i ustawić blob.data?

Jak mogę utworzyć i dodać obiekty typu blob lub drzewa do repozytorium?

Odpowiedz

7

Wiązania w pythonie nie pozwalają na bezpośrednie utworzenie pliku blob z pliku, dlatego należy wczytać plik do pamięci i użyć Repository.write(pygit2.GIT_OBJ_BLOB, filecontents) do utworzenia obiektu typu blob.

Następnie można utworzyć drzewa z TreeBuilder, na przykład, jak

import pygit2 as g 

repo = g.Repository('.') 
# grab the file from wherever and store in 'contents' 
oid = repo.write(g.GIT_OBJ_BLOB, contents) 
bld = repo.TreeBuilder() 
# attributes is whether it's a file or dir, 100644, 100755 or 040000 
bld.insert('file.txt', oid, attributes) 
treeoid = bld.write() 
+6

Dzięki dużo, jak mogę dowiedzieć się więcej o pygit2? żadne z wymienionych rzeczy nie jest w dokumencie pygit2, Jak nauczyłeś się go używać? –

+1

@PeqiHash Carlos jest jednym z twórców libgit2 – T0xicCode

+1

Jeśli zmieniłeś plik, czy nadal dodajesz cały plik do repo jako blob, a następnie powołujesz się na ten oid z wstawką za pomocą TreeBuilder ... czy jest coś do zrobienia z łatka tutaj? – ChipJust