@@ -29,9 +29,137 @@ This edition covers what happened during the months of August and September 2025
29
29
### Support
30
30
-->
31
31
32
- <!-- -
33
- ## Developer Spotlight:
34
- -->
32
+ ## Developer Spotlight: Toon Claes
33
+
34
+ * Who are you and what do you do?
35
+
36
+ I'm Toon from Belgium. My name is pronounced like "tone" (rhymes with
37
+ "bone"), and not like the "toon" in "cartoon", but usually I'm already
38
+ happy if people remember my name 😉
39
+
40
+ I'm employed by GitLab for more than 8 years, and since late 2024 I've
41
+ been part of the Git team, contributing to the Git project. I've started
42
+ my professional career in 2008 building software for a payment terminal
43
+ running embedded GNU/Linux using C & C++. Later I've transitioned into
44
+ doing web and mobile development for a while. And now recently, I've
45
+ been circling back to more lower-level programming, contributing to Git
46
+ using C.
47
+
48
+ * What would you name your most important contribution to Git?
49
+
50
+ I'm fairly new in the Git community, but recently I've been working on
51
+ adding [ ` git last-modified ` ] ( https://git.github.io/htmldocs/git-last-modified.html ) .
52
+ It's a sub-command that will be released in Git v2.52. This command
53
+ finds the commit that last modified each path in a tree. This can
54
+ be used on forges (like GitLab, GitHub, Codeberg), to show commit
55
+ data in a tree view.
56
+
57
+ * What are you doing on the Git project these days, and why?
58
+
59
+ The subcommand [ ` git last-modified ` (1)] ( https://git.github.io/htmldocs/git-last-modified.html )
60
+ was recently merged in the 'master'. But there's more work to be
61
+ done to improve it's performance.
62
+
63
+ * If you could get a team of expert developers to work full time on
64
+ something in Git for a full year, what would it be?
65
+
66
+ Once data is committed to Git, and it's made part of the history (i.e.
67
+ committed or merged into the default branch), it's trapped forever. This
68
+ is a core principle of Git: you cannot rewrite history without changing
69
+ commit hashes. This is very powerful, but also problematic in some
70
+ scenarios.
71
+
72
+ For example, at my $DAYJOB we receive commonly the request from
73
+ customers to remove confidential or sensitive information from a Git
74
+ repository. This is not possible without rewriting history. Or when, by
75
+ accident, large files are committed to Git, you cannot get them out
76
+ (without rewriting history). Or people might want to remove/change
77
+ their personal information in a repository, for example when they
78
+ transition genders.
79
+
80
+ Can we (and should we?) build something that removes and overwrites
81
+ pieces of history, without changing commit hashes? It's a slippery
82
+ slope, because from experience I know Git users are very creative and
83
+ might use this feature in ways that were not intended for.
84
+
85
+ * If you could remove something from Git without worrying about
86
+ backwards compatibility, what would it be?
87
+
88
+ The use of the double ` .. ` and triple ` ... ` dot notation in
89
+ [ ` gitrevisions(7) ` ] ( https://git-scm.com/docs/gitrevisions#_dotted_range_notations )
90
+ and ` git diff(1) ` . I even once ranted about it in [ a video] ( https://www.youtube.com/watch?v=phThP8DwJVs ) .
91
+
92
+ * What is your favorite Git-related tool/library, outside of
93
+ Git itself?
94
+
95
+ I'm a big fan of [ Magit] [ 1 ] . It's arguably the best tool to interact
96
+ with Git and I also learned a lot from it. I consider myself an
97
+ advanced Git user, but I wouldn't be able to split up changes in
98
+ several commits without [ Magit] [ 1 ] .
99
+
100
+ [ 1 ] : https://magit.vc/
101
+
102
+ * Do you happen to have any memorable experience w.r.t. contributing
103
+ to the Git project? If yes, could you share it with us?
104
+
105
+ One of my earliest contributions to Git was a bug fix in the code used
106
+ by ` git bundle create ` . We noticed sometimes references didn't end up in
107
+ the bundle. After a lot of digging I submitted a patch that removed
108
+ about 30 lines of code written way back in 2007. The code from 2007,
109
+ caused references to be skipped if they were modified while the
110
+ ` git bundle create ` process is running. But it wasn't needed anymore
111
+ due some changes made in 2013, although no one ever realized that.
112
+ You can read more about it [ in the patch] [ 2 ] .
113
+
114
+ It was really satisfying to submit a patch that was nothing more than
115
+ code deletion of really old code (and adding some tests). And it taught
116
+ me to write a good commit message, which I was praised for by
117
+ [ the maintainer] [ 3 ] . It was a very nice experience as a newcomer in the
118
+ community.
119
+
120
+ [ 2 ] :
https://lore.kernel.org/git/[email protected] /
121
+ [ 3 ] :
https://lore.kernel.org/git/[email protected] /
122
+
123
+ * What is your toolbox for interacting with the mailing list and for
124
+ development of Git?
125
+
126
+ I mostly live in Emacs and my terminal (zsh). I consume email in Emacs
127
+ using [ notmuch] [ 4 ] . To submit patches I use [ b4] [ 5 ] , which I also
128
+ sometimes use to pull in patches. But I also sometimes pull in
129
+ the branches from [ Junio's fork] [ 6 ] or the fork shared across
130
+ my colleagues.
131
+
132
+ In Git, I compile and unit test changes using Meson. It's use was
133
+ introduced in the Git project around the [ end of 2024] [ 7 ] . It's
134
+ reliable, because it prevents me from forgetting to recompile
135
+ before running tests; it's fast, because it parallelizes compilation
136
+ by default and automatically [ uses Ccache] [ 8 ] ; it allows out-of-tree
137
+ builds, which is really convenient if you want to benchmark various
138
+ revisions of Git.
139
+
140
+ [ 4 ] : https://notmuchmail.org/doc/latest/notmuch-emacs.html
141
+ [ 5 ] : https://github.com/mricon/b4
142
+ [ 6 ] : https://github.com/gitster/git
143
+ [ 7 ] :
https://lore.kernel.org/git/[email protected] /
144
+ [ 8 ] : https://mesonbuild.com/Feature-autodetection.html#ccache
145
+
146
+ * What is your advice for people who want to start Git development?
147
+ Where and how should they start?
148
+
149
+ Learn to navigate [ the mailing list archive] [ 9 ] . It lacks structure so
150
+ things can be hard to find, but there's so much information up there. If
151
+ you're interested in a topic, or you think you find the bug, start digging.
152
+ Use [ ` git blame(1) ` ] [ 10 ] to find the commit that introduced the changes
153
+ and look up the conversation around it in the mailing list archive.
154
+ This will help you understand why some decisions are made. Also it
155
+ familiarizes you with the people in the community, how they think,
156
+ how they communicate, and what's expected from you. Having the
157
+ knowledge from those conversations can help you build a strong case
158
+ whenever you're submitting a feature change or bug fix.
159
+
160
+ [ 9 ] : https://lore.kernel.org/git
161
+ [ 10 ] : https://git-scm.com/docs/git-blame
162
+
35
163
36
164
## Other News
37
165
0 commit comments