pancake

2024 Git wrapped

As last year, I have gathered all relevant Git repositories I've contributed to this year, and done basic calculations.

Again, the target audience of this article is me in the future.

Note on how I interpret the data

I am using the word "productivity" as a proxy for "# of authored commits". I am very much aware it's not that simple, and I'm totally ignoring the fact that no two commits are equal and that they require significantly different amount of work done.

When comparing the numbers, I'm trying to look for trends, and I hope that the sample size of work done over the whole year is large enough to smooth out the largest outliers.

Gathering the data

I've used the script I wrote in 2023. It is still ugly.

The data

Since I have not changed what I'm observing, I can do comparisons.

Metric 2024 2023
Git identities 6 6
Git repositories I've contributed to 37 43
Commits I've authored 664 1 117

Last year, I've written:

I know there is a way to convert extensions to MIME types or something human friendly, but again, the plan is to run this once a year, I can do the additional deduplication and clean up myself.

It would have been nice to not have to sum it up manually. Oh well.

Language breakdown

The following table contains lines added per language/document format. The ratios of removed lines roughtly match lines added, they have been excluded for simplicity.

Language 2024 2023
.gitconfig 164 35
Bash 2 165 1 906
BibTeX - 3 106
C 6 -
Caddyfile 88 15
Containerfile 236 23
CSS 654 598
Go 8 108 9 825
Hare - 3 441
HTML 638 624
INI 93 222
Jinja2 - 118
JSON 526 3 184
Makefile 550 400
Markdown 4 886 3 236
Plaintext 6 355 2 380
Python 59 049 27 022
ReStructured Text - 507
RPM .spec 998 1
Rust 4 853 -
Systemd service 545 8
LaTeX - 9 225
TikZ - 300
Typst 274 -
TOML 298 264
YAML 4 539 5 459
XML 480 -
Generic configuration 1 187 309
Unknown 119 5 459
total 119 305 73 882

Time breakdown

What the tables show

Since the total numbers of commits and lines of code differ a lot between 2023 and 2024, I express every time unit as a fraction # of commits per unit/total commit #. This makes it easier to show trends even if the total activity wasn't the same.

By weekday

I've definitely handled work-life balance better, the weekend work has gone significantly down. I would like to carry this over into 2025. While it is mostly caused by life reasons, I think making the brain focus on different types of activities mostly payed off.

Day 2024 2023
Mon 21 % 15 %
Tue 19 % 14 %
Wed 15 % 14 %
Thu 17 % 18 %
Fri 14 % 16 %
Sat 6 % 12 %
Sun 9 % 11 %

By month

I'm not sure if there's any takeaway from the following table. I'd say the numbers pretty much reflect the energy I've had during the year, and amount of problems at work I've had to deal with.

Month 2024 2023
Jan 6 % 7 %
Feb 9 % 13 %
Mar 10 % 15 %
Apr 5 % 12 %
May 7 % 5 %
Jun 3 % 8 %
Jul 6 % 7 %
Aug 11 % 12 %
Sep 13 % 7 %
Oct 10 % 5 %
Nov 8 % 5 %
Dec 12 % 3 %

By hour of the day

I have made at least one commit for every hour of the day in 2024.

Timespan 2024 2023
0-6 2.3% 4.8%
7-12 13.5% 23.7%
13-19 42.3% 50.1%
20-24 13.0% 20.6%

It is interesting to see that my morning at-work productivity has not changed, and the productivity done after lunch has gone up, taking from what I would have been doing off-hours.

Timespan (workdays) 2024 2023
0-6 2.8% 4.5%
7-12 25.8% 25.6%
13-19 63.1% 51.1%
20-24 8.3% 18.9%

In 2024, the most likely nights to code were Tuesdays (11 commits out of 19 in total). Days where I'd complete the development before going to sleep shortly after midnight were Saturdays, Fridays and one Wednesday.

I haven't made a single commit between 0 and 6 AM on Monday and Sunday, and the least likely evening to do work are Thursdays (2 commits out of 71).

Use-case breakdown

Since I can isolate some repositories from others, I can separate the work I've done for myself with the one done for the job.

Metric Work Personal
New lines 83 802 38 789
Languages used ~16 ~14
Most productive day Mon, Tue, Thu Sun, Sat, Tue
Most productive hour 17, 16, 14 23, 21, 20

The month-based breakdown is interesting it deserves its own table:

Month Work Personal
Jan 6 % 5 %
Feb 14 % 0 %
Mar 12 % 4 %
Apr 8 % 1 %
May 5 % 11 %
Jun 5 % 1 %
Jul 6 % 7 %
Aug 10 % 14 %
Sep 14 % 7 %
Oct 8 % 13 %
Nov 7 % 8 %
Dec 4 % 30 %

I only have partial explanation for the May/Personal outlier, I don't remember what happened, and updating my git queries to list all commits from that period is something I'm too lazy to do as I'm writing this.

Thoughts

Last year I asked myself:

How much is 1 117 commits?

Looking at the first comparison: quite a lot. But at the same time, the total number of lines changed was half last year, suggesting more debugging or more intricate work, while this year I feel I must have built a lot of new projects, apparently.

2024 has definitely been about shutting down and reflecting on the life I live.

#git