Some time ago I've published a blog post At what time of day do famous programmers work?. I've parsed serveral git repositors, filtered out the commits by one person and created graphs — the hour of day and how many commits were done in that hour by that person (and the results are pretty interesting).
Chris Lattner was very kind to share that link on Twitter and he has also suggested a great idea:
I suspect that you could also get an interesting view of all the charts if you consider weekends and weekdays as two different datasets per person, e.g. plotted side by side.
So, here it it. This is the same data as in the previous post, but split in two graphs. The graph on the left shows commits made on workweek, the graph on the right shows commits made on weekend. (Sometimes there are working days that are on weekends and there are holidays on the workweek, but here is a straightforward separation: Monday to Friday to the left, saturday and sunday to the right). Left and right graph has the same scale.
In the bottom of the graps there is total number of commits and the percentage. There are 5 workdays and 2 weekdays, if you do the exact number of commits on every day, the percent of commits made on workdays is 71.4% and the weekend percent is 28.6%. So, if the weekend percent is more than 28.6% it means that person works on this project on weekends more that he works on weekdays. And if the weekend percent is less than 28.6% — it means the person work on this project mainly on workdays.
And this time in the graphs I'm also showing the git commit hash that the repo was up to and I'm writing the exact command that generats graphs. I do it to make is simpler to reproduce.
https://github.com/torvalds/linux:
$ git show|head -1; git log --author="Linus Torvalds" --format="%H %ai" | perl script.pl
commit fec88ab0af9706b2201e5daf377c5031c62d11f7
hour Monday to Friday Saturday and Sunday
00 42 19
01 14 7
02 16 4
03 10 3
04 17 11
05 91 * 25
06 166 * 97 *
07 659 ******* 134 *
08 1601 ***************** 201 **
09 2138 *********************** 440 ****
10 2229 ************************* 734 ********
11 1967 ********************** 703 *******
12 1677 ****************** 580 ******
13 1654 ****************** 431 ****
14 1640 ****************** 399 ****
15 1798 ******************** 341 ***
16 1619 ****************** 336 ***
17 1451 **************** 285 ***
18 1181 ************* 184 **
19 903 ********** 120 *
20 698 ******* 155 *
21 484 ***** 93 *
22 201 ** 39
23 116 * 12
Total: 22372 (80.7%) 5353 (19.3%)
$ git show|head -1; git log --author="Linus Torvalds" --format="%H %ai" | perl script.pl
commit 9d418600f4d10dcbbfb0b5fdbc71d509e03ba719
hour Monday to Friday Saturday and Sunday
00 7 ** 2
01 6 * 1
02 3 1
03 0 0
04 0 0
05 0 0
06 0 0
07 19 ****** 1
08 25 ******* 2
09 67 ********************* 23 *******
10 79 ************************* 29 *********
11 78 ************************ 34 **********
12 69 ********************* 28 ********
13 48 *************** 25 *******
14 47 ************** 23 *******
15 67 ********************* 37 ***********
16 62 ******************* 15 ****
17 54 ***************** 5 *
18 44 ************* 10 ***
19 39 ************ 10 ***
20 41 ************ 17 *****
21 37 *********** 12 ***
22 22 ****** 9 **
23 9 ** 10 ***
Total: 823 (73.7%) 294 (26.3%)
https://github.com/mojolicious/mojo:
$ git show|head -1; git log --author="Sebastian Riedel" --format="%H %ai" | perl script.pl
commit d6eca913536eaca09c9beeaa913e32c8dd2228ac
hour Monday to Friday Saturday and Sunday
00 491 ********************** 194 ********
01 400 ****************** 153 *******
02 350 **************** 122 *****
03 308 ************** 106 ****
04 240 *********** 101 ****
05 243 *********** 91 ****
06 223 ********** 75 ***
07 155 ******* 53 **
08 116 ***** 31 *
09 117 ***** 28 *
10 157 ******* 41 *
11 158 ******* 67 ***
12 227 ********** 75 ***
13 247 *********** 95 ****
14 363 **************** 125 *****
15 398 ****************** 138 ******
16 476 ********************* 154 *******
17 517 *********************** 161 *******
18 541 ************************* 182 ********
19 473 ********************* 168 *******
20 461 ********************* 165 *******
21 453 ******************** 175 ********
22 508 *********************** 178 ********
23 481 ********************** 200 *********
Total: 8103 (73.8%) 2878 (26.2%)
https://github.com/apple/swift:
$ git show|head -1; git log --author="Chris Lattner" --format="%H %ai" | perl script.pl
commit 354eb4d7292951c34f2ba1e5f87a32e40c4a9f9b
hour Monday to Friday Saturday and Sunday
00 249 ****************** 75 *****
01 130 ********* 55 ****
02 43 *** 36 **
03 57 **** 20 *
04 197 ************** 68 *****
05 332 ************************* 94 *******
06 245 ****************** 68 *****
07 82 ****** 34 **
08 17 * 14 *
09 13 27 **
10 30 ** 11
11 36 ** 10
12 16 * 14 *
13 33 ** 15 *
14 60 **** 45 ***
15 84 ****** 42 ***
16 177 ************* 52 ***
17 197 ************** 48 ***
18 183 ************* 54 ****
19 110 ******** 41 ***
20 203 *************** 97 *******
21 278 ******************** 116 ********
22 275 ******************** 112 ********
23 249 ****************** 92 ******
Total: 3296 (72.7%) 1240 (27.3%)
$ git show|head -1; git log --author="Rob Pike" --format="%H %ai" | perl script.pl
commit 89d300b821551c9955414caf3066ae602813f6ea
hour Monday to Friday Saturday and Sunday
00 24 * 5
01 1 0
02 1 0
03 5 0
04 0 0
05 2 3
06 16 * 3
07 46 *** 16 *
08 57 **** 23 *
09 104 ******** 22 *
10 222 ***************** 18 *
11 310 ************************ 28 **
12 165 ************ 19 *
13 321 ************************* 18 *
14 296 *********************** 21 *
15 284 ********************** 17 *
16 246 ******************* 18 *
17 204 *************** 20 *
18 62 **** 11
19 62 **** 7
20 77 ***** 14 *
21 68 ***** 11
22 57 **** 7
23 46 *** 5
Total: 2676 (90.3%) 286 (9.7%)
https://github.com/memcached/memcached:
$ git show|head -1; git log --author="Brad Fitzpatrick" --format="%H %ai" | perl script.pl
commit 78eb7701e0823643d693c1a7a6fd8a0c75db74d8
hour Monday to Friday Saturday and Sunday
00 11 ****************** 0
01 8 ************* 2 ***
02 15 ************************* 2 ***
03 6 ********** 1 *
04 7 *********** 0
05 12 ******************** 1 *
06 8 ************* 0
07 8 ************* 0
08 2 *** 0
09 0 0
10 3 ***** 0
11 1 * 0
12 0 0
13 0 0
14 0 0
15 0 0
16 3 ***** 1 *
17 7 *********** 1 *
18 9 *************** 0
19 8 ************* 1 *
20 10 **************** 2 ***
21 8 ************* 2 ***
22 9 *************** 2 ***
23 9 *************** 5 ********
Total: 144 (87.8%) 20 (12.2%)
$ git show|head -1; git log --author="Brad Fitzpatrick" --format="%H %ai" | perl script.pl
commit 89d300b821551c9955414caf3066ae602813f6ea
hour Monday to Friday Saturday and Sunday
00 38 ****** 6
01 26 **** 4
02 24 *** 2
03 21 *** 3
04 24 *** 2
05 25 **** 2
06 18 ** 3
07 36 ***** 2
08 65 ********** 3
09 102 **************** 12 *
10 132 ********************* 13 **
11 150 ************************ 10 *
12 113 ****************** 11 *
13 122 ******************** 8 *
14 142 *********************** 6
15 143 *********************** 17 **
16 151 ************************* 11 *
17 144 *********************** 14 **
18 130 ********************* 13 **
19 118 ******************* 9 *
20 93 *************** 11 *
21 91 *************** 9 *
22 107 ***************** 8 *
23 65 ********** 4
Total: 2080 (91.9%) 183 (8.1%)
https://github.com/php/php-src:
$ git show|head -1; git log --author="Rasmus Lerdorf" --format="%H %ai" | perl script.pl
commit 35c5e0a052254d1b501496567c16b159d72977a9
hour Monday to Friday Saturday and Sunday
00 23 ******* 32 **********
01 19 ****** 10 ***
02 7 ** 14 ****
03 17 ***** 11 ***
04 27 ******** 15 ****
05 36 *********** 16 *****
06 28 ********* 13 ****
07 15 **** 7 **
08 27 ******** 17 *****
09 37 ************ 19 ******
10 26 ******** 11 ***
11 22 ******* 3
12 23 ******* 7 **
13 40 ************ 3
14 39 ************ 28 *********
15 46 ************** 25 ********
16 77 ************************* 27 ********
17 73 *********************** 31 **********
18 74 ************************ 25 ********
19 40 ************ 16 *****
20 44 ************** 12 ***
21 61 ******************* 21 ******
22 72 *********************** 24 *******
23 60 ******************* 18 *****
Total: 933 (69.7%) 405 (30.3%)
https://github.com/python/cpython:
$ git show|head -1; git log --author="Guido van Rossum" --format="%H %ai" | perl script.pl
commit 18c5f9d44dde37c0fae5585a604c6027825252d2
hour Monday to Friday Saturday and Sunday
00 280 ******* 66 *
01 207 ***** 26
02 250 ****** 54 *
03 202 ***** 45 *
04 197 ***** 32
05 101 ** 25
06 51 * 16
07 37 15
08 95 ** 12
09 169 **** 17
10 180 **** 20
11 217 ***** 13
12 286 ******* 31
13 528 ************** 44 *
14 791 ********************* 53 *
15 936 ************************* 58 *
16 811 ********************* 88 **
17 720 ******************* 81 **
18 739 ******************* 76 **
19 699 ****************** 90 **
20 710 ****************** 108 **
21 676 ****************** 73 *
22 693 ****************** 57 *
23 475 ************ 42 *
Total: 10050 (89.8%) 1142 (10.2%)
https://github.com/FFmpeg/FFmpeg:
$ git show|head -1; git log --author="Fabrice Bellard" --format="%H %ai" | perl script.pl
commit af5f770113212b2893e897a04b007c1e1428bb26
hour Monday to Friday Saturday and Sunday
00 11 **** 6 **
01 4 * 0
02 1 0
03 0 0
04 0 6 **
05 0 5 *
06 0 0
07 4 * 0
08 4 * 0
09 15 ***** 0
10 19 ******* 1
11 7 ** 3 *
12 13 **** 0
13 36 ************* 5 *
14 36 ************* 11 ****
15 12 **** 11 ****
16 33 ************ 11 ****
17 45 **************** 6 **
18 40 ************** 10 ***
19 18 ****** 12 ****
20 25 ********* 6 **
21 27 ********** 19 *******
22 67 ************************* 41 ***************
23 28 ********** 15 *****
Total: 445 (72.6%) 168 (27.4%)
Last time I've used one-liner to create graphs. This time I wasn't brave enough to write code that shows these graphs in one line, and I've created the script. It is writtern in Perl, so it will run on most linux/mac os systems out of the box without the need to install anything. I have deliberately written it in pure Perl only with libraries that ships with perl, there is no need to install anything in additon to make this script work. I did it to make it simple to run in case somebody what to experiment with this script in some other git repo.
17 july 2019