我想計算git之間的提交時間,這個(我希望)會給我一個粗略的測量結果。這可能嗎?計算git提交之間的時間
回答
如果您可以將git log
的輸出發送到一個文件,那麼您已經達到了一半。我不確定你最喜歡什麼語言,但我知道在bash腳本中很容易做到。
在結尾添加'--format =%ad'以大大簡化過程。 – Eagerod
這將打印的新日提交其次是上了年紀的日期提交:
git log HEAD~[newer_commit] -n 1 --format=%ad; \
git log HEAD~[older_commit] -n 1 --format=%ad
您將與日期字符串結束。使用任何你喜歡的語言來計算差異。
下面是使用bash
和date
進行此操作的更完整示例。
首先,在Git: want to iterate through all commits on branch, and list files in each commit指出:
git的轉速名單將列出給出一個到達的所有版本提交按時間倒序排列,所以你可以通過它的一個分支的名字來獲取列表分支頭向後
所以,基本上,這個想法是,我使用rev-list
向後通過回購的歷史,從頭部迭代,並在每次修訂,得到當前的時間戳,和以前的時間戳提交;將它們作爲UNIX時間戳,因爲那樣我們就可以在bash
中直接進行整數運算(差異)最後使用date
來顯示日期。因此,這bash
腳本是:
for ix in `git rev-list master`; do
thists=`git log $ix -n 1 --format=%ct`;
prevts=`git log $ix~1 -n 1 --format=%ct 2>/dev/null`;
if [ ! -z "$prevts" ] ; then
delta=$(($thists - $prevts));
echo `date -d @$thists +'%Y-%m-%d %H:%M:%S'` "-->" \
`date -d @$prevts +'%Y-%m-%d %H:%M:%S'` " ;= " \
`date -d @$delta +'%H:%M:%S'`;
fi;
done
注意,當你在第一次提交,沒有前/父提交,所以git log
將失敗:fatal: ambiguous argument '45e95c7...~1': unknown revision or path not in the working tree.
;爲避免打印此消息,我將stderr
重定向至命令中的/dev/null
,然後僅在prevts
不爲空時才執行時間增量計算。從這個腳本的輸出是這樣的:
2017-08-27 09:44:04 --> 2017-08-26 17:12:22 ;= 17:31:42
2017-08-26 17:12:22 --> 2017-08-26 16:48:24 ;= 01:23:58
2017-08-26 16:48:24 --> 2017-08-26 16:28:05 ;= 01:20:19
...
然而,這些增量是一個小時 - 這樣的時間差的更正確的顯示,我用Python的datetime.timedelta
- 所以在上面的腳本,你可能要替換的`date -d @$delta +'%H:%M:%S'`;
行:
`python -c "import datetime as dt; d = dt.timedelta(seconds=$delta); print(d)"`
...在這種情況下,產生此日誌:
2017-08-27 09:44:04 --> 2017-08-26 17:12:22 ;= 16:31:42
2017-08-26 17:12:22 --> 2017-08-26 16:48:24 ;= 0:23:58
2017-08-26 16:48:24 --> 2017-08-26 16:28:05 ;= 0:20:19
...
- 1. 的Git - DIFF在老枝之間提交
- 2. 的Git包含任意之間提交
- 3. 交替行之間的總計時間
- 4. 計算文本字段交互之間的時間
- 5. 計算字段之間的時間差
- 6. 計算記錄之間的時間?
- 7. 計算兩行之間的時間差
- 8. 計算行之間的時間
- 9. 計算日期之間的時間差
- 10. 計算時間1到時間2之間的時間?
- 11. 在git提交之間插入宏
- 12. 如何計算git中兩次提交之間更改的行數?
- 13. 計算線段之間的交點
- 14. 刪除兩次提交之間的git提交
- 15. 如何計算時間間隔之和
- 16. 計算當前時間和未來時間之間的時差
- 17. 如何計算兩個分支之間的提交數量?
- 18. 計算一列中的時間戳之間的持續時間
- 19. 如何計算unix時間戳之間的時間差?
- 20. 計算兩個時間戳之間的時間量
- 21. 計算日期時間之間的總時間
- 22. 計算兩個日期時間字符串之間的時間
- 23. 計算unix時間戳之間的平均時間
- 24. 使用時間計算兩次之間的中位時間
- 25. 計算日期時間之間的時間
- 26. iPhone SDK,計算給定時間之間的時間差
- 27. 計算兩個日期時間之間的時間
- 28. Excel中 - 兩個時間之間的計算時間框架
- 29. 如何計算兩個時間之間的時間差
- 30. java計算兩個時間戳之間的時間
是的,這是可能的。試一試。 –
如果要測量生產力,使用提交掛鉤自動更新數據庫或包含時間數據的csv文件可能是個不錯的主意,後者可以稍後繪製。 –