我一直在为perf.txt中的代码保存一些自动生成的性能数据。每次我改进代码时,我都会运行一个脚本,用新的性能数据覆盖perf.txt。然后我将提交perf.txt。
回想起来,覆盖perf.txt是一个愚蠢的错误,现在,我想做一些分析/绘制我的改进图,但不能。当然,旧的perf.txt文件仍在我的提交历史记录中。有没有简单的方法来获得它们?理想情况下,我想在新目录中使用perf~1.txt,perf~2.txt等,以及时间戳。
或者,如果我可以简单地“重放”提交历史(例如git next perf.txt),就像git-bisect那样 - 但是线性 - 也可以。
答案 0 :(得分:2)
好的,我设法为此创建了一个shell脚本。如果它运作正常,请告诉我。
更新
i=0; git rev-list HEAD package.json | while read sha1; do; git show "$sha1:package.json" > "$(printf "%04d" $i)-$sha1-package.json"; ((i++)); done
将输出:
$ ls *-package.json | cat
0000-a15147199edff1b1c0fab89c66214abfb8c65d7c-package.json
0001-51feba61197b837b7d55754a56e12f66f0624ba1-package.json
0002-ed9e34482a303e7e64c397f89533dbe64f51cfbf-package.json
0003-d01253e20158f53c08aa6bc0c1cf66806cd19148-package.json
0004-d57363e800535a7400fde56e97d0a4cd424cffbb-package.json
0005-6e995583a11b63bf1d94142da6408955ee93e7cc-package.json
0006-6bc2a87943f59ad277cdee26aec1c25949c0f091-package.json
0007-e06a8cae3a1de58b770a66cbd124cf50e809fb31-package.json
0008-81bf63359641255dfd340714d0635be03bda8de9-package.json
0009-95559f5117c8a21c1b8cc99f4badc320fd3dcbda-package.json
0010-5e906366dd86dda95df050257513c95834020e5e-package.json
0011-717cb2a5c7909ed16f7c599b02759b27fd2e4258-package.json
0012-f18b75940e61a52ef9c0cf41a4bda3bcdae5c46c-package.json
0013-3c86547a3b841807c4744af0fa4ee3894cc17a33-package.json
0014-d5658e978d9a7234e537d57c45069ce223cb3853-package.json
0015-286c4d91dde12ba32f4a56273d05374b1cbb79e7-package.json
0016-46d680458b74fcf956f6161a2b73b6b00fc2541d-package.json
0017-e64f89d9aaf26c2dae6c7f1ef29a2d3cadd0b4b2-package.json
0018-bd84aad6cdde8cf3ce7842df1febb82fe9816647-package.json
0019-6cf1542a8b823c6bdacf7e6e01dfcb58e9949ff4-package.json
0020-1434b5b56756d02190afe552b626823c97b11a49-package.json
在排序时,它将保持正确的顺序。
原件:
i=0; git rev-list HEAD package.json | while read sha1; do; git show "$sha1:package.json" > "$i-$sha1-package.json"; ((i++)); done
将package.json
替换为所有3个地方所需的文件。
这将创建如下文件:
$ ls *-package.json | cat
0-a15147199edff1b1c0fab89c66214abfb8c65d7c-package.json
1-51feba61197b837b7d55754a56e12f66f0624ba1-package.json
10-5e906366dd86dda95df050257513c95834020e5e-package.json
11-717cb2a5c7909ed16f7c599b02759b27fd2e4258-package.json
12-f18b75940e61a52ef9c0cf41a4bda3bcdae5c46c-package.json
13-3c86547a3b841807c4744af0fa4ee3894cc17a33-package.json
14-d5658e978d9a7234e537d57c45069ce223cb3853-package.json
15-286c4d91dde12ba32f4a56273d05374b1cbb79e7-package.json
16-46d680458b74fcf956f6161a2b73b6b00fc2541d-package.json
17-e64f89d9aaf26c2dae6c7f1ef29a2d3cadd0b4b2-package.json
18-bd84aad6cdde8cf3ce7842df1febb82fe9816647-package.json
19-6cf1542a8b823c6bdacf7e6e01dfcb58e9949ff4-package.json
2-ed9e34482a303e7e64c397f89533dbe64f51cfbf-package.json
20-1434b5b56756d02190afe552b626823c97b11a49-package.json
3-d01253e20158f53c08aa6bc0c1cf66806cd19148-package.json
4-d57363e800535a7400fde56e97d0a4cd424cffbb-package.json
5-6e995583a11b63bf1d94142da6408955ee93e7cc-package.json
6-6bc2a87943f59ad277cdee26aec1c25949c0f091-package.json
7-e06a8cae3a1de58b770a66cbd124cf50e809fb31-package.json
8-81bf63359641255dfd340714d0635be03bda8de9-package.json
9-95559f5117c8a21c1b8cc99f4badc320fd3dcbda-package.json