@@ -29,9 +29,137 @@ This edition covers what happened during the months of August and September 2025
2929### Support
3030-->
3131
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+
35163
36164## Other News
37165
0 commit comments