每次 git 提交时运行 bash 脚本。

4

出于好奇,我想对我一直在工作的项目进行基准测试,看看它在不同任务上的性能如何随时间变化。这个项目存储在git仓库中。

从根本上讲,正确的方法似乎是

for r in $(git log --pretty="format:%H"); do
    git checkout $r
    echo "$r\t$(./benchmark.sh)" >> results.txt
done

这似乎是一种欺骗性的方法(首先使用瓷器来完成水管任务),因此我想知道是否有更好的方法,例如(我希望)。
git black_magic-run-on-all ./benchmark.sh > results.txt

这似乎是一个很常见的任务,因此我期望有相关的工具存在。


查看 Git 钩子(man githooks)-> https://www.kernel.org/pub/software/scm/git/docs/githooks.html - 使用这些钩子,您可以在 SCM 逻辑的各个位置运行脚本。 - user1898811
非常有趣,但在这种情况下不是我要找的。这是一个“我有两年的历史记录,我想把它做成图表”的问题。我没有同步执行这个需求。 - zebediah49
git bisect run 可能是类似的指令,但适用于另一种情况。 - michas
哦,抱歉 @zebediah49 ,也许你以后会找到使用 Git 钩子的用途;-) - user1898811
@Ron-Dahlgren 哦,完全同意...即使是显而易见的“确保编译无误”的测试也是一个很好的选择。 - zebediah49
1个回答

3

首先,您可以使用rev-list命令。

git rev-list HEAD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接