一尘不染

Python Git模块的经验?

python

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

我正在编写一个程序,该程序必须与Git存储库进行交互(添加,删除,提交),但是没有使用Git的经验,所以我要寻找的东西之一就是关于Git的易用性/理解性。

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

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


阅读 139

收藏
2020-12-20

共1个答案

一尘不染

我以为我会回答自己的问题,因为我所采取的途径与答案中所建议的不同。尽管如此,还是感谢那些回答的人。

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

  • GitPython:下载后,我将其导入并初始化了适当的对象。但是,尝试执行本教程中建议的操作会导致错误。缺乏更多文档,我转向其他地方。
  • PyGit:这甚至都不会导入,而且我找不到任何文档。
  • 德威:似乎是最有前途的(至少对于我想要和看到的东西而言)。与GitPython相比,我在它方面取得了一些进步,因为它的卵来自Python源。但是,过了一会儿,我决定尝试做一下可能会更容易。

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

在比使上面的三个模块正常工作所花费的时间少得多的时间内,我设法通过子进程模块使git命令起作用,例如

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正常运行。就是说,我希望这些模块能够得到更多的开发,并且很快就会有用。

2020-12-20