Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在每次git提交时运行bash脚本_Git_Bash - Fatal编程技术网

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

在每次git提交时运行bash脚本,git,bash,Git,Bash,出于好奇,我想对一个我已经工作了一段时间的项目进行基准测试,看看它在不同任务中的性能随着时间的推移是如何变化的。此项目存储在git存储库中 从根本上说,似乎正确的方法是 for r in $(git log --pretty="format:%H"); do git checkout $r echo "$r\t$(./benchmark.sh)" >> results.txt done 然而,这似乎是一种黑客行为(首先使用瓷器进行管道工程),因此我想知道是否有一种“

出于好奇,我想对一个我已经工作了一段时间的项目进行基准测试,看看它在不同任务中的性能随着时间的推移是如何变化的。此项目存储在git存储库中

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

for r in $(git log --pretty="format:%H"); do
    git checkout $r
    echo "$r\t$(./benchmark.sh)" >> results.txt
done
然而,这似乎是一种黑客行为(首先使用瓷器进行管道工程),因此我想知道是否有一种“首选”方法,例如(我希望)


这似乎是一项非常常见的任务,这就是为什么我希望为此存在一些东西。

对于初学者,您可以使用它


请参阅git hooks(man-githooks)->使用这些工具,您可以在SCM逻辑中的不同位置运行脚本,这很有趣,但不是我在本例中所寻找的。这是一个“我有两年的历史,我想把它画成一个图表”的问题。我不需要同步执行此操作。
git-bisect-run
可能类似,但用于另一种情况。哦,抱歉@zebediah49,也许你会在以后找到git-hook的用法;-)@Ron Dahlgren哦,完全同意。。即使是显而易见的“确保编译没有错误”测试也是一个很好的选择。
git black_magic-run-on-all ./benchmark.sh > results.txt
git rev-list HEAD