当前位置: 首页 > 面试题库 >

Python Git模块的经验?

窦志新
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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



 类似资料:
  • 我正在尝试从git下载Jupyter笔记本。我通过右键单击文件并保存它来下载笔记本。这是一个ipynb文件,但对于它应该包含的内容(114 kb),文件大小对我来说似乎有点大。当我点击Jupyter中的笔记本时,出现以下错误: 无法读取的笔记本:C:\filename。ipynb NotJSONError(“笔记本似乎不是JSON:”\n\n 如何解决此错误,以及如何打开笔记本?

  • 每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。 使用模块的__name__ 例8.2 使用模块的__name__ #!/usr/bin/python

  • 创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有.py扩展名了。下面这个例子将会使它更加清晰。 创建你自己的模块 例8.3 如何创建你自己的模块 #!/usr/bin/python # Filename: mymodule.py defsayhi():     print'Hi, this is mymodule speaking.' version

  • 问题内容: 在Github上查看CoffeeScript的源代码时,我注意到大多数(如果不是全部)模块定义如下: 这种模式看起来像是将整个模块包装在一个匿名函数中并调用自身。 这种方法的优点(和缺点)是什么?还有其他方法可以实现相同的目标吗? 问题答案: Harmen的答案是相当不错的,但让我详细说明一下CoffeeScript编译器在何处完成此操作以及原因。 当您使用编译内容时,总会得到如下所示

  • 模块分块策略 coolie-cli 默认会将入口模块及其依赖模块都合并在一个文件里, 如果一些模块几乎被全站使用了,那么就可以考虑独立出来, 而不需将这些公共模块重复加载。例: "chunk": [ "./static/js/libs/**/*", // 分组0 "./static/js/3rd/**/*", // 分组1 [

  • author: Wuxiaolong 在Python中有一些内置的数据类型,比如int, str, list, tuple, dict等。Python的collections模块在这些内置数据类型的基础上,提供了几个额外的数据类型:namedtuple, defaultdict, deque, Counter, OrderedDict等,其中defaultdict和namedtuple是两个很实用