自动计算整个 git 分支的修改(例如 added/deleted 个字母)
Automatically count the modification (for instance added/deleted letters) along a whole git branch
有没有一种方法(或 hack 或脚本)可用于计算在 git 分支的每次提交中添加(或删除)的字母数?关于如何做到这一点的任何想法?
我知道如何在两次提交之间使用 git diff
。是否有解决问题的说明?
其他信息:我为什么需要这个功能?
对我来说,目标应该是使用一些品质因数来绘制工作的演变。我知道这个品质因数绝对不是一个好的指标。然而,拥有这些数据并以您喜欢的方式使用它们仍然很有趣(使用 python 绘制进化图只是一个例子)。
关于如何执行它的想法:
- 对分支中的所有连续提交执行
git diff
。
- 统计上一点的每一个输出,字母的个数(区分删除和添加)。
- 将数据保存在某个变量中并以您最喜欢的方式使用结果。
I will try to implement the procedure with a script and share the
solution in this question. However, I am wondering if there are some
other direct methods
正如我所承诺的,我做了一个 python 脚本来完成肮脏的工作。可以在这个git repo中找到。结果将如下所示:
基本上,我找到了一个 python 库,它与 git 配合得很好。有关此 link 的更多信息。库的名称是 GitPython,是一个不错的 open-source 项目。
该策略很简单,并且已在问题中进行了解释。为了使用该库,安装后(我使用conda
),你只需要导入:
from git import Repo
稍后在代码中,您可以使用上面link中可以找到的所有API。请随时 re-use 引用该作品的脚本。
Moreover, if you want to contribute by adding functionalities, please
do it: I will be glad to test new solutions. For instance, a
minimalistic GUI or the managing or multiple branches can be future
ideas to be implemented.
有没有一种方法(或 hack 或脚本)可用于计算在 git 分支的每次提交中添加(或删除)的字母数?关于如何做到这一点的任何想法?
我知道如何在两次提交之间使用 git diff
。是否有解决问题的说明?
其他信息:我为什么需要这个功能?
对我来说,目标应该是使用一些品质因数来绘制工作的演变。我知道这个品质因数绝对不是一个好的指标。然而,拥有这些数据并以您喜欢的方式使用它们仍然很有趣(使用 python 绘制进化图只是一个例子)。
关于如何执行它的想法:
- 对分支中的所有连续提交执行
git diff
。 - 统计上一点的每一个输出,字母的个数(区分删除和添加)。
- 将数据保存在某个变量中并以您最喜欢的方式使用结果。
I will try to implement the procedure with a script and share the solution in this question. However, I am wondering if there are some other direct methods
正如我所承诺的,我做了一个 python 脚本来完成肮脏的工作。可以在这个git repo中找到。结果将如下所示:
基本上,我找到了一个 python 库,它与 git 配合得很好。有关此 link 的更多信息。库的名称是 GitPython,是一个不错的 open-source 项目。
该策略很简单,并且已在问题中进行了解释。为了使用该库,安装后(我使用conda
),你只需要导入:
from git import Repo
稍后在代码中,您可以使用上面link中可以找到的所有API。请随时 re-use 引用该作品的脚本。
Moreover, if you want to contribute by adding functionalities, please do it: I will be glad to test new solutions. For instance, a minimalistic GUI or the managing or multiple branches can be future ideas to be implemented.