尝试计算Git post-commit钩子中的提交花费了多长时间。
我有一个post-commit git挂钩,它通过API提交关于提交的信息。我想要做的是弄清楚在提交上花费了多长时间。大概吧。
我的假设是,通过找到所涉及的文件的所有创建时间和修改时间中的最小值,并与最大创建时间和修改时间进行比较,可以得出一个粗略的值。
我可以在Python脚本中轻松做到这一点。如果有人告诉我是文件"foo.txt“、"bar.txt”和"path/bla.txt“,我可以根据这些文件在脚本中快速执行一些算术运算。
那么,在git post-commit钩子中,我如何获得已更改的文件的列表?
发布于 2010-11-17 23:49:49
当围绕git编写脚本时,您应该尝试坚持使用plumbing commands -它们的格式不太可能改变,也更容易解析。下面是一个命令,它输出在提交中更改的路径的名称:
git diff-tree -r --name-only --no-commit-id <tree-ish>除此之外,您可能希望检查索引,因为它包含有关文件被暂存的时间戳,这可能会给您带来额外的优势;但是,我不相信有一种方法可以访问这些信息。
发布于 2010-11-17 23:10:40
我做了一些研究,发现git log --name-only -n1是最好的方法。要拿到最低分并不难。和最大。通过执行一些字符串匹配并使用Python os.stat模块,从文件中去掉时间戳。
作为一般的解决方案,它仍然不是很好,因为文件上的修改时间并不能真正反映实际花费的时间。
https://stackoverflow.com/questions/4205589
复制相似问题