Pomyślałem, że odpowiem na własne pytanie, ponieważ podążam inną drogą niż sugerowano w odpowiedziach. Niemniej jednak dziękuję tym, którzy odpowiedzieli.
Najpierw krótkie streszczenie moich doświadczeń z GitPythonem, PyGit i Dulwich:
- GitPython : Po pobraniu zaimportowałem to i zainicjowałem odpowiedni obiekt. Jednak próba zrobienia tego, co sugerowano w samouczku, doprowadziła do błędów. Z braku większej dokumentacji poszedłem gdzie indziej.
- PyGit : To by się nawet nie zaimportowało i nie mogłem znaleźć żadnej dokumentacji.
- Dulwich : Wydaje się, że jest najbardziej obiecujący (przynajmniej ze względu na to, co chciałem i widziałem). Zrobiłem w nim pewien postęp, większy niż w przypadku GitPythona, ponieważ jego jajko jest dostarczane ze źródłem Pythona. Jednak po pewnym czasie zdecydowałem, że może być łatwiej spróbować tego, co zrobiłem.
Również StGit wygląda interesująco, ale potrzebowałbym funkcji wyodrębnionej w osobnym module i nie chcę czekać, aż to się stanie teraz.
W (dużo) mniej czasu niż spędziłem na próbach uruchomienia trzech powyższych modułów, udało mi się uzyskać polecenia git działające za pośrednictwem modułu podprocesu, np.
def gitAdd(fileName, repoDir):
cmd = ['git', 'add', fileName]
p = subprocess.Popen(cmd, cwd=repoDir)
p.wait()
gitAdd('exampleFile.txt', '/usr/local/example_git_repo_dir')
Nie jest to jeszcze w pełni włączone do mojego programu, ale nie przewiduję problemu, może z wyjątkiem szybkości (ponieważ będę przetwarzać setki lub nawet tysiące plików czasami).
Może po prostu nie miałem cierpliwości, aby wszystko działało z Dulwich lub GitPythonem. To powiedziawszy, mam nadzieję, że moduły będą bardziej rozbudowywane i wkrótce będą bardziej przydatne.