小编典典

Python Git 模块经验?

all

人们对 Python 的任何 Git 模块有什么体验?(我知道 GitPython、PyGit 和 Dulwich - 如果您知道,请随时提及其他人。)

我正在编写一个必须与 Git 存储库交互(添加、删除、提交)的程序,但没有使用 Git 的经验,所以我正在寻找的一件事是易于使用/理解 Git。

我主要感兴趣的其他事情是库的成熟度和完整性、错误的合理缺乏、持续开发以及文档和开发人员的帮助。

如果您想到我可能想/需要知道的其他事情,请随时提及。


阅读 69

收藏
2022-08-15

共1个答案

小编典典

我想我会回答我自己的问题,因为我选择的路径与答案中建议的不同。尽管如此,感谢那些回答的人。

首先,简要介绍一下我使用 GitPython、PyGit 和 Dulwich 的经验:

  • GitPython:下载后,我将其导入并初始化了相应的对象。但是,尝试执行本教程中的建议会导致错误。由于缺乏更多文档,我转向别处。
  • PyGit:这甚至不会导入,而且我找不到任何文档。
  • 德威:似乎是最有前途的(至少对于我想要和看到的)。我在它上面取得了一些进展,比 GitPython 还多,因为它的 egg 带有 Python 源代码。但是,过了一会儿,我决定尝试我所做的可能会更容易。

此外,StGit看起来很有趣,但我需要将功能提取到一个单独的模块中,并且不希望现在就等待它发生。

在(比我试图让上面的三个模块工作)更少的时间里,我设法让 git 命令通过 subprocess 模块工作,例如

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')

这还没有完全整合到我的程序中,但我没有预料到会出现问题,除了速度(因为我有时会处理数百甚至数千个文件)。

也许我只是没有耐心去使用 Dulwich 或 GitPython。也就是说,我希望这些模块很快会得到更多的开发并变得更加有用。

2022-08-15