Tôi nghĩ rằng tôi sẽ trả lời câu hỏi của riêng mình, vì tôi đang đi một con đường khác với đề xuất trong câu trả lời. Tuy nhiên, cảm ơn những người đã trả lời.
Đầu tiên, một bản tóm tắt ngắn gọn về những trải nghiệm của tôi với GitPython, PyGit và Dulwich:
- GitPython : Sau khi tải xuống, tôi đã nhập cái này và đối tượng thích hợp được khởi tạo. Tuy nhiên, cố gắng làm những gì được đề xuất trong hướng dẫn đã dẫn đến lỗi. Thiếu thêm tài liệu, tôi chuyển sang nơi khác.
- PyGit : Điều này thậm chí sẽ không nhập và tôi không thể tìm thấy tài liệu nào.
- Dulwich : Có vẻ là hứa hẹn nhất (ít nhất là cho những gì tôi muốn và thấy). Tôi đã thực hiện một số tiến bộ với nó, hơn cả với GitPython, vì trứng của nó đi kèm với nguồn Python. Tuy nhiên, sau một thời gian, tôi quyết định có thể dễ dàng hơn để thử những gì tôi đã làm.
Ngoài ra, StGit có vẻ thú vị, nhưng tôi sẽ cần chức năng được trích xuất thành một mô-đun riêng biệt và không muốn chờ đợi điều đó xảy ra ngay bây giờ.
Trong (nhiều) ít thời gian hơn tôi đã cố gắng để làm cho ba mô-đun ở trên hoạt động, tôi đã quản lý để có được các lệnh git hoạt động thông qua mô-đun quy trình con, ví dụ:
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')
Điều này chưa được tích hợp hoàn toàn vào chương trình của tôi, nhưng tôi không lường trước được vấn đề, ngoại trừ có thể là tốc độ (vì tôi sẽ xử lý hàng trăm hoặc thậm chí hàng nghìn tệp mỗi lần).
Có lẽ tôi không đủ kiên nhẫn để làm mọi thứ với Dulwich hoặc GitPython. Điều đó nói rằng, tôi hy vọng các mô-đun sẽ được phát triển nhiều hơn và sớm hữu ích hơn.