【问题标题】:Get lines of change from a Git diff file for a GitHub repo without using git command从 Git diff 文件计算更改行
【发布时间】:2022-06-11 04:08:26
【问题描述】:

目标

我正在用 Python 构建一个 git stats 脚本,它只能访问历史 git diff 补丁,所以基本上是文件 like this

diff --git a/README b/README
index 980a0d5f..fef29374 100644
--- a/README
+++ b/README
@@ -1 +1,3 @@
 Hello World!
+
+Hello planet! - DD
\ No newline at end of file

我到底想要什么?

  1. 将 git diff 文件列表作为输入
  2. 计算每个差异文件中更改(可选)、添加和删除的行数
  3. 总结一下
  4. 打印“添加的总行数 = X,删除的总行数 = Y”等。

约束

运行此脚本的系统无法访问 git 存储库,也没有安装 git - 引入了一个有趣的复杂性。 ????

我对通过 Python 访问 API 或编写代码来手动计算事物没有任何问题。我唯一的问题是我上面提到的。

其他来源

我查过了,所以我知道关于这个主题有很多类似的问题。我只是在 Python 中找不到我想要的东西,而不是直接在存储库中使用 git...(如果有人能指出我的解决方案,很高兴关闭它)


那么,有什么想法吗?我假设我可以手动解析每个 diff 文件并对其进行总结,但我希望能从 git 魔术师那里获得灵丹妙药!

【问题讨论】:

  • “git 魔术师”会告诉你使用git,而不是从头开始编写代码。
  • @Nic3500 我猜这是真的。 :)

标签: python linux git diff script


【解决方案1】:

事实证明,GitHub API 已经提供了这些差异统计信息,而无需安装 git 或在本地签出存储库。

GitHub Docs

由于这对我的情况来说已经足够了,我将使用它。不过,仍然欢迎新的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2012-02-07
    • 2018-12-16
    • 2014-04-18
    • 1970-01-01
    • 2022-12-03
    • 2013-01-11
    相关资源
    最近更新 更多