2014-02-10 2 views
0

До сих пор я получил это действительно полезную команду, которая помогает мне определить, когда я работал над проектом:Рассчитайте работал timespans с помощью мерзавец совершает

git log --author="MyUsername" --pretty=format:"%cd; %h; %s" > time.csv 

Но мне интересно, если есть способ узнайте, как долго я работал над фиксацией. Теоретически, как это сделать, было бы взять обработанный файл с самой ранней датой изменения в этой фиксации и рассчитать промежуток времени между этим и фиксацией.

Возможно ли это, возможно? Каким будет код для этого?

+0

Вы можете делать то, что вы описали, но не учитывали бы нерабочее время между ними (спящий, перерыв, еда, беседа, встречи), и он также полностью сломался, если вы принесете переполнение в вопрос – Daenyth

+0

совершать, когда я заканчиваю работу, или когда я иду и что-то делаю, поэтому я могу устранить такую ​​неточность. ;) – WhatIsName

ответ

1

Нет, это невозможно, коммит - это атомная единица в git, которая отслеживает контент - git ориентирован на контент и имеет свою собственную простую файловую систему tree/blob, которую он использует поверх файловой системы os, поэтому вы не можете проверьте «самую раннюю дату изменения в (a) совершить» с git. Единственное, что вы можете проверить, это метки времени фиксации и промежутки времени между фиксациями, как вы уже это делали.

Единственное, что я могу предложить, это крюк с предварительной фиксацией. Когда git выполняет ваш пользовательский крюк с предварительной фиксацией, вы можете посмотреть все файлы, которые собираетесь совершить, найти самую раннюю метку времени в вашей файловой системе, как вы предлагали и записывали эти метаданные где-то. Возможно, даже включите его с фиксацией. Насколько надежным было бы ... Ну, как уже упоминалось в комментариях, это будет зависеть от учета ваших посторонних физических действий:/Возможно, вы можете сделать всплывающее окно предварительного компилятора редактором или полем сообщений, в котором вы могли бы ввести количество часы, потраченные от работы на самом коммите.

Смежные вопросы