From 951c0ba52ce2cc14e74ac5e88d21fafa344174ba Mon Sep 17 00:00:00 2001 From: Gerard Murphy Date: Wed, 3 Sep 2025 10:08:55 +0100 Subject: [PATCH 01/65] Add entries for Kinetic Merge. --- rev_news/drafts/edition-127.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index c4615b51b..138d6f17c 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -40,12 +40,27 @@ __Various__ __Light reading__ - + ++ Kinetic Merge in action + + [Merging through a file split](https://youtu.be/JHb9DKK0LIA) + + [Complex merge demonstration](https://youtu.be/6jry6NKxGJA) + + [Merging code embedded inside an if-statement](https://www.youtube.com/watch?v=sm4Naq_zJU0&t=2s) + __Git tools and sites__ ++ [Kinetic Merge](https://github.com/sageserpent-open/kineticMerge) is a command-line tool that helps you merge a heavily refactored codebase and stay sane. + Its goals are to: + + Merge two branches of a Git repository *holistically across the entire codebase*. + + Take into account the motion of code in either branch due to refactoring. + + Handle file renames, file splits, file concatenation. + + Handle code being excised from one place in a file and moved elsewhere in that file or to somewhere within another file, or hived off all by itself in its own new file. + + Work alongside the usual Git workflows, allowing ordinary Git merge to take over at the end if necessary. + + Be a simple command line tool that tries to do as much as it can without supervision, and with minimal supervision when complexities are encountered. + + Written in Scala, under an MIT license. ## Releases From eb4d36efdadec553c7f116b9741d7b989a092096 Mon Sep 17 00:00:00 2001 From: Gerard Murphy Date: Wed, 3 Sep 2025 10:17:26 +0100 Subject: [PATCH 02/65] Replace a non-breaking space with a plain blank character. --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 138d6f17c..a6bc820e1 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -53,7 +53,7 @@ __Git tools and sites__ + [Kinetic Merge](https://github.com/sageserpent-open/kineticMerge) is a command-line tool that helps you merge a heavily refactored codebase and stay sane. Its goals are to: - + Merge two branches of a Git repository *holistically across the entire codebase*. + + Merge two branches of a Git repository *holistically across the entire codebase*. + Take into account the motion of code in either branch due to refactoring. + Handle file renames, file splits, file concatenation. + Handle code being excised from one place in a file and moved elsewhere in that file or to somewhere within another file, or hived off all by itself in its own new file. From 19b27823530b94da45ccf051727d27165a5d8402 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Mon, 22 Sep 2025 16:55:18 +0100 Subject: [PATCH 03/65] Add git-flow-next release and Tower for Mac update --- rev_news/drafts/edition-127.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index c4615b51b..cc3545570 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -45,10 +45,11 @@ __Easy watching__ --> __Git tools and sites__ - +- [git-flow-next: The Next Iteration of Advanced Git Workflows](https://www.git-tower.com/blog/git-flow-next) by Bruno Brito on Tower Blog. ## Releases - +- Tower for Mac [14.4, 14.5](https://www.git-tower.com/release-notes/mac) +- git-flow-next [0.1](https://git-flow.sh/) ## Credits From 152d30b3a5eebbea7e3f69b28e54036f6398ff1a Mon Sep 17 00:00:00 2001 From: Jack Date: Wed, 24 Sep 2025 15:21:37 -0400 Subject: [PATCH 04/65] Add LearnGit.io in tools & sites --- rev_news/drafts/edition-127.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index c4615b51b..c8ffb1501 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -46,6 +46,7 @@ __Easy watching__ __Git tools and sites__ +* [LearnGit.io](https://learngit.io/) teaches version control using animated visualizations of Git internals—and is [now free](https://learngit.io/posts/learngit-io-is-now-free-for-students) for students and teachers. Created by Jack Lot of [The Modern Coder](https://www.youtube.com/@themoderncoder) YouTube channel, LearnGit offers 41 video lessons across 11 modules, along with quizzes, a Git command search, and high-quality written documentation. Educators can email jack@learngit.io for bulk vouchers. First mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). ## Releases From da2531b2a541bef44e35c2b218e2c62b0019484f Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 29 Sep 2025 11:19:39 +0530 Subject: [PATCH 05/65] rn-127: include interview with Toon Claes --- rev_news/drafts/edition-127.md | 134 ++++++++++++++++++++++++++++++++- 1 file changed, 131 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index c4615b51b..08631a78e 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -29,9 +29,137 @@ This edition covers what happened during the months of August and September 2025 ### Support --> - +## Developer Spotlight: Toon Claes + +* Who are you and what do you do? + + I'm Toon from Belgium. My name is pronounced like "tone" (rhymes with + "bone"), and not like the "toon" in "cartoon", but usually I'm already + happy if people remember my name 😉 + + I'm employed by GitLab for more than 8 years, and since late 2024 I've + been part of the Git team, contributing to the Git project. I've started + my professional career in 2008 building software for a payment terminal + running embedded GNU/Linux using C & C++. Later I've transitioned into + doing web and mobile development for a while. And now recently, I've + been circling back to more lower-level programming, contributing to Git + using C. + +* What would you name your most important contribution to Git? + + I'm fairly new in the Git community, but recently I've been working on + adding [`git last-modified`](https://git.github.io/htmldocs/git-last-modified.html). + It's a sub-command that will be released in Git v2.52. This command + finds the commit that last modified each path in a tree. This can + be used on forges (like GitLab, GitHub, Codeberg), to show commit + data in a tree view. + +* What are you doing on the Git project these days, and why? + + The subcommand [`git last-modified`(1)](https://git.github.io/htmldocs/git-last-modified.html) + was recently merged in the 'master'. But there's more work to be + done to improve it's performance. + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + Once data is committed to Git, and it's made part of the history (i.e. + committed or merged into the default branch), it's trapped forever. This + is a core principle of Git: you cannot rewrite history without changing + commit hashes. This is very powerful, but also problematic in some + scenarios. + + For example, at my $DAYJOB we receive commonly the request from + customers to remove confidential or sensitive information from a Git + repository. This is not possible without rewriting history. Or when, by + accident, large files are committed to Git, you cannot get them out + (without rewriting history). Or people might want to remove/change + their personal information in a repository, for example when they + transition genders. + + Can we (and should we?) build something that removes and overwrites + pieces of history, without changing commit hashes? It's a slippery + slope, because from experience I know Git users are very creative and + might use this feature in ways that were not intended for. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + The use of the double `..` and triple `...` dot notation in + [`gitrevisions(7)`](https://git-scm.com/docs/gitrevisions#_dotted_range_notations) + and `git diff(1)`. I even once ranted about it in [a video](https://www.youtube.com/watch?v=phThP8DwJVs). + +* What is your favorite Git-related tool/library, outside of + Git itself? + + I'm a big fan of [Magit][1]. It's arguably the best tool to interact + with Git and I also learned a lot from it. I consider myself an + advanced Git user, but I wouldn't be able to split up changes in + several commits without [Magit][1]. + +[1]: https://magit.vc/ + +* Do you happen to have any memorable experience w.r.t. contributing + to the Git project? If yes, could you share it with us? + + One of my earliest contributions to Git was a bug fix in the code used + by `git bundle create`. We noticed sometimes references didn't end up in + the bundle. After a lot of digging I submitted a patch that removed + about 30 lines of code written way back in 2007. The code from 2007, + caused references to be skipped if they were modified while the + `git bundle create` process is running. But it wasn't needed anymore + due some changes made in 2013, although no one ever realized that. + You can read more about it [in the patch][2]. + + It was really satisfying to submit a patch that was nothing more than + code deletion of really old code (and adding some tests). And it taught + me to write a good commit message, which I was praised for by + [the maintainer][3]. It was a very nice experience as a newcomer in the + community. + +[2]: https://lore.kernel.org/git/20241211-fix-bundle-create-race-v3-1-0587f6f9db1b@iotcl.com/ +[3]: https://lore.kernel.org/git/xmqqzfl4l22t.fsf@gitster.g/ + +* What is your toolbox for interacting with the mailing list and for + development of Git? + + I mostly live in Emacs and my terminal (zsh). I consume email in Emacs + using [notmuch][4]. To submit patches I use [b4][5], which I also + sometimes use to pull in patches. But I also sometimes pull in + the branches from [Junio's fork][6] or the fork shared across + my colleagues. + + In Git, I compile and unit test changes using Meson. It's use was + introduced in the Git project around the [end of 2024][7]. It's + reliable, because it prevents me from forgetting to recompile + before running tests; it's fast, because it parallelizes compilation + by default and automatically [uses Ccache][8]; it allows out-of-tree + builds, which is really convenient if you want to benchmark various + revisions of Git. + +[4]: https://notmuchmail.org/doc/latest/notmuch-emacs.html +[5]: https://github.com/mricon/b4 +[6]: https://github.com/gitster/git +[7]: https://lore.kernel.org/git/20241206-pks-meson-v11-0-525ed4792b88@pks.im/ +[8]: https://mesonbuild.com/Feature-autodetection.html#ccache + +* What is your advice for people who want to start Git development? + Where and how should they start? + + Learn to navigate [the mailing list archive][9]. It lacks structure so + things can be hard to find, but there's so much information up there. If + you're interested in a topic, or you think you find the bug, start digging. + Use [`git blame(1)`][10] to find the commit that introduced the changes + and look up the conversation around it in the mailing list archive. + This will help you understand why some decisions are made. Also it + familiarizes you with the people in the community, how they think, + how they communicate, and what's expected from you. Having the + knowledge from those conversations can help you build a strong case + whenever you're submitting a feature change or bug fix. + +[9]: https://lore.kernel.org/git +[10]: https://git-scm.com/docs/git-blame + ## Other News From 28cff047524d484710420c75f13829600947c320 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 29 Sep 2025 11:24:47 +0530 Subject: [PATCH 06/65] rn-127: tweak the link text to be consistent --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 08631a78e..13a51edce 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -48,7 +48,7 @@ This edition covers what happened during the months of August and September 2025 * What would you name your most important contribution to Git? I'm fairly new in the Git community, but recently I've been working on - adding [`git last-modified`](https://git.github.io/htmldocs/git-last-modified.html). + adding [`git last-modified`(1)](https://git.github.io/htmldocs/git-last-modified.html). It's a sub-command that will be released in Git v2.52. This command finds the commit that last modified each path in a tree. This can be used on forges (like GitLab, GitHub, Codeberg), to show commit From c28e73d98ffdebaef9ba367c1dffcd591be20c9e Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 29 Sep 2025 11:27:00 +0530 Subject: [PATCH 07/65] rn-127: emphasize the questions --- rev_news/drafts/edition-127.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 13a51edce..04cbd4989 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -31,7 +31,7 @@ This edition covers what happened during the months of August and September 2025 ## Developer Spotlight: Toon Claes -* Who are you and what do you do? +* **Who are you and what do you do?** I'm Toon from Belgium. My name is pronounced like "tone" (rhymes with "bone"), and not like the "toon" in "cartoon", but usually I'm already @@ -45,7 +45,7 @@ This edition covers what happened during the months of August and September 2025 been circling back to more lower-level programming, contributing to Git using C. -* What would you name your most important contribution to Git? +* **What would you name your most important contribution to Git?** I'm fairly new in the Git community, but recently I've been working on adding [`git last-modified`(1)](https://git.github.io/htmldocs/git-last-modified.html). @@ -54,14 +54,14 @@ This edition covers what happened during the months of August and September 2025 be used on forges (like GitLab, GitHub, Codeberg), to show commit data in a tree view. -* What are you doing on the Git project these days, and why? +* **What are you doing on the Git project these days, and why?** The subcommand [`git last-modified`(1)](https://git.github.io/htmldocs/git-last-modified.html) was recently merged in the 'master'. But there's more work to be done to improve it's performance. -* If you could get a team of expert developers to work full time on - something in Git for a full year, what would it be? +* **If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be?** Once data is committed to Git, and it's made part of the history (i.e. committed or merged into the default branch), it's trapped forever. This @@ -82,15 +82,15 @@ This edition covers what happened during the months of August and September 2025 slope, because from experience I know Git users are very creative and might use this feature in ways that were not intended for. -* If you could remove something from Git without worrying about - backwards compatibility, what would it be? +* **If you could remove something from Git without worrying about + backwards compatibility, what would it be?** The use of the double `..` and triple `...` dot notation in [`gitrevisions(7)`](https://git-scm.com/docs/gitrevisions#_dotted_range_notations) and `git diff(1)`. I even once ranted about it in [a video](https://www.youtube.com/watch?v=phThP8DwJVs). -* What is your favorite Git-related tool/library, outside of - Git itself? +* **What is your favorite Git-related tool/library, outside of + Git itself?** I'm a big fan of [Magit][1]. It's arguably the best tool to interact with Git and I also learned a lot from it. I consider myself an @@ -99,8 +99,8 @@ This edition covers what happened during the months of August and September 2025 [1]: https://magit.vc/ -* Do you happen to have any memorable experience w.r.t. contributing - to the Git project? If yes, could you share it with us? +* **Do you happen to have any memorable experience w.r.t. contributing + to the Git project? If yes, could you share it with us?** One of my earliest contributions to Git was a bug fix in the code used by `git bundle create`. We noticed sometimes references didn't end up in @@ -120,8 +120,8 @@ This edition covers what happened during the months of August and September 2025 [2]: https://lore.kernel.org/git/20241211-fix-bundle-create-race-v3-1-0587f6f9db1b@iotcl.com/ [3]: https://lore.kernel.org/git/xmqqzfl4l22t.fsf@gitster.g/ -* What is your toolbox for interacting with the mailing list and for - development of Git? +* **What is your toolbox for interacting with the mailing list and for + development of Git?** I mostly live in Emacs and my terminal (zsh). I consume email in Emacs using [notmuch][4]. To submit patches I use [b4][5], which I also @@ -143,8 +143,8 @@ This edition covers what happened during the months of August and September 2025 [7]: https://lore.kernel.org/git/20241206-pks-meson-v11-0-525ed4792b88@pks.im/ [8]: https://mesonbuild.com/Feature-autodetection.html#ccache -* What is your advice for people who want to start Git development? - Where and how should they start? +* **What is your advice for people who want to start Git development? + Where and how should they start?** Learn to navigate [the mailing list archive][9]. It lacks structure so things can be hard to find, but there's so much information up there. If From 9a28dcd3e939e9eeb307f6debab9c228d1a487dd Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 30 Sep 2025 01:00:06 +0530 Subject: [PATCH 08/65] rn-127: make minor fix suggested by Toon --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 04cbd4989..052f4aa84 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -148,7 +148,7 @@ This edition covers what happened during the months of August and September 2025 Learn to navigate [the mailing list archive][9]. It lacks structure so things can be hard to find, but there's so much information up there. If - you're interested in a topic, or you think you find the bug, start digging. + you're interested in a topic, or you think you've found the bug, start digging. Use [`git blame(1)`][10] to find the commit that introduced the changes and look up the conversation around it in the mailing list archive. This will help you understand why some decisions are made. Also it From c3bc928abff4ad408137c7673accaca6b6b554d8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 30 Sep 2025 19:27:23 +0200 Subject: [PATCH 09/65] rn-127: add releases --- rev_news/drafts/edition-127.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 052f4aa84..aa54ccbe8 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -177,6 +177,24 @@ __Git tools and sites__ ## Releases ++ Git for Windows [v2.51.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.51.0.windows.2) ++ Gerrit Code Review [3.13.0-rc0](https://www.gerritcodereview.com/3.13.html#3130) ++ GitHub Enterprise [3.17.6](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.6), +[3.16.9](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.9), +[3.15.13](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.13), +[3.14.18](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.18) ++ GitLab [18.4.1, 18.3.3, 18.2.7](https://about.gitlab.com/releases/2025/09/25/patch-release-gitlab-18-4-1-released/), +[18.4](https://about.gitlab.com/releases/2025/09/18/gitlab-18-4-released/), +[18.3.2, 18.2.6, 18.1.6](https://about.gitlab.com/releases/2025/09/10/patch-release-gitlab-18-3-2-released/) ++ GitKraken [11.4.0](https://help.gitkraken.com/gitkraken-desktop/current/) ++ Sourcetree [4.2.14](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.14.html) ++ tig [2.6.0](https://github.com/jonas/tig/releases/tag/tig-2.6.0) ++ Garden [2.3.0](https://github.com/garden-rs/garden/releases/tag/v2.3.0) ++ Git Cola [4.15.0](https://github.com/git-cola/git-cola/releases/tag/v4.15.0) ++ GitButler [0.16.8](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.16.8), +[0.16.7](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.16.7) ++ Kinetic Merge [1.9.0](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.9.0) ++ git-credential-oauth [0.16.0](https://github.com/hickford/git-credential-oauth/releases/tag/v0.16.0) ## Credits From e137c865a6e6a62484f0f89d86a3c2bafe0e614c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 30 Sep 2025 19:49:05 +0200 Subject: [PATCH 10/65] rn-127: add Bitbucket release --- rev_news/drafts/edition-127.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 6eb0718ca..31ef23dea 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -198,6 +198,7 @@ __Git tools and sites__ + Git for Windows [v2.51.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.51.0.windows.2) + Gerrit Code Review [3.13.0-rc0](https://www.gerritcodereview.com/3.13.html#3130) ++ Bitbucket Data Center [10.0](https://confluence.atlassian.com/bitbucketserver/release-notes-872139866.html) + GitHub Enterprise [3.17.6](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.6), [3.16.9](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.9), [3.15.13](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.13), From d7bfa8460fcead9a4a48744c8c067ca330b7e322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 30 Sep 2025 19:56:06 +0200 Subject: [PATCH 11/65] rn-127: Re-wrap and re-format --- rev_news/drafts/edition-127.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 31ef23dea..4df7d2c42 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -181,7 +181,8 @@ __Easy watching__ __Git tools and sites__ -+ [Kinetic Merge](https://github.com/sageserpent-open/kineticMerge) is a command-line tool that helps you merge a heavily refactored codebase and stay sane. ++ [Kinetic Merge](https://github.com/sageserpent-open/kineticMerge) + is a command-line tool that helps you merge a heavily refactored codebase and stay sane. Its goals are to: + Merge two branches of a Git repository *holistically across the entire codebase*. + Take into account the motion of code in either branch due to refactoring. @@ -192,7 +193,14 @@ __Git tools and sites__ Written in Scala, under an MIT license. -* [LearnGit.io](https://learngit.io/) teaches version control using animated visualizations of Git internals—and is [now free](https://learngit.io/posts/learngit-io-is-now-free-for-students) for students and teachers. Created by Jack Lot of [The Modern Coder](https://www.youtube.com/@themoderncoder) YouTube channel, LearnGit offers 41 video lessons across 11 modules, along with quizzes, a Git command search, and high-quality written documentation. Educators can email jack@learngit.io for bulk vouchers. First mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). ++ [LearnGit.io](https://learngit.io/) teaches version control + using animated visualizations of Git internals—and is + [now free](https://learngit.io/posts/learngit-io-is-now-free-for-students) for students and teachers. + Created by Jack Lot of [The Modern Coder](https://www.youtube.com/@themoderncoder) YouTube channel, + LearnGit offers 41 video lessons across 11 modules, along with quizzes, + a Git command search, and high-quality written documentation. + Educators can email jack@learngit.io for bulk vouchers. + First mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). ## Releases From 917e9c547f5cac157ce6a18a2b2f82f9f80080d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 30 Sep 2025 21:38:59 +0200 Subject: [PATCH 12/65] rn-127: post about git-greb from @benknoble --- rev_news/drafts/edition-127.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 4df7d2c42..08df4d1d8 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -170,6 +170,10 @@ __Light reading__ + [git-flow-next: The Next Iteration of Advanced Git Workflows](https://www.git-tower.com/blog/git-flow-next) by Bruno Brito on Tower Blog. ++ [A kludgy new way to git-blame](https://benknoble.github.io/blog/2025/09/17/blame/) + by D. Ben Knoble on his Junk Drawer personal Blog, + about the new `git-greb` script that feeds `git grep` to `git blame` + (with appropriate options) in order to blame matching lines. __Easy watching__ @@ -181,6 +185,7 @@ __Easy watching__ __Git tools and sites__ + + [Kinetic Merge](https://github.com/sageserpent-open/kineticMerge) is a command-line tool that helps you merge a heavily refactored codebase and stay sane. Its goals are to: From 34b34870f622c83aae3b12ce062b43c82c99e434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 1 Oct 2025 01:09:06 +0200 Subject: [PATCH 13/65] rn-127: Add links to news, articles, tools and sites (part 1) --- rev_news/drafts/edition-127.md | 101 +++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 08df4d1d8..8c2a59775 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -165,6 +165,14 @@ This edition covers what happened during the months of August and September 2025 __Various__ ++ [What’s next for Git? 20 years in, the community is still pushing forward](https://github.blog/open-source/whats-next-for-git-20-years-in-the-community-is-still-pushing-forward/) + by Lee Reilly on GitHub Blog - mainly about + the [Git Merge 2025 talks lineup](https://git-merge.com/#speakers). ++ [Git Developers Debate Making Rust Mandatory](https://www.phoronix.com/news/Git-Weighs-Mandatory-Rust) + by Michael Larabel on Phoronix. ++ [A policy for `Link:` tags](https://lwn.net/Articles/1037069/) (for Linux), + by Jonathan Corbet on LWN\.net. + __Light reading__ @@ -174,14 +182,92 @@ __Light reading__ by D. Ben Knoble on his Junk Drawer personal Blog, about the new `git-greb` script that feeds `git grep` to `git blame` (with appropriate options) in order to blame matching lines. ++ [My new git utility `what-changed-twice` needs a new name](https://blog.plover.com/2025/09/21/#what-changed-twice) + by Mark Dominus (陶敏修) on his The Universe of Discourse blog, + about the tool to help get related changes into the same commit. ++ [Supercharge your Git workflows](https://about.gitlab.com/blog/supercharge-your-git-workflows/) + by Darwin Sanoy on GitLab Blog, about how to + optimize `git clone` operations in any environment, reducing clone time and disk space, + with the [Git Much Faster](https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster) script. + + Compare with [Scalar](https://github.com/microsoft/scalar), + a tool that helps Git scale to handle large Git repositories + by enabling some advanced Git features. + Scalar was first mentioned in [Git Rev News Edition #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + and now is part of Git: [scalar - A tool for managing large Git repositories](https://git-scm.com/docs/scalar). + [The Story of Scalar](https://github.blog/2022-10-13-the-story-of-scalar/) + was mentioned in [Edition #92](https://git.github.io/rev_news/2022/10/26/edition-92/). ++ [Git - Fun Facts](https://dev.to/rubansi/git-fun-fact-45de) + by Rubansi Vincent on DEV\.to: + a mix of fun and surprising facts about Git. ++ [Dear GitHub: no YAML anchors, please](https://blog.yossarian.net/2025/09/22/dear-github-no-yaml-anchors) + by William Woodruff (yossarian) on his ENOSUCHBLOG blog. + He says that they are redundant with existing functionality, + make CI/CD human and machine comprehension harder, + and their support in GitHub Actions does not introduce any new, previously unavailable features. ++ [Custom VC-Focused Emacs Functions I Created to Enhance My Git Workflow](https://www.rahuljuliato.com/posts/vc-git-functions) + by Rahul M. Juliato on Rahul's Blog. ++ [How to delete all squash-merged local git branches with one terminal command](https://whitep4nth3r.com/blog/how-to-delete-all-squash-merged-local-git-branches-with-one-terminal-command/) + (which you probably shouldn't use), + by Salma Alam-Naylor on her blog. ++ [finding deleted content using git logs](https://kjelsrud.dev/blog/finding-deleted-content-using-git-logs/) + by Sindre Kjelsrud, also known as “Sid”, on Sids' blog: + a short note on `git log -S`. ++ [Git Dual Remotes](https://zanshin.net/2025/09/02/git-dual-remotes/): + a short note by Mark H. Nichols on his Zanshin.net personal site, + about the difference between `git push` and `git fetch` with multiple URLs, + and `jj git push --all-remotes`. ++ [Migrating from Gitea to Forgejo the long way](https://msfjarvis.dev/posts/migrating-from-gitea-to-forgejo-the-long-way/) + by Harsh Shandilya on his blog.
+ [Gitea](https://about.gitea.com/) and [Forgejo](https://forgejo.org/) are software forges. ++ [Some thoughts on personal git hosting](https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/) + by Terence Eden on Terence Eden’s Blog. ++ [Sourcegraph went dark](https://www.eric-fritz.com/articles/sourcegraph-went-dark/) + by Eric Fritz on his blog (2024), + about the work that went into ensuring that references are kept alive + after `sourcegraph/sourcegraph` repository went private + (there is a public snapshot available at [sourcegraph/sourcegraph-public-snapshot](https://github.com/sourcegraph/sourcegraph-public-snapshot), + which is read-only archived repository). ++ [How to use stacked PRs to unblock your entire team](https://graphite.dev/blog/stacked-prs) + by Ninad Pathak on Graphite Blog (2024), and
+ [A guide to using Graphite's stacked PRs for GitHub users](https://dev.to/semgrep/a-guide-to-using-graphites-stacked-prs-for-github-users-5c47) + by Martin Jambon for Semgrep on DEV\.to. + + See also [Stacked Branches with GitButler](https://blog.gitbutler.com/stacked-branches-with-gitbutler/) + by Scott Chacon on the GitButler Blog, + mentioned in [Git Rev News Edition #118](https://git.github.io/rev_news/2024/12/31/edition-118/). + + See also [Understanding the Stacked Pull Requests Workflow](https://www.git-tower.com/blog/stacked-prs/) by Bruno Brito on Tower's blog, + mentioned in [Git Rev News Edition #111](https://git.github.io/rev_news/2024/05/31/edition-111/) + together with various other articles and tools about stacked diffs, stacked PRs, and stacked branches. + + See also [Rethinking code reviews with stacked PRs](https://www.aviator.co/blog/rethinking-code-reviews-with-stacked-prs/#) + by Ankit Jain on the Aviator blog, + mentioned in [Git Rev News Edition #115](https://git.github.io/rev_news/2024/09/30/edition-115/) + with links to more sites and tools related to stacked PRs, etc. ++ [GitButler's new patch based Code Review (Beta)](https://blog.gitbutler.com/gitbutlers-new-patch-based-code-review) + by Scott Chacon on GitButler's Blog. ++ [first-class merges and cover letters](https://dotat.at/@/2025-09-11-cover-letter.html) + by Tony Finch on his blog. + + +__Slightly heavier reading__ + ++ [Quo Vadis, Code Review? Exploring the Future of Code Review](https://arxiv.org/abs/2508.06879), + a scientific article from August 2025, arXiv:2508.06879 + (most authors of the paper are from Blekinge Institute of Technology, Karlskrona, Sweden). ++ [Code Review as Decision-Making -- Building a Cognitive Model from the Questions Asked During Code Review](https://arxiv.org/abs/2507.09637), + a scientific article from July 2025, arXiv:2507.09637 + (all authors are from Lund University, Lund, Sweden). + Submitted to _Empirical Software Engineering_, Springer Nature. __Easy watching__ ++ [Git Mini Summit 2025 Videos](https://blog.gitbutler.com/git-mini-summit-2025) + by Scott Chacon on GitButler's Blog. + Kinetic Merge in action + [Merging through a file split](https://youtu.be/JHb9DKK0LIA) + [Complex merge demonstration](https://youtu.be/6jry6NKxGJA) + [Merging code embedded inside an if-statement](https://www.youtube.com/watch?v=sm4Naq_zJU0&t=2s) ++ [12 Git commands visualized in 3D: a spatial approach to understanding version control](https://www.youtube.com/watch?v=C2aFC8wFp2A) + [4:58], on Initial Commit channel on YouTube. __Git tools and sites__ @@ -197,6 +283,15 @@ __Git tools and sites__ + Be a simple command line tool that tries to do as much as it can without supervision, and with minimal supervision when complexities are encountered. Written in Scala, under an MIT license. ++ [Git Much Faster](https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster) + is a comprehensive benchmarking tool for comparing different Git clone strategies, + especially for large repositories. + Written as Bash shell script, under MIT license. ++ [git-sqlite](https://github.com/cannadayr/git-sqlite) + is a collection of shell scripts, + including a custom diff and merge driver for sqlite, + that allows a sqlite database to be tracked using the git version control system. + Under MIT license. + [LearnGit.io](https://learngit.io/) teaches version control using animated visualizations of Git internals—and is @@ -206,6 +301,12 @@ __Git tools and sites__ a Git command search, and high-quality written documentation. Educators can email jack@learngit.io for bulk vouchers. First mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). ++ [GitFichas](https://gitfichas.com/en) (also know as GitStudyCards) + is a collection of study cards about Git, + for devs that might need a refresher about Git commands. + GitFichas is now [open-source](https://github.com/jtemporal/gitfichas) + and undergoing some construction. + ## Releases From c993836ba4d42a1788048573af517c7537642553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 1 Oct 2025 01:48:51 +0200 Subject: [PATCH 14/65] rn-127: Add links to news, articles, tools and sites (part 2) --- rev_news/drafts/edition-127.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 8c2a59775..d93d54b71 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -196,9 +196,25 @@ __Light reading__ and now is part of Git: [scalar - A tool for managing large Git repositories](https://git-scm.com/docs/scalar). [The Story of Scalar](https://github.blog/2022-10-13-the-story-of-scalar/) was mentioned in [Edition #92](https://git.github.io/rev_news/2022/10/26/edition-92/). ++ [The Origin Story of Merge Queues](https://mergify.com/blog/the-origin-story-of-merge-queues) + by Julien Danjou on Mergify Blog. + This article traces merge queues history, + (from Bors and Homu to Bulldozer, Kodiak, Mergify, GitHub and GitLab), + why they emerged, and how they became a standard in modern software development. + + [Mergify.com](https://mergify.com/), + a web service for automatizing pull requests (free for open-source projects), + was mentioned in [Git Rev News Edition #87](https://git.github.io/rev_news/2022/05/26/edition-87/). + [Git - Fun Facts](https://dev.to/rubansi/git-fun-fact-45de) by Rubansi Vincent on DEV\.to: a mix of fun and surprising facts about Git. ++ [diff --stat for binary files (in the Jujutsu version control system)](https://neugierig.org/software/blog/2025/08/jj-binary-stat.html) + by Evan Martin on neugierig\.org: Tech Notes. + + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/) is a Git-compatible version control system + written in Rust, first mentioned in + [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). ++ [Jujutsu For Busy Devs, Part 2: "How Do I...?"](https://maddie.wtf/posts/2025-07-21-jujutsu-for-busy-devs/entry/1) + by Madeleine Mortensen, continues [Jujutsu For Busy Devs](https://maddie.wtf/posts/2025-07-21-jujutsu-for-busy-devs) + series, mentioned in [Git Rev News Edition #125](https://git.github.io/rev_news/2025/07/31/edition-125/). + [Dear GitHub: no YAML anchors, please](https://blog.yossarian.net/2025/09/22/dear-github-no-yaml-anchors) by William Woodruff (yossarian) on his ENOSUCHBLOG blog. He says that they are redundant with existing functionality, @@ -212,6 +228,8 @@ __Light reading__ + [finding deleted content using git logs](https://kjelsrud.dev/blog/finding-deleted-content-using-git-logs/) by Sindre Kjelsrud, also known as “Sid”, on Sids' blog: a short note on `git log -S`. ++ [Git exclude, a handy feature you might not know about](https://marijkeluttekes.dev/blog/articles/2025/09/03/git-exclude-a-handy-feature-you-might-not-know-about/) + by Marijke Luttekes on her blog, about `.git/info/exclude`. + [Git Dual Remotes](https://zanshin.net/2025/09/02/git-dual-remotes/): a short note by Mark H. Nichols on his Zanshin.net personal site, about the difference between `git push` and `git fetch` with multiple URLs, @@ -221,6 +239,8 @@ __Light reading__ [Gitea](https://about.gitea.com/) and [Forgejo](https://forgejo.org/) are software forges. + [Some thoughts on personal git hosting](https://shkspr.mobi/blog/2025/09/some-thoughts-on-personal-git-hosting/) by Terence Eden on Terence Eden’s Blog. ++ [Setting up cgit with Caddy v2 web server](https://www.sixfoisneuf.fr/posts/setting-up-cgit-with-caddy2/) + by Simon Garrelou on his SixFoisNeuf blog (2022). + [Sourcegraph went dark](https://www.eric-fritz.com/articles/sourcegraph-went-dark/) by Eric Fritz on his blog (2024), about the work that went into ensuring that references are kept alive @@ -268,6 +288,10 @@ __Easy watching__ + [Merging code embedded inside an if-statement](https://www.youtube.com/watch?v=sm4Naq_zJU0&t=2s) + [12 Git commands visualized in 3D: a spatial approach to understanding version control](https://www.youtube.com/watch?v=C2aFC8wFp2A) [4:58], on Initial Commit channel on YouTube. ++ [Stacked Branches With Lazygit](https://www.youtube.com/watch?v=M6S-9Y8peDY) + [12:18] by Jesse Duffield (Lazygit author) on YouTube. + + [lazygit](https://github.com/jesseduffield/lazygit) is a simple [windowed] terminal UI for Git, + written in Go. It was first mentioned in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/). __Git tools and sites__ @@ -287,6 +311,13 @@ __Git tools and sites__ is a comprehensive benchmarking tool for comparing different Git clone strategies, especially for large repositories. Written as Bash shell script, under MIT license. ++ [_prek_](https://prek.j178.dev/) is a reimagined version of [pre-commit](https://pre-commit.com/), built in Rust. + It is is a framework to run hooks written in many languages, + and it manages the language toolchain and dependencies for running the hooks. + prek is not production-ready yet: some subcommands and languages are not implemented. + Under MIT license. + + See also [Ready prek go!](https://hugovk.dev/blog/2025/ready-prek-go/) + article by Hugo van Kemenade on his blog. + [git-sqlite](https://github.com/cannadayr/git-sqlite) is a collection of shell scripts, including a custom diff and merge driver for sqlite, From b0af9a9fdbff0971a753fb990ea77904665af214 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 1 Oct 2025 08:52:27 +0200 Subject: [PATCH 15/65] rn-127: add article about blob/treeless clones --- rev_news/drafts/edition-127.md | 99 +++++++++++++++++++++++++++++++++- 1 file changed, 97 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index d93d54b71..1124931a9 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -25,9 +25,104 @@ This edition covers what happened during the months of August and September 2025 ### Reviews --> - + +* [Doing blobless clone by default; switching between blobless, treeless and full clones by a command](https://lore.kernel.org/git/79ed51fbd94ec2793ab0388b33963b366e48c590.camel@aegee.org/) + + Dilyan Palauzov (Дилян Палаузов) sent an email to the Git mailing + list where he proposed making blobless cloning + (`--filter=blob:none`) the default behavior for `git clone` via a + global configuration option. He also suggested adding a command to + download all locally missing history, a command to convert a + repository to a pure treeless or pure blobless clone, and a config + option to make blobless clone the default behavior when running just + `git clone URL`. + + He said that most users clone to build or change software, not to + immediately analyze history with commands like `git log`. Therefore, + a reduced data download would speed up initialization, save + bandwidth, and reduce server load. + + Kristoffer Haugsbakk replied saying the proposed command to + "download all locally missing history" for treeless and blobless + clones "sounds like git-backfill(1)". He also noted that he had + "never used blob/treeless" clones himself. + + Derrick Stolee, who likes to be called just "Stolee", and who + contributed the `git backfill` command, replied to Kristoffer + confirming that git backfill is intended to assist with downloading + the missing blobs in a blobless partial clone. + + About treeless clones though, he noted that git backfill is not + optimized for them, and that treeless clones are generally not + intended for "refilling," as downloading missing trees is + "particularly expensive". + + Stolee suggested using `scalar clone`, which is already shipped with + Git, instead of making blobless cloning the default, as + `scalar clone` was contributed partly to allow users to opt into a + version of `git clone` that incorporates "best practices and + advanced features as they are developed", while `git clone` + maintains backward compatibility. He recognized that `scalar clone` + might not be "discoverable enough" though. + + Junio Hamano replied to Stolee's suggestion that a future command + like `git big-clone` could emerge from the feedback on + `scalar clone`. He said a separate command like `git big-clone` + would not be discoverable enough either. Instead as a new feature + matures, it should be a welcome change for `git clone` to borrow it + as a new option. Such optimizations (like those for large repos) + could be automatically enabled based on the repository's size, + provided it's done with end-user consent. + + Patrick Steinhardt replied to Stolee about treeless clones. He + agreed that the existing command `git backfill` is not optimized for + refilling treeless clones, and proposed an idea to backfill trees by + batching based on depth, but concluded that this method is + "definitely not ideal" and would perform "way worse compared to + backfilling blobs". + + Patrick also said that for these reasons he generally recommends not + to use treeless clones at all. + + Stolee replied to Patrick agreeing with the general caution + regarding treeless clones, and that they are "not a good approach + for doing ongoing work as a human". + + However he noted that they are useful if a user needs the speed of a + shallow clone combined with the ability to analyze commit history + (though with no path history) for an "ephemeral scenario like a CI + build". But they are a "tool for a very narrow case" and should only + be used by those who understand how to avoid their pitfalls. Patrick + then agreed with that point of view. + + Konstantin Ryabitsev, the system administrator for kernel.org, + replied to the original email from Dilyan about making blobless + clones the default behavior for `git clone`. He said a + counter-rationale to this proposal was that shallow clones (which + include blobless clones) generate significantly more load on the + server side. + + The reason is that for these partial clones, no pre-existing packs + are available for the operation, requiring more computation from the + server. So changing the default behavior for `git clone` could + likely result in slower clones for everyone and lead to more + unavailable servers due to the high load. + + Ben Knoble also replied to Dilyan's original email by opposing the + proposal to make blobless clones the default behavior while agreeing + that managing this preference via a config option was a reasonable + compromise. + + Ben's opinion was that such a default behavior would defeat the + "tremendous advantage of distributed version control" which is about + having the whole repository available independently. It would also + makes some of his use cases more difficult as he frequently clones + repositories specifically to run "history spelunking searches". + + He noted that he primarily deals with repositories where the issue + isn't about clones, but about mismanaging large binary files in + history, which creates large blobs and clone times. ## Developer Spotlight: Toon Claes From 24e22804228331835009ac4bce1dfb472994e5cc Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 1 Oct 2025 09:23:38 +0200 Subject: [PATCH 16/65] rev_news: announce the completion of the Persian translation of the ProGit book! This was a gargantuan effort. Signed-off-by: Johannes Schindelin --- rev_news/drafts/edition-127.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 1124931a9..ab48bdadb 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -267,6 +267,7 @@ __Various__ by Michael Larabel on Phoronix. + [A policy for `Link:` tags](https://lwn.net/Articles/1037069/) (for Linux), by Jonathan Corbet on LWN\.net. ++ [Working almost continuously for six months](https://www.linkedin.com/feed/update/urn:li:activity:7378744230275350528/), Yasin Dehfuli completed the [Persian translation of the ProGit book](https://git-scm.com/book/fa/v2). __Light reading__ From f7c2c56daa71666bc95878692f3d763739ea7b06 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 1 Oct 2025 09:24:10 +0200 Subject: [PATCH 17/65] rev_news: mention the effort to refresh the look & contents of git-scm.com Signed-off-by: Johannes Schindelin --- rev_news/drafts/edition-127.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index ab48bdadb..89b166561 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -268,6 +268,7 @@ __Various__ + [A policy for `Link:` tags](https://lwn.net/Articles/1037069/) (for Linux), by Jonathan Corbet on LWN\.net. + [Working almost continuously for six months](https://www.linkedin.com/feed/update/urn:li:activity:7378744230275350528/), Yasin Dehfuli completed the [Persian translation of the ProGit book](https://git-scm.com/book/fa/v2). ++ An initiative [to refresh the look and content of https://git-scm.com/](https://github.com/git/git-scm.com/issues/2046) has been kicked off by Toon Claes. Contributions welcome, especially from visual designers! __Light reading__ From 55462875b5f5b13b8ae650ffbb8eec5a249dc324 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 1 Oct 2025 09:27:46 +0200 Subject: [PATCH 18/65] rev_news: mention the Learn section and the Cheat Sheet on git-scm.com Signed-off-by: Johannes Schindelin --- rev_news/drafts/edition-127.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 89b166561..ebb50dc4a 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -434,6 +434,7 @@ __Git tools and sites__ for devs that might need a refresher about Git commands. GitFichas is now [open-source](https://github.com/jtemporal/gitfichas) and undergoing some construction. ++ Git's home page now has a [Learn](https://git-scm.com/learn) section, including [a handy Git Cheat Sheet](https://git-scm.com/cheat-sheet), contributed by the ever-industrious Julia Evans. These contributions are part of [the initiative to refresh the look and contents of git-scm.com](https://github.com/git/git-scm.com/issues/2046). ## Releases From e224cdd76083baaa158e901b09364e7f77feefe3 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 1 Oct 2025 13:35:11 +0530 Subject: [PATCH 19/65] rn-127: add link to Julia's website It's likely not that this link is necessary to recognize which Julia we're referring to. Yet, it helps make it feel complete. :-) --- rev_news/drafts/edition-127.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index ebb50dc4a..39c9cc13e 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -434,7 +434,8 @@ __Git tools and sites__ for devs that might need a refresher about Git commands. GitFichas is now [open-source](https://github.com/jtemporal/gitfichas) and undergoing some construction. -+ Git's home page now has a [Learn](https://git-scm.com/learn) section, including [a handy Git Cheat Sheet](https://git-scm.com/cheat-sheet), contributed by the ever-industrious Julia Evans. These contributions are part of [the initiative to refresh the look and contents of git-scm.com](https://github.com/git/git-scm.com/issues/2046). ++ Git's home page now has a [Learn](https://git-scm.com/learn) section, including [a handy Git Cheat Sheet](https://git-scm.com/cheat-sheet), contributed by the ever-industrious + [Julia Evans](https://jvns.ca/). These contributions are part of [the initiative to refresh the look and contents of git-scm.com](https://github.com/git/git-scm.com/issues/2046). ## Releases From 13d9304afcb1d2aa2a3ffd00f32420f5896a59f8 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Thu, 2 Oct 2025 11:47:08 +0200 Subject: [PATCH 20/65] rn-127: Some tiny fixes and reqphrasings. Regarding indirect speech, I left facts in simple present where it seems appropriate - your mileage may vary. As usual, feel free to scrutinize. --- rev_news/drafts/edition-127.md | 48 +++++++++++++++++----------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 39c9cc13e..9c80bcc7c 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -36,9 +36,9 @@ This edition covers what happened during the months of August and September 2025 download all locally missing history, a command to convert a repository to a pure treeless or pure blobless clone, and a config option to make blobless clone the default behavior when running just - `git clone URL`. + `git clone `. - He said that most users clone to build or change software, not to + He said that most users used `git clone` to build or change software, not to immediately analyze history with commands like `git log`. Therefore, a reduced data download would speed up initialization, save bandwidth, and reduce server load. @@ -50,10 +50,10 @@ This edition covers what happened during the months of August and September 2025 Derrick Stolee, who likes to be called just "Stolee", and who contributed the `git backfill` command, replied to Kristoffer - confirming that git backfill is intended to assist with downloading + confirming that `git backfill` is intended to assist with downloading the missing blobs in a blobless partial clone. - About treeless clones though, he noted that git backfill is not + About treeless clones though, he noted that `git backfill` is not optimized for them, and that treeless clones are generally not intended for "refilling," as downloading missing trees is "particularly expensive". @@ -73,12 +73,12 @@ This edition covers what happened during the months of August and September 2025 matures, it should be a welcome change for `git clone` to borrow it as a new option. Such optimizations (like those for large repos) could be automatically enabled based on the repository's size, - provided it's done with end-user consent. + provided it was done with end-user consent. Patrick Steinhardt replied to Stolee about treeless clones. He agreed that the existing command `git backfill` is not optimized for refilling treeless clones, and proposed an idea to backfill trees by - batching based on depth, but concluded that this method is + batching based on depth, but concluded that this method was "definitely not ideal" and would perform "way worse compared to backfilling blobs". @@ -86,7 +86,7 @@ This edition covers what happened during the months of August and September 2025 to use treeless clones at all. Stolee replied to Patrick agreeing with the general caution - regarding treeless clones, and that they are "not a good approach + regarding treeless clones, and that they were "not a good approach for doing ongoing work as a human". However he noted that they are useful if a user needs the speed of a @@ -115,14 +115,14 @@ This edition covers what happened during the months of August and September 2025 compromise. Ben's opinion was that such a default behavior would defeat the - "tremendous advantage of distributed version control" which is about + "tremendous advantage of distributed version control", which is about having the whole repository available independently. It would also - makes some of his use cases more difficult as he frequently clones + make some of his use cases more difficult as he frequently clones repositories specifically to run "history spelunking searches". He noted that he primarily deals with repositories where the issue isn't about clones, but about mismanaging large binary files in - history, which creates large blobs and clone times. + history, which causes large blobs and clone times. ## Developer Spotlight: Toon Claes @@ -130,7 +130,7 @@ This edition covers what happened during the months of August and September 2025 I'm Toon from Belgium. My name is pronounced like "tone" (rhymes with "bone"), and not like the "toon" in "cartoon", but usually I'm already - happy if people remember my name 😉 + happy if people remember my name 😉. I'm employed by GitLab for more than 8 years, and since late 2024 I've been part of the Git team, contributing to the Git project. I've started @@ -145,7 +145,7 @@ This edition covers what happened during the months of August and September 2025 I'm fairly new in the Git community, but recently I've been working on adding [`git last-modified`(1)](https://git.github.io/htmldocs/git-last-modified.html). It's a sub-command that will be released in Git v2.52. This command - finds the commit that last modified each path in a tree. This can + finds the commit that last modified each path in a tree. It can be used on forges (like GitLab, GitHub, Codeberg), to show commit data in a tree view. @@ -153,7 +153,7 @@ This edition covers what happened during the months of August and September 2025 The subcommand [`git last-modified`(1)](https://git.github.io/htmldocs/git-last-modified.html) was recently merged in the 'master'. But there's more work to be - done to improve it's performance. + done to improve its performance. * **If you could get a team of expert developers to work full time on something in Git for a full year, what would it be?** @@ -200,9 +200,9 @@ This edition covers what happened during the months of August and September 2025 One of my earliest contributions to Git was a bug fix in the code used by `git bundle create`. We noticed sometimes references didn't end up in the bundle. After a lot of digging I submitted a patch that removed - about 30 lines of code written way back in 2007. The code from 2007, + about 30 lines of code written way back in 2007. The code from 2007 caused references to be skipped if they were modified while the - `git bundle create` process is running. But it wasn't needed anymore + `git bundle create` process was running. But it wasn't needed anymore due some changes made in 2013, although no one ever realized that. You can read more about it [in the patch][2]. @@ -226,8 +226,8 @@ This edition covers what happened during the months of August and September 2025 In Git, I compile and unit test changes using Meson. It's use was introduced in the Git project around the [end of 2024][7]. It's - reliable, because it prevents me from forgetting to recompile - before running tests; it's fast, because it parallelizes compilation + reliable because it prevents me from forgetting to recompile + before running tests; it's fast because it parallelizes compilation by default and automatically [uses Ccache][8]; it allows out-of-tree builds, which is really convenient if you want to benchmark various revisions of Git. @@ -295,7 +295,7 @@ __Light reading__ was mentioned in [Edition #92](https://git.github.io/rev_news/2022/10/26/edition-92/). + [The Origin Story of Merge Queues](https://mergify.com/blog/the-origin-story-of-merge-queues) by Julien Danjou on Mergify Blog. - This article traces merge queues history, + This article traces merge queues history (from Bors and Homu to Bulldozer, Kodiak, Mergify, GitHub and GitLab), why they emerged, and how they became a standard in modern software development. + [Mergify.com](https://mergify.com/), @@ -341,9 +341,9 @@ __Light reading__ + [Sourcegraph went dark](https://www.eric-fritz.com/articles/sourcegraph-went-dark/) by Eric Fritz on his blog (2024), about the work that went into ensuring that references are kept alive - after `sourcegraph/sourcegraph` repository went private + after the `sourcegraph/sourcegraph` repository went private (there is a public snapshot available at [sourcegraph/sourcegraph-public-snapshot](https://github.com/sourcegraph/sourcegraph-public-snapshot), - which is read-only archived repository). + which is a read-only archived repository). + [How to use stacked PRs to unblock your entire team](https://graphite.dev/blog/stacked-prs) by Ninad Pathak on Graphite Blog (2024), and
[A guide to using Graphite's stacked PRs for GitHub users](https://dev.to/semgrep/a-guide-to-using-graphites-stacked-prs-for-github-users-5c47) @@ -384,7 +384,7 @@ __Easy watching__ + [Complex merge demonstration](https://youtu.be/6jry6NKxGJA) + [Merging code embedded inside an if-statement](https://www.youtube.com/watch?v=sm4Naq_zJU0&t=2s) + [12 Git commands visualized in 3D: a spatial approach to understanding version control](https://www.youtube.com/watch?v=C2aFC8wFp2A) - [4:58], on Initial Commit channel on YouTube. + [4:58], on the Initial Commit channel on YouTube. + [Stacked Branches With Lazygit](https://www.youtube.com/watch?v=M6S-9Y8peDY) [12:18] by Jesse Duffield (Lazygit author) on YouTube. + [lazygit](https://github.com/jesseduffield/lazygit) is a simple [windowed] terminal UI for Git, @@ -409,7 +409,7 @@ __Git tools and sites__ especially for large repositories. Written as Bash shell script, under MIT license. + [_prek_](https://prek.j178.dev/) is a reimagined version of [pre-commit](https://pre-commit.com/), built in Rust. - It is is a framework to run hooks written in many languages, + It is a framework to run hooks written in many languages, and it manages the language toolchain and dependencies for running the hooks. prek is not production-ready yet: some subcommands and languages are not implemented. Under MIT license. @@ -417,8 +417,8 @@ __Git tools and sites__ article by Hugo van Kemenade on his blog. + [git-sqlite](https://github.com/cannadayr/git-sqlite) is a collection of shell scripts, - including a custom diff and merge driver for sqlite, - that allows a sqlite database to be tracked using the git version control system. + including a custom diff and merge driver for SQLite, + that allows a SQLite database to be tracked using the Git version control system. Under MIT license. + [LearnGit.io](https://learngit.io/) teaches version control From 994d631a8d4058ece12009719c5614b15ca97363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Fri, 3 Oct 2025 12:07:01 +0200 Subject: [PATCH 21/65] rn-127: minor copy edit --- rev_news/drafts/edition-127.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 9c80bcc7c..c969258b2 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -175,7 +175,7 @@ This edition covers what happened during the months of August and September 2025 Can we (and should we?) build something that removes and overwrites pieces of history, without changing commit hashes? It's a slippery slope, because from experience I know Git users are very creative and - might use this feature in ways that were not intended for. + might use this feature in ways it was not intended for. * **If you could remove something from Git without worrying about backwards compatibility, what would it be?** @@ -224,7 +224,7 @@ This edition covers what happened during the months of August and September 2025 the branches from [Junio's fork][6] or the fork shared across my colleagues. - In Git, I compile and unit test changes using Meson. It's use was + In Git, I compile and unit test changes using Meson. Its use was introduced in the Git project around the [end of 2024][7]. It's reliable because it prevents me from forgetting to recompile before running tests; it's fast because it parallelizes compilation @@ -276,7 +276,7 @@ __Light reading__ + [git-flow-next: The Next Iteration of Advanced Git Workflows](https://www.git-tower.com/blog/git-flow-next) by Bruno Brito on Tower Blog. + [A kludgy new way to git-blame](https://benknoble.github.io/blog/2025/09/17/blame/) - by D. Ben Knoble on his Junk Drawer personal Blog, + by D. Ben Knoble on his Junk Drawer personal blog, about the new `git-greb` script that feeds `git grep` to `git blame` (with appropriate options) in order to blame matching lines. + [My new git utility `what-changed-twice` needs a new name](https://blog.plover.com/2025/09/21/#what-changed-twice) @@ -299,7 +299,7 @@ __Light reading__ (from Bors and Homu to Bulldozer, Kodiak, Mergify, GitHub and GitLab), why they emerged, and how they became a standard in modern software development. + [Mergify.com](https://mergify.com/), - a web service for automatizing pull requests (free for open-source projects), + a web service for automating pull requests (free for open-source projects), was mentioned in [Git Rev News Edition #87](https://git.github.io/rev_news/2022/05/26/edition-87/). + [Git - Fun Facts](https://dev.to/rubansi/git-fun-fact-45de) by Rubansi Vincent on DEV\.to: @@ -310,7 +310,7 @@ __Light reading__ written in Rust, first mentioned in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). + [Jujutsu For Busy Devs, Part 2: "How Do I...?"](https://maddie.wtf/posts/2025-07-21-jujutsu-for-busy-devs/entry/1) - by Madeleine Mortensen, continues [Jujutsu For Busy Devs](https://maddie.wtf/posts/2025-07-21-jujutsu-for-busy-devs) + by Madeleine Mortensen, continues the [Jujutsu For Busy Devs](https://maddie.wtf/posts/2025-07-21-jujutsu-for-busy-devs) series, mentioned in [Git Rev News Edition #125](https://git.github.io/rev_news/2025/07/31/edition-125/). + [Dear GitHub: no YAML anchors, please](https://blog.yossarian.net/2025/09/22/dear-github-no-yaml-anchors) by William Woodruff (yossarian) on his ENOSUCHBLOG blog. @@ -407,7 +407,7 @@ __Git tools and sites__ + [Git Much Faster](https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster) is a comprehensive benchmarking tool for comparing different Git clone strategies, especially for large repositories. - Written as Bash shell script, under MIT license. + Written as a Bash shell script, under MIT license. + [_prek_](https://prek.j178.dev/) is a reimagined version of [pre-commit](https://pre-commit.com/), built in Rust. It is a framework to run hooks written in many languages, and it manages the language toolchain and dependencies for running the hooks. From 5499249937155455608fc55225b3e32ccfac7caa Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:14:34 +0200 Subject: [PATCH 22/65] rn-127: add Toon Claes among the helpers --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index c969258b2..af16167de 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -470,4 +470,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Toon Claes. From 039ab54273ee337615ffe23c9ff50974e059cace Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:15:08 +0200 Subject: [PATCH 23/65] rn-127: add Dscho among the helpers --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index af16167de..831c264f7 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -470,4 +470,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Toon Claes. +with help from Toon Claes, Johannes Schindelin. From 35b4302ea92339431fef220b24e016add4f1130d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:15:39 +0200 Subject: [PATCH 24/65] rn-127: add Bruno Brito among the helpers --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 831c264f7..1359486e7 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -470,4 +470,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Toon Claes, Johannes Schindelin. +with help from Toon Claes, Johannes Schindelin, Bruno Brito. From 62098970ba2d92096e1b13aaf5395741380629e6 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:16:22 +0200 Subject: [PATCH 25/65] rn-127: add Gerard Murphy among the helpers --- rev_news/drafts/edition-127.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 1359486e7..e0522e3ba 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -470,4 +470,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Toon Claes, Johannes Schindelin, Bruno Brito. +with help from Toon Claes, Johannes Schindelin, +Bruno Brito, Gerard Murphy. From 9512133582f2254f571414e3697a85ce9aa34fae Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:17:14 +0200 Subject: [PATCH 26/65] rn-127: add Jack Lot among the helpers --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index e0522e3ba..531bae8c3 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -471,4 +471,4 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Toon Claes, Johannes Schindelin, -Bruno Brito, Gerard Murphy. +Bruno Brito, Gerard Murphy, Jack Lot. From a0b127721a63e4639eaa3a2c14dd9c97971eb56b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:17:49 +0200 Subject: [PATCH 27/65] =?UTF-8?q?rn-127:=20add=20=C5=A0t=C4=9Bp=C3=A1n=20N?= =?UTF-8?q?=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rev_news/drafts/edition-127.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md index 531bae8c3..563db32c2 100644 --- a/rev_news/drafts/edition-127.md +++ b/rev_news/drafts/edition-127.md @@ -471,4 +471,4 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Toon Claes, Johannes Schindelin, -Bruno Brito, Gerard Murphy, Jack Lot. +Bruno Brito, Gerard Murphy, Jack Lot and Štěpán Němec. From aaabddf35b7310f3b701480cc2e54343e82fae0e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:18:37 +0200 Subject: [PATCH 28/65] Publish rn-127 in _posts/ --- .../edition-127.md => _posts/2025-09-30-edition-127.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-127.md => _posts/2025-09-30-edition-127.markdown (100%) diff --git a/rev_news/drafts/edition-127.md b/_posts/2025-09-30-edition-127.markdown similarity index 100% rename from rev_news/drafts/edition-127.md rename to _posts/2025-09-30-edition-127.markdown From 817d0548929690307f0bd50b522cd9f3b694ef32 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:18:37 +0200 Subject: [PATCH 29/65] Add draft for rn-128 --- rev_news/drafts/edition-128.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-128.md diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md new file mode 100644 index 000000000..7f937a0ab --- /dev/null +++ b/rev_news/drafts/edition-128.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 128 (October 31st, 2025) +layout: default +date: 2025-10-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 128 (October 31st, 2025) + +Welcome to the 128th edition of [Git Rev News](https://git.github.io/rev_news/rev_news/), +a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). + +This edition covers what happened during the months of September and October 2025. + +## Discussions + + + + + + + + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Releases + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From b12e3dded362e7dc93714316b4a2ffe2befd244c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 4 Oct 2025 00:24:17 +0200 Subject: [PATCH 30/65] rn-127: add Ben Knoble among the helpers --- _posts/2025-09-30-edition-127.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2025-09-30-edition-127.markdown b/_posts/2025-09-30-edition-127.markdown index 563db32c2..bf5ec5474 100644 --- a/_posts/2025-09-30-edition-127.markdown +++ b/_posts/2025-09-30-edition-127.markdown @@ -471,4 +471,5 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Toon Claes, Johannes Schindelin, -Bruno Brito, Gerard Murphy, Jack Lot and Štěpán Němec. +Bruno Brito, Gerard Murphy, Jack Lot, Ben Knoble +and Štěpán Němec. From 38ff4469be7fbf4ddd49296f63b01d278c36ccb3 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 29 Oct 2025 20:10:01 +0100 Subject: [PATCH 31/65] rn-128: add releases --- rev_news/drafts/edition-128.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 7f937a0ab..b2b9edbf2 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -49,6 +49,30 @@ __Git tools and sites__ ## Releases ++ Git [2.51.2](https://lore.kernel.org/git/xmqqo6psjq2n.fsf@gitster.g/), +[2.51.1](https://lore.kernel.org/git/xmqqa51suhh5.fsf@gitster.g/) ++ Git for Windows [v2.51.2(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.2.windows.1), +[v2.51.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.1.windows.1), +[v2.51.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.51.0.windows.2) ++ GitHub Enterprise [3.18.0](https://docs.github.com/enterprise-server@3.18/admin/release-notes#3.18.0) ++ GitLab [18.5.1, 18.4.3, 18.3.5](https://about.gitlab.com/releases/2025/10/22/patch-release-gitlab-18-5-1-released/), +[18.5](https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/), +[18.4.2, 18.3.4, 18.2.8](https://about.gitlab.com/releases/2025/10/08/patch-release-gitlab-18-4-2-released/) ++ Gerrit Code Review [3.10.9](https://www.gerritcodereview.com/3.10.html#3109), +[3.13.0-rc0](https://www.gerritcodereview.com/3.13.html#3130), +[3.13.0-rc1](https://www.gerritcodereview.com/3.13.html#3130), +[3.13.0-rc2](https://www.gerritcodereview.com/3.13.html#3130), +[3.13.0-rc3](https://www.gerritcodereview.com/3.13.html#3130), +[3.13.0-rc4](https://www.gerritcodereview.com/3.13.html#3130), +[3.13.0-rc5](https://www.gerritcodereview.com/3.13.html#3130) ++ GitKraken [11.5.1](https://help.gitkraken.com/gitkraken-desktop/current/), +[11.5.0](https://help.gitkraken.com/gitkraken-desktop/current/) ++ GitHub Desktop [3.5.3](https://desktop.github.com/release-notes/) ++ Git Cola [4.16.0](https://github.com/git-cola/git-cola/releases/tag/v4.16.0) ++ GitButler [0.16.10](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.16.10), +[0.16.9](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.16.9) ++ Kinetic Merge [1.10.0](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.10.0), +[1.9.1](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.9.1) ## Credits From b55101f1ab591b070e39115c45295909113686c9 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Oct 2025 08:38:21 +0100 Subject: [PATCH 32/65] rn-128: add article about printf() format specifiers --- rev_news/drafts/edition-128.md | 58 ++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index b2b9edbf2..3623a8f3c 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -25,9 +25,63 @@ This edition covers what happened during the months of September and October 202 ### Reviews --> - + ++ [[Change] Git build issue on NonStop](https://lore.kernel.org/git/01c101dc2842$38903640$a9b0a2c0$@nexbridge.com/) + + Randall S. Becker reported on the mailing list that CI tests on the + NonStop x86 platform were broken after the `uintptr_t` type started + to be used in [clar](https://github.com/clar-test/clar) tests when + displaying error messages in test failures (when pointer comparisons + fail). + + Peff, alias Jeff King, replied to Randall that `uintptr_t` was + already used in many places in the regular code, and guessed the + issue might come from how clar defined that type. He noted though + that the line in the clar test where `uintptr_t` appeared also + contained `PRIxPTR` which is a macro that is not used in the regular + code. So he wondered if just replacing that macro with `PRIuMAX` + (which is often used) would be enough to fix the issue. + + `PRIxPTR`, `PRIuMAX` and similar macros are format specifier macros + from the C standard library (defined in ``) that provide + portable ways to print integer types using functions like `printf()` + across different platforms. They are all named in the same way, with + `PRI` meaning `printf`, the next letter indicating the format, like + `x` for hexadecimal and `u` for unsigned decimal, and the last part + indicating the type, like `PTR` for pointer-sized integers, `MAX` + for maximum-width integers, `64` for 64-bit, etc. + + Randall replied to Peff that replacing `PRIxPTR` with `PRIuMAX` + would work, and that he was going to try it. + + Patrick Steinhardt also replied to Randall and Peff saying it would + work, and asked Peff if he wanted to send that change. + + Peff replied to Patrick that he'd be happy if Patrick sent the + change, but noted that using `PRIxMAX` might be better than + `PRIuMAX` as the code wanted to print hexadecimal values. + + Patrick then reported to Peff that Peff's suggestion to use the + `PRIxMAX` or `PRIuMAX` format specifier macros didn't work on 32 bit + systems, because casting a pointer to an integer of different size + (the pointer is 32 bits, but `uintmax_t` is 64 bits) fails. + + Patrick proposed using `%p` as a format specifier saying it might be + a better trade-off. The downside was that the output format would be + unpredictable across platforms as `%p` doesn't have a standardized + output format. So tests that validated the exact error message + format would have to be dropped. But at least `%p` would work + everywhere and produce stable output. + + Junio Hamano, the Git maintainer, agreed with Patrick that `%p` was + "the most appropriate solution". + + Randall then confirmed that `%p` worked on NonStop x86 even if the + man pages warned to the contrary. + + The `%p` solution was eventually merged to the 'master' branch. + +* [Git participated in GSoC (Google Summer of Code) 2025](https://summerofcode.withgoogle.com/programs/2025/organizations/git) + + All the contributors have successfully passed their final evaluation + and published a final report: + + - Lucas Oshiro [worked](https://lucasoshiro.github.io/gsoc-en/#weeks) on the + [Machine-Readable Repository Information Query Tool](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl) + project. He was mentored by Patrick Steinhardt and Karthik Nayak. The final + report can be found on + [his website](https://lucasoshiro.github.io/gsoc-en/). + + - Meet Soni [worked](https://inosmeet.github.io/posts/gsoc25/) on the + [Consolidate ref-related functionality into git-refs](https://summerofcode.withgoogle.com/programs/2025/projects/xVrT5e2q) + project. He was mentored by Patrick Steinhardt and Jialuo She. The final + report can be found on + [his website](https://inosmeet.github.io/posts/gsoc25/gsoc25_final/). + + - Ayush Chandekar [worked](https://ayu-ch.github.io/) on the + [Refactoring in order to reduce Git’s global state](https://summerofcode.withgoogle.com/programs/2025/projects/no7dVMeG) + project. He was mentored by Christian Couder and Ghanshyam Thakkar. The final + report can be found on + [his website](https://ayu-ch.github.io/2025/08/29/gsoc-final-report.html). + + Congratulations to the contributors and their mentors! + From d4ffacf4714fff430bb6a3dcd98abd724bbc3bf3 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 30 Oct 2025 23:56:00 +0530 Subject: [PATCH 36/65] rn-128: update Lucas final report link --- rev_news/drafts/edition-128.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 9eaaaa775..42b0e5b23 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -28,7 +28,7 @@ This edition covers what happened during the months of September and October 202 [Machine-Readable Repository Information Query Tool](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl) project. He was mentored by Patrick Steinhardt and Karthik Nayak. The final report can be found on - [his website](https://lucasoshiro.github.io/gsoc-en/). + [his website](https://lucasoshiro.github.io/gsoc-en/#final-report). - Meet Soni [worked](https://inosmeet.github.io/posts/gsoc25/) on the [Consolidate ref-related functionality into git-refs](https://summerofcode.withgoogle.com/programs/2025/projects/xVrT5e2q) From 4ba8d72bbf671f06db5749e917818aa31b5e0439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Fri, 31 Oct 2025 22:07:31 +0100 Subject: [PATCH 37/65] rn-128: Add links to news, articles, videos, tools, and sites --- rev_news/drafts/edition-128.md | 180 ++++++++++++++++++++++++++++++++- 1 file changed, 178 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 42b0e5b23..8dfa96216 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -138,15 +138,191 @@ This edition covers what happened during the months of September and October 202 __Various__ ++ [Git considers SHA-256, Rust, LLMs, and more](https://lwn.net/Articles/1042172/) + by Jonathan Corbet on LWN\.net. ++ [Git Developers Talk About Potentially Releasing Git 3.0 By The End Of Next Year](https://www.phoronix.com/news/Git-3.0-Release-Talk-2026) + by Michael Larabel on Phoronix. ++ [GitHub is migrating to Azure! And goodbye to new development for a year.](https://www.redhotcyber.com/en/post/github-is-migrating-to-azure-and-goodbye-to-new-development-for-a-year/) + by Redazione RHC on Red Hot Cyber. ++ [Fedora Moves Towards Forgejo](https://fedoramagazine.org/fedora-moves-towards-forgejo-a-unified-decision/) + by Matthew Miller and Akashdeep Dhar on December 4, 2024 + in Fedora Magazine. + + [Forgejo](https://forgejo.org/) is a self-hosted lightweight software forge, + written in Go; nowadays a hard fork of Gitea (which in turn was based on Gogs). + It was first mentioned in passing in [Git Rev News Edition #103](https://git.github.io/rev_news/2023/09/30/edition-103/). + __Light reading__ - + ++ [Jujutsu at Google](https://www.youtube.com/watch?v=v9Ob5yPpC0A&list=PLOU2XLYxmsILM5cRwAK6yKdtKnCK6Y4Oh&index=8) + ([slides](https://drive.google.com/file/d/1dVzug1lHoOxdbFu8gcCJCu-G_uVMUATI/edit)) + on Google for Developers channel on YouTube; + part of [JJ Con 2025 playlist](https://www.youtube.com/playlist?list=PLOU2XLYxmsILM5cRwAK6yKdtKnCK6Y4Oh).
+ In this talk from Martin von Zweigbergk presents + on Jujutsu architecture and future plans.
+ JJ Con 2025 was a dedicated conference hosted by Google + for the [Jujutsu](https://jj-vcs.github.io/jj/latest/) version control system. ++ [Solving Git's Pain Points with Jujutsu (with Martin von Zweigbergk)](https://www.youtube.com/watch?v=ulJ_Pw8qqsE) + on Developer Voices channel on YouTube. + + +__Scientific papers__ + ++ Ya-Nan Li, Yaqing Song, Qiang Tang, Moti Yung: + _"End-to-End Encrypted Git Services"_, + Cryptology {ePrint} Archive, Paper 2025/1208, + , + DOI:10.1145/3719027.3744815 + + See _"Scientists develop end-to-end encryption for git services"_ + article by University of Sydney, edited by Stephanie Baum, reviewed by Robert Egan, + on TechXplore. ++ S.R.P. van Hal, M. Post, K. Wendel: + _"Generating Commit Messages from Git Diffs"_, + [arXiv:1911.11690](https://arxiv.org/abs/1911.11690) (2019)
+ mentions "inherent shortcoming of current commit message generation models, + which perform well by memorizing certain constructs." + __Git tools and sites__ ++ [diff-modulo-base](https://git.sr.ht/~nhaehnle/diff-modulo-base) + is a tool that allows you to compare the relevant changes + of two versions of a rebased branch given three input diffs: + two _base_ diffs that show the changes since the respective merge bases + and a _target_ diff between the branches you are actually interested in. + + It is very similar to (and actually builds on) `git range-diff`, + but differs in resulting output. + Written in Rust, under MIT License. ++ [Worktree Manager](https://github.com/jarredkenny/worktree-manager) (wtm) + is s fast, modern CLI tool for managing Git worktrees in bare repositories. + Written in TypeScript for Bun, under MIT License. ++ [git-metrics](https://github.com/jdrouet/git-metrics) + is a Git extension that makes it possible to track metrics about your project, + which are stored within the git repository (using `git notes`). + Written in Rust, under MIT License.
+ Described in [Build metrics and budgets with git-metrics](https://dev.to/jdrouet/build-metrics-and-budgets-with-git-metrics-4pb4) + article by Jérémie Drouet on DEV\.to (2024). + + There is another [git-metrics](https://github.com/Praqma/git-metrics) tool, + by Praqma / Eficode DevOps company, + which consists of a set of scripts to analyse a Git repository for metrics + such as lead time and open branches. Writen in Python, no license provided. + It was mentioned in passing in [Git Rev News Edition #48](https://git.github.io/rev_news/2019/02/27/edition-48/). ++ [git-spice](https://abhinav.github.io/git-spice/) is a tool for stacking Git branches. + It lets you manage and navigate stacks of branches, conveniently modify and rebase them, + and create GitHub Pull Requests or GitLab Merge Requests from them. + Written in Go, under GPL 3.0 License. + + A _stacked branch_ refers to a set of branches that build upon each other in a linear sequence. + Stacked branches or stacked diffs were first mentioned in [Git Rev News #44](https://git.github.io/rev_news/2018/10/24/edition-44/), + and most recently in [Git Rev News #127](https://git.github.io/rev_news/2025/09/30/edition-127/), + where you can find even more links about this technique. ++ [Git Granary](https://git.dbushell.com/dbushell/granary) + is a [Git Large File Storage](https://git-lfs.com/) (LFS) + server implementation written in TypeScript. Under MIT License. + Git Granary was designed for self-hosted personal use.
+ See [Git Granary](https://dbushell.com/2024/07/25/git-granary/) + blog post by David Bushell on his blog (2024). ++ [gibr](https://github.com/ytreister/gibr) is a Git CLI tool + for intelligently creating branch names. + It connects your Git workflow to your issue tracker for that purpose; + currently supporting GitHub, GitLab, Jira, and Linear + (with Monday\.com support planned). + Written in Python, under MIT License. ++ [0github.com](https://0github.com/) + is a service offering a heatmap diff viewer for code reviews, + color-coding every diff line/token by how much human attention it probably needs. + To try it, replace github.com with 0github.com in any GitHub pull request url. + The [cmux](https://cmux.dev/) engine it uses is open source (MIT License). + It uses LLM (Large Language Model) to perform this task. + ## Releases From 92dd3ef530f7b3406c865a47fc8505f5ed12ee39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Sat, 1 Nov 2025 15:28:15 +0100 Subject: [PATCH 38/65] rn-128: minor copy edit --- rev_news/drafts/edition-128.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 8dfa96216..05668dbd3 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -56,7 +56,7 @@ This edition covers what happened during the months of September and October 202 [the Contributor's Summit](https://lore.kernel.org/git/aOQVeVYY6zadPjln@nand.local/). The [full notes](https://docs.google.com/document/d/1arvvXP8DrF3F8PCKQOmGvYh5jUg8P9Clx9m-FgDD4EI/) as well as [notes broken down by topic](https://lore.kernel.org/git/aOQV6iM49QDhcC+C@nand.local/#r) - are avaialble. + are available. * [Git Mini Summit 2025](https://lore.kernel.org/git/aGwHt9HCd86hVuKh@pks.im/) @@ -83,7 +83,7 @@ This edition covers what happened during the months of September and October 202 displaying error messages in test failures (when pointer comparisons fail). - Peff, alias Jeff King, replied to Randall that `uintptr_t` was + Jeff King, alias Peff, replied to Randall that `uintptr_t` was already used in many places in the regular code, and guessed the issue might come from how clar defined that type. He noted though that the line in the clar test where `uintptr_t` appeared also @@ -154,15 +154,15 @@ __Various__ __Light reading__ -+ [building for the future: on tangled's existence and direction](https://anirudh.fi/future) ++ [building for the future: on Tangled's existence and direction](https://anirudh.fi/future) by Anirudh Oppiliappan on their blog; also published [at icy takes blog](https://icy.leaflet.pub/3m47cll72hs25) on ATProto. + [Tangled.sh](https://blog.tangled.sh/intro) is a new social-enabled Git collaboration platform built on top of the AT Protocol / ATProto - (which is behind [BlueSky](https://bsky.app/) microblogging federated social media service). + (which is behind the [BlueSky](https://bsky.app/) microblogging federated social media service). It was first mentioned in [Git Rev News Edition #125](https://git.github.io/rev_news/2025/07/31/edition-125/). + [6 months of Tangled: a quick recap, and notes on the future](https://blog.tangled.org/6-months) - by by Anirudh Oppiliappan and Akshay Oppiliappan on Tangled Blog. + by Anirudh Oppiliappan and Akshay Oppiliappan on Tangled Blog. + [Socially self-hosting source code with Tangled on Bluesky](https://anil.recoil.org/notes/disentangling-git-with-bluesky) by Anil Madhavapeddy, Professor of Planetary Computing on his blog. + [Redistributing Git with Nostr](https://fiatjaf.com/18ff5416.html) @@ -171,10 +171,10 @@ __Light reading__ which is a tool to send and receive Git patches over [Nostr](https://nostr.com/), using [NIP-34](https://github.com/nostr-protocol/nips/pull/997) (first mentioned in [Git Rev News Edition #109](https://git.github.io/rev_news/2024/03/31/edition-109/)). - + Note that the [git-credential-oauth](https://github.com/hickford/git-credential-oauth), + + Note that [git-credential-oauth](https://github.com/hickford/git-credential-oauth), a Git credential helper that securely authenticates to GitHub, GitLab, BitBucket and Gerrit using [OAuth](https://datatracker.ietf.org/wg/oauth/about/), - can replace the "create an account; pick a password; confirm an email address; setup SSH keys for pushing" step. + can replace the "create an account; pick a password; confirm an email address; set up SSH keys for pushing" step. + [How GitHub won software development](https://www.infoworld.com/article/4069045/how-github-won-software-development.html) by Nick Hodges on Rubber Duck Reflections opinions blog on InfoWorld. + [You already have a git server](https://maurycyz.com/misc/easy_git/) @@ -209,7 +209,7 @@ __Light reading__ an argument in the merge-vs-rebase debate. by Guillaume on DEV\.to. + [Diff Algorithms](https://flo.znkr.io/diff/) - by Florian Zenker on Florian Zenker's website.
+ by Florian Zenker on his website.
The result of this exploration was [znkr.io/diff](https://znkr.io/diff), a difference algorithm module for Go. + Note that with [`git diff`](https://git-scm.com/docs/git-diff) @@ -246,7 +246,7 @@ __Easy watching__ ([slides](https://drive.google.com/file/d/1dVzug1lHoOxdbFu8gcCJCu-G_uVMUATI/edit)) on Google for Developers channel on YouTube; part of [JJ Con 2025 playlist](https://www.youtube.com/playlist?list=PLOU2XLYxmsILM5cRwAK6yKdtKnCK6Y4Oh).
- In this talk from Martin von Zweigbergk presents + In this talk, Martin von Zweigbergk presents on Jujutsu architecture and future plans.
JJ Con 2025 was a dedicated conference hosted by Google for the [Jujutsu](https://jj-vcs.github.io/jj/latest/) version control system. @@ -283,7 +283,7 @@ __Git tools and sites__ but differs in resulting output. Written in Rust, under MIT License. + [Worktree Manager](https://github.com/jarredkenny/worktree-manager) (wtm) - is s fast, modern CLI tool for managing Git worktrees in bare repositories. + is a fast, modern CLI tool for managing Git worktrees in bare repositories. Written in TypeScript for Bun, under MIT License. + [git-metrics](https://github.com/jdrouet/git-metrics) is a Git extension that makes it possible to track metrics about your project, @@ -294,7 +294,7 @@ __Git tools and sites__ + There is another [git-metrics](https://github.com/Praqma/git-metrics) tool, by Praqma / Eficode DevOps company, which consists of a set of scripts to analyse a Git repository for metrics - such as lead time and open branches. Writen in Python, no license provided. + such as lead time and open branches. Written in Python, no license provided. It was mentioned in passing in [Git Rev News Edition #48](https://git.github.io/rev_news/2019/02/27/edition-48/). + [git-spice](https://abhinav.github.io/git-spice/) is a tool for stacking Git branches. It lets you manage and navigate stacks of branches, conveniently modify and rebase them, @@ -319,7 +319,7 @@ __Git tools and sites__ + [0github.com](https://0github.com/) is a service offering a heatmap diff viewer for code reviews, color-coding every diff line/token by how much human attention it probably needs. - To try it, replace github.com with 0github.com in any GitHub pull request url. + To try it, replace github.com with 0github.com in any GitHub pull request URL. The [cmux](https://cmux.dev/) engine it uses is open source (MIT License). It uses LLM (Large Language Model) to perform this task. From 0ae334858ca2e57f71c7f0b61d6ffbefc5651a43 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sat, 1 Nov 2025 16:38:12 +0100 Subject: [PATCH 39/65] rn-128: Some minor rephrasings. --- rev_news/drafts/edition-128.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 05668dbd3..13a588c7b 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -80,7 +80,7 @@ This edition covers what happened during the months of September and October 202 Randall S. Becker reported on the mailing list that CI tests on the NonStop x86 platform were broken after the `uintptr_t` type started to be used in [clar](https://github.com/clar-test/clar) tests when - displaying error messages in test failures (when pointer comparisons + displaying error messages in test failures (that is, when pointer comparisons fail). Jeff King, alias Peff, replied to Randall that `uintptr_t` was @@ -154,7 +154,7 @@ __Various__ __Light reading__ -+ [building for the future: on Tangled's existence and direction](https://anirudh.fi/future) ++ [Building for the future: on Tangled's existence and direction](https://anirudh.fi/future) by Anirudh Oppiliappan on their blog; also published [at icy takes blog](https://icy.leaflet.pub/3m47cll72hs25) on ATProto. + [Tangled.sh](https://blog.tangled.sh/intro) is a new social-enabled Git collaboration platform @@ -164,7 +164,7 @@ __Light reading__ + [6 months of Tangled: a quick recap, and notes on the future](https://blog.tangled.org/6-months) by Anirudh Oppiliappan and Akshay Oppiliappan on Tangled Blog. + [Socially self-hosting source code with Tangled on Bluesky](https://anil.recoil.org/notes/disentangling-git-with-bluesky) - by Anil Madhavapeddy, Professor of Planetary Computing on his blog. + by Anil Madhavapeddy, Professor of Planetary Computing, on his blog. + [Redistributing Git with Nostr](https://fiatjaf.com/18ff5416.html) by início on their blog. + There exists [gitstr (`git str`)](https://github.com/fiatjaf/gitstr), @@ -174,7 +174,7 @@ __Light reading__ + Note that [git-credential-oauth](https://github.com/hickford/git-credential-oauth), a Git credential helper that securely authenticates to GitHub, GitLab, BitBucket and Gerrit using [OAuth](https://datatracker.ietf.org/wg/oauth/about/), - can replace the "create an account; pick a password; confirm an email address; set up SSH keys for pushing" step. + can replace the "create an account; pick a password; confirm an email address; set up SSH keys for pushing" steps. + [How GitHub won software development](https://www.infoworld.com/article/4069045/how-github-won-software-development.html) by Nick Hodges on Rubber Duck Reflections opinions blog on InfoWorld. + [You already have a git server](https://maurycyz.com/misc/easy_git/) @@ -292,7 +292,7 @@ __Git tools and sites__ Described in [Build metrics and budgets with git-metrics](https://dev.to/jdrouet/build-metrics-and-budgets-with-git-metrics-4pb4) article by Jérémie Drouet on DEV\.to (2024). + There is another [git-metrics](https://github.com/Praqma/git-metrics) tool, - by Praqma / Eficode DevOps company, + by the Praqma / Eficode DevOps company, which consists of a set of scripts to analyse a Git repository for metrics such as lead time and open branches. Written in Python, no license provided. It was mentioned in passing in [Git Rev News Edition #48](https://git.github.io/rev_news/2019/02/27/edition-48/). @@ -321,7 +321,7 @@ __Git tools and sites__ color-coding every diff line/token by how much human attention it probably needs. To try it, replace github.com with 0github.com in any GitHub pull request URL. The [cmux](https://cmux.dev/) engine it uses is open source (MIT License). - It uses LLM (Large Language Model) to perform this task. + It uses a LLM (Large Language Model) to perform this task. ## Releases From 74cffe6aa2afe3f491acd979488be0746b073ba9 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sat, 1 Nov 2025 17:49:35 +0100 Subject: [PATCH 40/65] Modified my previous correction after reading the Git code another time ... --- rev_news/drafts/edition-128.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 13a588c7b..8f380c783 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -80,7 +80,7 @@ This edition covers what happened during the months of September and October 202 Randall S. Becker reported on the mailing list that CI tests on the NonStop x86 platform were broken after the `uintptr_t` type started to be used in [clar](https://github.com/clar-test/clar) tests when - displaying error messages in test failures (that is, when pointer comparisons + displaying error messages in test failures (in case pointer comparisons fail). Jeff King, alias Peff, replied to Randall that `uintptr_t` was From 10ccff33a2b76c1d9b03f5d5a9b0d590b7d8a893 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 18:22:03 +0100 Subject: [PATCH 41/65] rn-128: mention org admins in GSoC 2025 article --- rev_news/drafts/edition-128.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 8f380c783..335393fbb 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -42,7 +42,10 @@ This edition covers what happened during the months of September and October 202 report can be found on [his website](https://ayu-ch.github.io/2025/08/29/gsoc-final-report.html). - Congratulations to the contributors and their mentors! + Kaartic Sivaraam and Christian Couder were + ["org admins"](https://developers.google.com/open-source/gsoc/help/oa-tips). + + Congratulations to the contributors, their mentors and the org admins! * [Git Merge 2025 conference](https://git-merge.com/) and [Contributor's Summit 2025](https://lore.kernel.org/git/aOQVeVYY6zadPjln@nand.local/) From e60de258b05a817305ec6282b9b8bc162056a082 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 18:45:28 +0100 Subject: [PATCH 42/65] rn-128: add Kristoffer Haugsbakk's interview --- rev_news/drafts/edition-128.md | 163 ++++++++++++++++++++++++++++++++- 1 file changed, 160 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 335393fbb..65fa68512 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -133,9 +133,166 @@ This edition covers what happened during the months of September and October 202 The `%p` solution was eventually merged to the 'master' branch. - + +## Developer Spotlight: Kristoffer Haugsbakk + +* Who are you and what do you do? + + I’m Kristoffer from Norway. My day job is working on a Java webapp + primarily used for clinical mental health questionnaires. + +* What would you name your most important contribution to Git? + + One I like was when I and the mailing list collaborators fixed a bug + related to Git notes handling by git-format-patch(1). It’s small and + niche but Git notes handling is very important to me; I think Notes + are a great way to maintain metadata between patch submissions. In + fact I think it’s great for most commit metadata that I am + interested in maintaining. + +* What are you doing on the Git project these days, and why? + + The one I am focusing on is improving the git-patch-id(1) + documentation. It so happens that you can use that command to make a + commit—patch-id mapping for the whole repository, which you then in + turn can use to make an improved git-cherry(1) oneliner (one that + says what the upstream commit hash is) as well as, say, using + commands like git-range-diff to see if the upstream committer made + any changes to your submission like fixing commit message typos. But + most uses of this command that I see just use it to figure out what + the patch ID of one single commit is and have to script everything + around that, like loop over git-rev-list(1). + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + I would ask them to find a way for projects to define their own + conventions and preferences that can be easily shared with all + contributors. Something better than asking each contributor to + download and install hooks. Projects need a better and more + declarative way to configure how their project is supposed to + work. One example might be that a project does not want merge + commits to land in the mainline. It should be simple to take that + high-level goal and make sure that the in-effect central repository + never get any merge commits. + + Git will not be replaced any time soon, despite it being more + difficult to use than it ought to be. But we can already see what + the effects of the high difficulty of using it is: some projects + outsource all commit messages to issue trackers, and change + proposals (pull requests and patch series descriptions) to webapp + forges. (Meaning they don’t even duplicate the PR description + somewhere in Git like in a commit message.) What you end up with is + still Git but with all the interesting information living at least + one hyperlink away. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + I can’t think of a single thing to remove that would have a big + impact. + + I guess I would remove git-filter-branch(1). People can use + git-filter-repo(1). And with that one removed I wouldn’t have to ask + people to not use it any more. ;) + +* Documentation contributions require understanding both the technical + implementation and the user perspective. How do you approach + bridging that gap? Do you have strategies for ensuring documentation + stays accurate as code evolves? + + Most of the challenge in bridging the gap for me is about trying to + describe things accurately while not being tedious and verbose. The + worst challenge is when I realistically have one paragraph to + explain something but there are eight factors to mention. (Not a + real case; just the feeling of a challenge that I have encountered + before.) + + For things that are either just difficult or have many factors to + consider I think the best approach we have right now is to mention + other documentation pages in parentheses. An obvious candidate is + gitglossary(7) where can gather all kinds of jargon and be as verbose + as we want to. :) + + I don’t have any strategies for ensuring that documentation stays + accurate as code evolves. Let’s take something concrete as an + example: an update to the documentation adds a very similar + paragraph to two documentation pages. That is an obvious maintenance + burden since a later update is likely to necessitate a change in + both places, but you are likely to only deal with one of them. The + obvious fix is to parameterize the paragraph. But I don’t have good + indirect experience with that in AsciiDoc; the last time I saw + something parameterized was when an AsciiDoc macro forced inline + formatting to be handled literally. The cure seems worse than the + disease to me. + + The best I can do now when making updates is to investigate the + lines that I am changing and finding the histories of any possible + near-duplicate texts. + +* What is your favorite Git-related tool/library, outside of Git + itself? + + Magit. An Emacs Git frontend. + +* Do you happen to have any memorable experience w.r.t. contributing + to the Git project? If yes, could you share it with us? + + When I added a test case to `t/t7001-mv.sh` that made the continuous + build routine on Windows (CI) time out. The test was + `test_expect_failure` and triggered a C assertion, and the Windows + CI pops up a modal dialog on assertion failures. That dialog is of + course never dismissed by any operator and so the suite eventually + timed out. + +* What is your toolbox for interacting with the mailing list and for + development of Git? + + I use the builtin commands for making patches and sending them + (git-format-patch(1) and git-send-email(1)). For programming and + writing I use the basic, needed tools along with Emacs. Very + occassionally I will use GDB. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + Find something technically wrong in the documentation and fix + it. That’s what I did in 2016; I wanted to test out this new (to me) + “email-based workflow”. Focus on fixing things instead of + subjectively improving something. Because someone might object and + propose that you send a new version. Making subjective documentation + improvements is the next step in terms of difficulty I guess. + + It sounds trivial but someone used to Git forges will have enough + challenges just sending proper patches to the project over email. + + Also read through `Documentation/SubmittingPatches`. I don’t really + see many corrections that refer to other documents. You could of + course get a correction that refers to some *lore* (email archive + link) but that is unlikely to happen for simple changes if you just + structure it similar to recent, accepted submissions that you find. + +* If there's one tip you would like to share with other Git + developers, what would it be? + + You won’t get any C programming tips from me since I can’t write or + edit three lines of C code without segfaulting five times. + + Take advantage of the fact that the Git history is so + well-structured. Maybe you find some questionable behavior or + code. Use the “pickaxe” technique (see git-log(1)) on some good + candidate text and trace the behavior back to the start. Maybe the + commit message explains the issue or behavior. If not use + `refs/notes/amlog` (which you should be “subscribed” to already) and + see if something relevant was discussed on the patch discussion. If + not there is likely to be no written record out there; another thing + that this project is disciplined about is keeping the relevant + discussion on the mailing list, not the mailing list and N other + satellite fora. + + Those links (to commits and archived emails) are very valuable when + you want to discuss a change to something that has been in git(1) + for years and years. ## Other News From 5922543fae6ce27aab2b727ed6ff121770a3bc00 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 19:07:52 +0100 Subject: [PATCH 43/65] rn-128: format Kristoffer Haugsbakk's interview --- rev_news/drafts/edition-128.md | 119 ++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 48 deletions(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 65fa68512..55bc1a690 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -136,35 +136,41 @@ This edition covers what happened during the months of September and October 202 ## Developer Spotlight: Kristoffer Haugsbakk -* Who are you and what do you do? +* **Who are you and what do you do?** I’m Kristoffer from Norway. My day job is working on a Java webapp primarily used for clinical mental health questionnaires. -* What would you name your most important contribution to Git? +* **What would you name your most important contribution to Git?** One I like was when I and the mailing list collaborators fixed a bug - related to Git notes handling by git-format-patch(1). It’s small and - niche but Git notes handling is very important to me; I think Notes - are a great way to maintain metadata between patch submissions. In - fact I think it’s great for most commit metadata that I am - interested in maintaining. + related to Git notes handling by [git-format-patch(1)][1]. It’s + small and niche but Git notes handling is very important to me; I + think Notes are a great way to maintain metadata between patch + submissions. In fact I think it’s great for most commit metadata + that I am interested in maintaining. -* What are you doing on the Git project these days, and why? +[1]: https://git-scm.com/docs/git-format-patch - The one I am focusing on is improving the git-patch-id(1) +* **What are you doing on the Git project these days, and why?** + + The one I am focusing on is improving the [git-patch-id(1)][2] documentation. It so happens that you can use that command to make a commit—patch-id mapping for the whole repository, which you then in - turn can use to make an improved git-cherry(1) oneliner (one that - says what the upstream commit hash is) as well as, say, using + turn can use to make an improved [git-cherry(1)][3] oneliner (one + that says what the upstream commit hash is) as well as, say, using commands like git-range-diff to see if the upstream committer made any changes to your submission like fixing commit message typos. But most uses of this command that I see just use it to figure out what the patch ID of one single commit is and have to script everything - around that, like loop over git-rev-list(1). + around that, like loop over [git-rev-list(1)][4]. + +[2]: https://git-scm.com/docs/git-patch-id +[3]: https://git-scm.com/docs/git-cherry +[4]: https://git-scm.com/docs/git-rev-list -* If you could get a team of expert developers to work full time on - something in Git for a full year, what would it be? +* **If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be?** I would ask them to find a way for projects to define their own conventions and preferences that can be easily shared with all @@ -186,20 +192,23 @@ This edition covers what happened during the months of September and October 202 still Git but with all the interesting information living at least one hyperlink away. -* If you could remove something from Git without worrying about - backwards compatibility, what would it be? +* **If you could remove something from Git without worrying about + backwards compatibility, what would it be?** I can’t think of a single thing to remove that would have a big impact. - I guess I would remove git-filter-branch(1). People can use - git-filter-repo(1). And with that one removed I wouldn’t have to ask + I guess I would remove [git-filter-branch(1)][5]. People can use + [git-filter-repo(1)][6]. And with that one removed I wouldn’t have to ask people to not use it any more. ;) -* Documentation contributions require understanding both the technical +[5]: https://git-scm.com/docs/git-filter-branch +[6]: https://github.com/newren/git-filter-repo + +* **Documentation contributions require understanding both the technical implementation and the user perspective. How do you approach bridging that gap? Do you have strategies for ensuring documentation - stays accurate as code evolves? + stays accurate as code evolves?** Most of the challenge in bridging the gap for me is about trying to describe things accurately while not being tedious and verbose. The @@ -211,8 +220,8 @@ This edition covers what happened during the months of September and October 202 For things that are either just difficult or have many factors to consider I think the best approach we have right now is to mention other documentation pages in parentheses. An obvious candidate is - gitglossary(7) where can gather all kinds of jargon and be as verbose - as we want to. :) + [gitglossary(7)][7] where we can gather all kinds of jargon and be + as verbose as we want to. :) I don’t have any strategies for ensuring that documentation stays accurate as code evolves. Let’s take something concrete as an @@ -221,22 +230,27 @@ This edition covers what happened during the months of September and October 202 burden since a later update is likely to necessitate a change in both places, but you are likely to only deal with one of them. The obvious fix is to parameterize the paragraph. But I don’t have good - indirect experience with that in AsciiDoc; the last time I saw - something parameterized was when an AsciiDoc macro forced inline - formatting to be handled literally. The cure seems worse than the - disease to me. + indirect experience with that in [AsciiDoc][8]; the last time I saw + something parameterized was when an [AsciiDoc][8] macro forced + inline formatting to be handled literally. The cure seems worse than + the disease to me. The best I can do now when making updates is to investigate the lines that I am changing and finding the histories of any possible near-duplicate texts. -* What is your favorite Git-related tool/library, outside of Git - itself? +[7]: https://git-scm.com/docs/gitglossary +[8]: https://asciidoc.org/ + +* **What is your favorite Git-related tool/library, outside of Git + itself?** - Magit. An Emacs Git frontend. + [Magit][9]. An Emacs Git frontend. -* Do you happen to have any memorable experience w.r.t. contributing - to the Git project? If yes, could you share it with us? +[9]: https://magit.vc/ + +* **Do you happen to have any memorable experience w.r.t. contributing + to the Git project? If yes, could you share it with us?** When I added a test case to `t/t7001-mv.sh` that made the continuous build routine on Windows (CI) time out. The test was @@ -245,16 +259,19 @@ This edition covers what happened during the months of September and October 202 course never dismissed by any operator and so the suite eventually timed out. -* What is your toolbox for interacting with the mailing list and for - development of Git? +* **What is your toolbox for interacting with the mailing list and for + development of Git?** I use the builtin commands for making patches and sending them - (git-format-patch(1) and git-send-email(1)). For programming and + ([git-format-patch(1)][10] and [git-send-email(1)][11]). For programming and writing I use the basic, needed tools along with Emacs. Very occassionally I will use GDB. -* What is your advice for people who want to start Git development? - Where and how should they start? +[10]: https://git-scm.com/docs/git-format-patch +[11]: https://git-scm.com/docs/git-send-email + +* **What is your advice for people who want to start Git development? + Where and how should they start?** Find something technically wrong in the documentation and fix it. That’s what I did in 2016; I wanted to test out this new (to me) @@ -266,23 +283,26 @@ This edition covers what happened during the months of September and October 202 It sounds trivial but someone used to Git forges will have enough challenges just sending proper patches to the project over email. - Also read through `Documentation/SubmittingPatches`. I don’t really - see many corrections that refer to other documents. You could of - course get a correction that refers to some *lore* (email archive - link) but that is unlikely to happen for simple changes if you just - structure it similar to recent, accepted submissions that you find. + Also read through [`Documentation/SubmittingPatches`][12]. I don’t + really see many corrections that refer to other documents. You could + of course get a correction that refers to some [*lore*][13] but that + is unlikely to happen for simple changes if you just structure it + similar to recent, accepted submissions that you find. -* If there's one tip you would like to share with other Git - developers, what would it be? +[12]: https://git-scm.com/docs/SubmittingPatches +[13]: https://lore.kernel.org/git + +* **If there's one tip you would like to share with other Git + developers, what would it be?** You won’t get any C programming tips from me since I can’t write or edit three lines of C code without segfaulting five times. Take advantage of the fact that the Git history is so well-structured. Maybe you find some questionable behavior or - code. Use the “pickaxe” technique (see git-log(1)) on some good - candidate text and trace the behavior back to the start. Maybe the - commit message explains the issue or behavior. If not use + code. Use the “pickaxe” technique (see [git-log(1)][14]) on some + good candidate text and trace the behavior back to the start. Maybe + the commit message explains the issue or behavior. If not use `refs/notes/amlog` (which you should be “subscribed” to already) and see if something relevant was discussed on the patch discussion. If not there is likely to be no written record out there; another thing @@ -291,8 +311,11 @@ This edition covers what happened during the months of September and October 202 satellite fora. Those links (to commits and archived emails) are very valuable when - you want to discuss a change to something that has been in git(1) - for years and years. + you want to discuss a change to something that has been in + [git(1)][15] for years and years. + +[14]: https://git-scm.com/docs/git-log +[15]: https://git-scm.com/docs/git ## Other News From 4cf71e2ee3c6de41110837f7f32374151ae0db13 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 19:40:42 +0100 Subject: [PATCH 44/65] rn-128: fix typos and grammos in Kristoffer's interview --- rev_news/drafts/edition-128.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-128.md b/rev_news/drafts/edition-128.md index 55bc1a690..b45a0509d 100644 --- a/rev_news/drafts/edition-128.md +++ b/rev_news/drafts/edition-128.md @@ -180,7 +180,7 @@ This edition covers what happened during the months of September and October 202 work. One example might be that a project does not want merge commits to land in the mainline. It should be simple to take that high-level goal and make sure that the in-effect central repository - never get any merge commits. + never gets any merge commits. Git will not be replaced any time soon, despite it being more difficult to use than it ought to be. But we can already see what @@ -236,7 +236,7 @@ This edition covers what happened during the months of September and October 202 the disease to me. The best I can do now when making updates is to investigate the - lines that I am changing and finding the histories of any possible + lines that I am changing and find the histories of any possible near-duplicate texts. [7]: https://git-scm.com/docs/gitglossary @@ -265,7 +265,7 @@ This edition covers what happened during the months of September and October 202 I use the builtin commands for making patches and sending them ([git-format-patch(1)][10] and [git-send-email(1)][11]). For programming and writing I use the basic, needed tools along with Emacs. Very - occassionally I will use GDB. + occasionally I will use GDB. [10]: https://git-scm.com/docs/git-format-patch [11]: https://git-scm.com/docs/git-send-email From 43ee2da7a9d3da0eab26077eec9ea1fc5c5fe71b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 20:03:53 +0100 Subject: [PATCH 45/65] Publish rn-128 in _posts/ --- .../edition-128.md => _posts/2025-10-31-edition-128.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-128.md => _posts/2025-10-31-edition-128.markdown (100%) diff --git a/rev_news/drafts/edition-128.md b/_posts/2025-10-31-edition-128.markdown similarity index 100% rename from rev_news/drafts/edition-128.md rename to _posts/2025-10-31-edition-128.markdown From b9e7fb85f04bc1389ed44edc4ee2b6b3ad5b90ce Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 20:03:53 +0100 Subject: [PATCH 46/65] Add draft for rn-129 --- rev_news/drafts/edition-129.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-129.md diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md new file mode 100644 index 000000000..e0f12bb58 --- /dev/null +++ b/rev_news/drafts/edition-129.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 129 (November 30th, 2025) +layout: default +date: 2025-11-30 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 129 (November 30th, 2025) + +Welcome to the 129th edition of [Git Rev News](https://git.github.io/rev_news/rev_news/), +a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). + +This edition covers what happened during the months of October and November 2025. + +## Discussions + + + + + + + + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Releases + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 2e42aef5d41f09af0ce7eca13e1e229ca6233bfb Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 20:08:14 +0100 Subject: [PATCH 47/65] rn-128: add Kristoffer among the helpers --- _posts/2025-10-31-edition-128.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index b45a0509d..94b57f9fb 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -541,4 +541,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Kristoffer Haugsbakk. From 1460808610ef222c0e980b0db6171a9457f08166 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 20:09:31 +0100 Subject: [PATCH 48/65] rn-128: add Lee Reilly among the helpers --- _posts/2025-10-31-edition-128.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index 94b57f9fb..9950a8c53 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -541,4 +541,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Kristoffer Haugsbakk. +with help from Kristoffer Haugsbakk, Lee Reilly. From 718256eebfc77d212c74455f922967ef8ba503a1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 20:10:48 +0100 Subject: [PATCH 49/65] =?UTF-8?q?rn-128:=20add=20=C5=A0t=C4=9Bp=C3=A1n=20N?= =?UTF-8?q?=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2025-10-31-edition-128.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index 9950a8c53..21d1af0a2 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -541,4 +541,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Kristoffer Haugsbakk, Lee Reilly. +with help from Kristoffer Haugsbakk, Lee Reilly and +Štěpán Němec. From 3403569632a016ddda9c08600d1965d9246a1b0f Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 21:12:23 +0100 Subject: [PATCH 50/65] rn-128: add video about the Gerrit User Summit --- _posts/2025-10-31-edition-128.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index 21d1af0a2..78535c441 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -425,6 +425,8 @@ __Light reading__ __Easy watching__ ++ [Gerrit User Summit 2025, featuring also GitButler and Jujutsu](https://www.youtube.com/playlist?list=PLySCWiWz9cNuiJK2Uy3foHGvkxL3fBLUC) + by Luca Milanesio on GerritForge's YouTube channel. + [Jujutsu at Google](https://www.youtube.com/watch?v=v9Ob5yPpC0A&list=PLOU2XLYxmsILM5cRwAK6yKdtKnCK6Y4Oh&index=8) ([slides](https://drive.google.com/file/d/1dVzug1lHoOxdbFu8gcCJCu-G_uVMUATI/edit)) on Google for Developers channel on YouTube; From 392dcd0754fecfb9a7fb6ea5317818194007ee17 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Nov 2025 21:46:02 +0100 Subject: [PATCH 51/65] rn-128: add Luca Milanesio among the helpers --- _posts/2025-10-31-edition-128.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index 78535c441..785bc9fca 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -543,5 +543,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Kristoffer Haugsbakk, Lee Reilly and -Štěpán Němec. +with help from Kristoffer Haugsbakk, Lee Reilly, +Luca Milanesio and Štěpán Němec. From 3902d04919d3c3c92f54252c8a9d68b5c4af3d6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 1 Nov 2025 22:06:32 +0100 Subject: [PATCH 52/65] rn-128: Add missing link to article on TechXplore --- _posts/2025-10-31-edition-128.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index 785bc9fca..4ccafbc18 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -446,7 +446,7 @@ __Scientific papers__ Cryptology {ePrint} Archive, Paper 2025/1208, , DOI:10.1145/3719027.3744815 - + See _"Scientists develop end-to-end encryption for git services"_ + + See [_"Scientists develop end-to-end encryption for git services"_](https://techxplore.com/news/2025-10-scientists-encryption-git.html) article by University of Sydney, edited by Stephanie Baum, reviewed by Robert Egan, on TechXplore. + S.R.P. van Hal, M. Post, K. Wendel: From 8fd0a7a8184039f880b3006fb5a3e2d04b679cbb Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 3 Nov 2025 06:43:15 +0530 Subject: [PATCH 53/65] rn-128: a couple of link improvements to Kristoffer's interview --- _posts/2025-10-31-edition-128.markdown | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index 4ccafbc18..40be28f55 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -252,13 +252,15 @@ This edition covers what happened during the months of September and October 202 * **Do you happen to have any memorable experience w.r.t. contributing to the Git project? If yes, could you share it with us?** - When I added a test case to `t/t7001-mv.sh` that made the continuous - build routine on Windows (CI) time out. The test was + When I added a test case to `t/t7001-mv.sh` that [made the continuous + build routine on Windows (CI) time out][16]. The test was `test_expect_failure` and triggered a C assertion, and the Windows CI pops up a modal dialog on assertion failures. That dialog is of course never dismissed by any operator and so the suite eventually timed out. +[16]: https://lore.kernel.org/git/pull.1908.git.1745593515875.gitgitgadget@gmail.com/ + * **What is your toolbox for interacting with the mailing list and for development of Git?** @@ -314,7 +316,7 @@ This edition covers what happened during the months of September and October 202 you want to discuss a change to something that has been in [git(1)][15] for years and years. -[14]: https://git-scm.com/docs/git-log +[14]: https://git-scm.com/docs/git-log#Documentation/git-log.txt--Gregex [15]: https://git-scm.com/docs/git ## Other News From 29f7297029286a1e12b021c8322dd843953679e0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 24 Nov 2025 12:54:25 +0100 Subject: [PATCH 54/65] Add new Outreachy-Participants.md file --- Outreachy-Participants.md | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Outreachy-Participants.md diff --git a/Outreachy-Participants.md b/Outreachy-Participants.md new file mode 100644 index 000000000..06bfc4473 --- /dev/null +++ b/Outreachy-Participants.md @@ -0,0 +1,60 @@ +--- +layout: default +title: Outreachy participants +--- + +This document collects the list of contributors who've contributed +to Git via Outreachy. + +### Winter 2024-2025 + +1. Seyi Kuforiji +2. Usman Akinyemi + +#### References + +- [Rev News - Dec 2024](https://git.github.io/rev_news/2024/12/31/edition-118/) + +### Winter 2023-2024 + +1. Achu Luma + +#### References + +- [Rev News - Dec 2023](https://git.github.io/rev_news/2023/11/30/edition-105/) + +### Winter 2020-2021 + +1. Sangeeta +2. Joey Salazar +3. Charvi Mendiratta + +#### References + +- [Rev News - Dec 2020](https://git.github.io/rev_news/2020/12/26/edition-70/) + +### Winter 2019-2020 + +1. Heba W. +2. Miriam Rubio + +#### References + +- [Rev News - Dec 2019](https://git.github.io/rev_news/2019/12/25/edition-58/) + +### Winter 2018-2019 + +1. Slavica Đukić +2. Tanushree Tumane + +#### References + +- [Rev News - Nov 2018](https://git.github.io/rev_news/2018/11/21/edition-45/) + +### Winter 2017-2018 + +1. Olga Telezhnaia + +#### References + +- [Rev News - Nov 2017](https://git.github.io/rev_news/2017/11/22/edition-33/) From 0cae5773c9fe5dee30b8fd6c30bea4f58141c52b Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Wed, 26 Nov 2025 12:57:28 +0000 Subject: [PATCH 55/65] Add Tower releases + Light reading --- rev_news/drafts/edition-129.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index e0f12bb58..bf47f0ed9 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -39,7 +39,7 @@ __Various__ __Light reading__ - +- [Version Control in the Age of AI: The Complete Guide](https://www.git-tower.com/blog/version-control-in-the-age-of-ai) @@ -48,7 +48,8 @@ __Git tools and sites__ ## Releases - +- Tower for Mac [15](https://www.git-tower.com/blog/tower-mac-15) ([YouTube tour](https://youtu.be/xTrxb2dJP8M)) +- Tower for Windows [10](https://www.git-tower.com/blog/tower-windows-10) ## Credits From c0f5a04a5842562cde53853c482e114e0769cbdd Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 28 Nov 2025 09:34:26 +0100 Subject: [PATCH 56/65] Outreachy-Participants: add blogs --- Outreachy-Participants.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Outreachy-Participants.md b/Outreachy-Participants.md index 06bfc4473..53c7fed07 100644 --- a/Outreachy-Participants.md +++ b/Outreachy-Participants.md @@ -8,8 +8,8 @@ to Git via Outreachy. ### Winter 2024-2025 -1. Seyi Kuforiji -2. Usman Akinyemi +1. Seyi Kuforiji [ [blog](https://seyi-kuforiji-902b48.gitlab.io/) ] +2. Usman Akinyemi [ [blog](https://uniqueusman.hashnode.dev/tag/outreachy) ] #### References @@ -17,7 +17,7 @@ to Git via Outreachy. ### Winter 2023-2024 -1. Achu Luma +1. Achu Luma [ [blog](https://lumap.gitlab.io/posts/) ] #### References @@ -25,9 +25,9 @@ to Git via Outreachy. ### Winter 2020-2021 -1. Sangeeta -2. Joey Salazar -3. Charvi Mendiratta +1. Sangeeta [ [blog](https://sangu09.github.io) ] +2. Joey Salazar [ [blog](https://jsal.home.blog/) ] +3. Charvi Mendiratta [ [blog](https://charvi-077.github.io/blog/) ] #### References @@ -35,8 +35,8 @@ to Git via Outreachy. ### Winter 2019-2020 -1. Heba W. -2. Miriam Rubio +1. Heba W. [ [blog](https://medium.com/@heba.waly) ] +2. Miriam Rubio [ [blog](https://mirucam.gitlab.io/outreachy_blog/) ] #### References @@ -44,8 +44,8 @@ to Git via Outreachy. ### Winter 2018-2019 -1. Slavica Đukić -2. Tanushree Tumane +1. Slavica Đukić [ [blog](https://slavicadj.github.io/blog/) ] +2. Tanushree Tumane [ [blog](https://tanu1596.blogspot.com/) ] #### References @@ -53,7 +53,7 @@ to Git via Outreachy. ### Winter 2017-2018 -1. Olga Telezhnaia +1. Olga Telezhnaia [ [blog](https://medium.com/@olyatelezhnaya) ] #### References From a95aa4e0d29b23d42d28326b3a5cbf0d81d510c6 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 28 Nov 2025 10:13:11 +0100 Subject: [PATCH 57/65] rn-129: add releases --- rev_news/drafts/edition-129.md | 37 ++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index bf47f0ed9..d6e594879 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -48,8 +48,41 @@ __Git tools and sites__ ## Releases -- Tower for Mac [15](https://www.git-tower.com/blog/tower-mac-15) ([YouTube tour](https://youtu.be/xTrxb2dJP8M)) -- Tower for Windows [10](https://www.git-tower.com/blog/tower-windows-10) + ++ Git [2.52.0](https://lore.kernel.org/git/xmqqh5usmvsd.fsf@gitster.g/), +[2.52.0-rc2](https://lore.kernel.org/git/xmqqzf8rqihh.fsf@gitster.g/), +[2.52.0-rc1](https://lore.kernel.org/git/xmqqqzubhyj9.fsf@gitster.g/), +[2.52.0-rc0](https://lore.kernel.org/git/xmqqwm47t4x3.fsf@gitster.g/) ++ Git for Windows [v2.52.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.52.0.windows.1), +[v2.52.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.52.0-rc2.windows.1), +[v2.52.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.52.0-rc1.windows.1), +[v2.52.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.52.0-rc0.windows.1) ++ GitLab [18.6.1, 18.5.3, 18.4.5](https://about.gitlab.com/releases/2025/11/26/patch-release-gitlab-18-6-1-released/), +[18.6](https://about.gitlab.com/releases/2025/11/20/gitlab-18-6-released/), +[18.5.2, 18.4.4, 18.3.6](https://about.gitlab.com/releases/2025/11/12/patch-release-gitlab-18-5-2-released/) ++ Bitbucket Data Center [10.1](https://confluence.atlassian.com/bitbucketserver/release-notes-872139866.html) ++ Gerrit Code Review [3.10.9](https://www.gerritcodereview.com/3.10.html#3109), +[3.11.6](https://www.gerritcodereview.com/3.11.html#3116), +[3.11.7](https://www.gerritcodereview.com/3.11.html#3117), +[3.12.3](https://www.gerritcodereview.com/3.12.html#3123), +[3.13.0-rc5](https://www.gerritcodereview.com/3.13.html#3130), +[3.13.0](https://www.gerritcodereview.com/3.13.html#3130), +[3.13.1](https://www.gerritcodereview.com/3.13.html#3131) ++ GitHub Enterprise [3.18.1](https://docs.github.com/enterprise-server@3.18/admin/release-notes#3.18.1), +[3.17.7](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.7), +[3.16.10](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.10), +[3.15.14](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.14), +[3.14.19](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.19) ++ GitKraken [11.6.0](https://help.gitkraken.com/gitkraken-desktop/current/) ++ GitHub Desktop [3.5.4](https://desktop.github.com/release-notes/) ++ Git Cola [4.16.1](https://github.com/git-cola/git-cola/releases/tag/v4.16.1) ++ GitButler [0.18.1](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.18.1), +[0.18.0](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.18.0) ++ Kinetic Merge [1.11.2](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.11.2), +[1.11.1](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.11.1), +[1.11.0](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.11.0) ++ Tower for Mac [15](https://www.git-tower.com/blog/tower-mac-15) ([YouTube tour](https://youtu.be/xTrxb2dJP8M)) ++ Tower for Windows [10](https://www.git-tower.com/blog/tower-windows-10) ## Credits From 81a89bd13d0662c0c03f486f2b86e68b8df6f246 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 28 Nov 2025 10:16:43 +0100 Subject: [PATCH 58/65] rn-129: add Bruno Brito among the helpers --- rev_news/drafts/edition-129.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index d6e594879..9a139ef9b 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -91,4 +91,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Bruno Brito. From ede3d80fe1e0fd1889b06188af1d50022469bf4b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 30 Nov 2025 21:23:00 +0100 Subject: [PATCH 59/65] rn-129: add article about cherry-pick vs apply --- rev_news/drafts/edition-129.md | 48 ++++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index 9a139ef9b..03680a71d 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -25,9 +25,53 @@ This edition covers what happened during the months of October and November 2025 ### Reviews --> - + ++ [[Bug report] git cherry-pick silently ignores error whereas git apply fails for hunk apply](https://lore.kernel.org/git/CAEyHQXWd77_jJachC6FYbWMJ+L=KkKoUqiACQ7z8r-ZwYq8JYw@mail.gmail.com/) + + Bhavik Bavishi filed and sent a bug report to the mailing + list. Running `git cherry-pick` failed to apply some changes but + didn't report any error. On the contrrary when creating a patch + using `git format-patch` from the same commit and applying it using + `git apply --verbose`, the latter command also failed to apply the + same changes but errored out. It seemed that there shouldn't be such + a behavior discrepancy and that `git cherry-pick` should have + reported an error too. + + Johannes Sixt, suggested using `git apply --3way` to apply the + patch. He was interested not only on the success or failure of the + command but also on the end result of applying the patch. Was that + end result similar as the result from `git cherry-pick` or + different? + + Bhavik reported back that indeed `git apply --3way` succeeded and + produced the same end result as `git cherry-pick`. Even if it looked + like `git cherry-pick` worked as expected, that still seemed a + strange behavior though. + + Johannes Sixt replied that a merge strategy is used by both + `git cherry-pick` and `git apply --3way`. Unlike a simple patch + application, a merge strategy is intelligent enough to detect if a + change has already been applied. He illustrated this with an example + where text repeats in a file, but only specific instances are + modified. + + In the meantime, Chris Torek also replied to Bhavik providing a + wealth of explanations. He explained that `git apply` works with a + *patch*, which is essentially a "we expect the file looks like this" + instruction. If the file doesn't match the expected context lines + exactly, the patch fails. + + In contrast, `git cherry-pick` performs a *3-way merge*. It locates + a "common base version" (the ancestor), compares it to "Ours" + (current branch), and "Theirs" (the commit being picked) . If the + merge logic sees that "Theirs" introduces a change that "Ours" has + already made, it silently discards the duplicate change rather than + erroring out. This confirms that the command was working as + intended, using the full history to resolve what looked like a + conflict to the simpler `git apply` tool. + + Bhavik thanked Chris for the helpful explanations. + +- [How to ensure the Git community is / stays healthy: Emily Shaffer / Patrick Steinhardt & guests](https://www.youtube.com/watch?v=vKsOFHNSb4Q) + on GitButler on YouTube [44:42]. + __Git tools and sites__ +- [gitlogue](https://github.com/unhappychoice/gitlogue) + is a cinematic Git commit replay tool for the terminal, + turning your Git history into a living, animated story; + with realistic typing animations, syntax highlighting, and file tree transitions, + transforming code changes into a visual experience. + Written mainly in Rust, under ISC License. +- [PyDriller](https://github.com/ishepard/pydriller) is a Python framework + that helps developers in analyzing Git repositories. + With PyDriller you can easily extract information about + commits, developers, modified files, diffs, and source code. + Written in Python, under Apache 2.0 license. +- [tree-me](https://github.com/haacked/dotfiles/blob/main/bin/tree-me) + is a minimal git worktree helper + that leverages git's native capabilities. + It uses git-like subcommands and follows conventions so you don’t have to think: + auto-detects repository name from your git remote, + auto-detects default branch, organizes by repo, provides tab completion, etc. + Single bash script, part of [haacked dotfiles](https://github.com/haacked/dotfiles). + No license. + - See also [Worktree Manager](https://github.com/jarredkenny/worktree-manager) (wtm), + a fast, modern CLI tool for managing Git worktrees in bare repositories, + mentioned in [Git Rev News Edition #128](https://git.github.io/rev_news/2025/10/31/edition-128/). +- [Spelungit](https://github.com/haacked/spelungit) is a Model Context Protocol (MCP) server + for exploring Git commit history using semantic search. + With this tool you can search through commits with natural language commands + like "Search git history to find out why was this class added?", + or "search_commits(query="authentication login changes", limit=5)". + Uses Microsoft's all-MiniLM-L6-v2 embeding model via [sentence-transformers](https://www.sbert.net/), + or deterministic hash-based embeddings when sentence-transformers is unavailable. + Written in Python (with a few Bash scripts), under MIT License. + - See also [Spelungit: When `git log --grep` isn't enough](https://haacked.com/archive/2025/09/29/announcing-spelungit/) + by Phil Haack on You've Been Haacked blog. +- [forgit](https://github.com/wfxr/forgit) is a utility tool + powered by [fzf](https://github.com/junegunn/fzf) (command-line fuzzy finder) + for using Git interactively. + Written in shell, under MIT license. +- [gitnr](https://github.com/reemus-dev/gitnr) is a cross-platform CLI utility + to create `.gitignore` files using one or more templates + from [TopTal](https://github.com/toptal/gitignore) (), + [GitHub](https://github.com/github/gitignore), or your own collection. + Written in Rust, under MIT License. +- [`mani`](https://manicli.com/) is a CLI tool + that helps you manage multiple repositories. + It's useful when you are working with microservices, multi-project systems, + multiple libraries, or just a collection of repositories + and want a central place for pulling all repositories and running commands across them. + Written in Go, under MIT License. +- [eget](https://github.com/zyedidia/eget) is a command-line tool + for easily fetching and extracting pre-built binaries from GitHub releases. + Written in Go, under MIT License. +- [dunk](https://github.com/darrenburns/dunk) is a tool + to provide prettier git diffs in the terminal + by pipe-ing `git diff` output into it (`git diff | dunk` or `git diff | dunk | less -R`). + In is very early stages of development. + Written in Python, under MIT License. + - See also [git-delta](https://dandavison.github.io/delta/), + a syntax-highlighting pager for git, diff, grep, and blame output. + It was first mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/), + though there is another [delta](https://github.com/octavore/delta) + command-line diff tool which was first mentioned in [edition #9](https://git.github.io/rev_news/2015/11/11/edition-9/). + - See also [diff-so-fancy](https://github.com/so-fancy/diff-so-fancy) tool, + which beside piping `git diff` output to it, + can also be used as `core.pager` and `interactive.diffFilter`. + It was first mentioned in [Git Rev News Edition #13](https://git.github.io/rev_news/2016/03/16/edition-13/). + - There is also [`contrib/diff-highlight`](https://github.com/git/git/tree/master/contrib/diff-highlight) + diff pager script in the Git repository, written in Perl. + It was mentioned in [Git Rev News Edition #53](https://git.github.io/rev_news/2019/07/24/edition-53/). +- [GitType](https://github.com/unhappychoice/gittype) is a CLI tool + that turns your own source code into typing challenges. + Because why practice with boring [lorem ipsum](https://www.lipsum.com/) + when you can type your beautiful `fn main()` implementations? + Written in Rust, under MIT License. +- [Serie](https://github.com/lusingander/serie) is a TUI tool that + provides rich git commit graph in your terminal. + Written in Rust, under MIT License. + - See also [tig](https://jonas.github.io/tig/), + an ncurses-based text-mode interface for Git, + first mentioned in [Git Rev News Edition #18](https://git.github.io/rev_news/2016/08/17/edition-18/). +- [prettydiff](https://github.com/prettydiff/prettydiff) is a beautifier and language aware + code comparison tool for many languages. It also minifies and a few other things. + There is web service showing how the tool works at . + Written in TypeScript and HTML, + under [CC0](https://creativecommons.org/public-domain/cc0/) license. +- [fnox: Fort Knox for your secrets](https://fnox.jdx.dev/) + is a tool to manage secrets with encryption, or cloud providers, or both. + Fnox uses a simple TOML config file (`fnox.toml`) that you check into Git; + secrets are either encrypted inline, or provided as references + that points to a secret in age, AWS, 1Password, etc. + Written in Rust, under MIT License. +- [asdf](https://asdf-vm.com/guide/introduction.html) is a tool version manager. + All tool version definitions are contained within one file (`.tool-versions`) + which you can check in to your project's Git repository to share with your team, + ensuring everyone is using the exact same versions of tools. + Written mainly in Bash and Go, under MIT License. +- [grebedoc.dev](https://grebedoc.dev/) is a service + that offers static site hosting for Git forges; + it publishes the `pages` branch in your Git repository as a website on your domain. + More specifically, it is a public deployment of + [git-pages](https://codeberg.org/git-pages/git-pages) + and [Caddy](https://caddyserver.com/), configured to work especially with + [Codeberg](https://codeberg.org/) but also with other Git forges. + It is operated by Catherine 'whitequark' and teammates. + - Compare with [GitHub Pages](https://docs.github.com/en/pages), + [GitLab Pages](https://docs.gitlab.com/user/project/pages/), + [static websites on Bitbucket Cloud](https://support.atlassian.com/bitbucket-cloud/docs/publishing-a-website-on-bitbucket-cloud/), + [Codeberg Pages](https://codeberg.page/) (can't guarantee high availability), + [sourcehut pages](https://srht.site/), and + [Cloudflare Pages](https://pages.cloudflare.com/) (JAMstack platform), etc. +- [gitsuggest](https://github.com/csurfer/gitsuggest) is a tool + to suggest GitHub repositories based on the repositories you have shown interest in + by “starring”. It is using Latent Dirichlet Allocation (LDA) method. + There is also [gitSuggest](http://www.gitsuggest.com/) service (in beta), on Heroku. + Written on Python, under MIT License. +- [Josh](Just One Single History) ([repo](https://github.com/josh-project/josh)) + is a tool that combines the advantages of monorepos with those of multirepos + by leveraging a blazingly-fast, incremental, and reversible implementation + of git history filtering. + Note that to guarantee filters are reversible + Josh restricts the kind of filter that can be used. + Use cases include partial cloning, workspaces, simplified CI/CD; + this tool also provides GraphQL API. + Josh is distributed via [Docker Hub](https://hub.docker.com/r/joshproject/josh-proxy), + and you can start it with appropriate `docker run` command. + See its [Frequently Asked Questions](https://josh-project.github.io/josh/faq.html#frequently-asked-questions) + for comparison with `git sparse-checkout`, partial clone, submodules, `git subtree`, + and `git filter-repo`. + Written mainly in Rust, under MIT License. +- [Furgit](https://villosa.lindenii.org/furgit//repos/furgit/) + ([GitHub mirror](https://github.com/runxiyu/furgit)) + is a fast Git library in pure Go (and a little bit of optional Go Assembly). + Written for [Lindenii Villosa](https://villosa.lindenii.org/villosa//repos/villosa/) + (successor to [Lindenii Forge](https://forge.lindenii.org/forge/-/repos/server/)), + a software forge primarily designed for self-hosting + by small organizations and individuals. + Under AGPL 3.0 license. +- [git-embigenner](https://github.com/veqqq/git-embigenner) + is a very simple shell script to cheat a highscore on GitHub, + which will spam commits to populate your profile's contribution graph. + - Compare with [Git Draw](https://github.com/ben174/git-draw), + a Chrome extension which will allow you to freely draw on your GitHub heatmap, + mentioned in [Git Rev News Edition #12](https://git.github.io/rev_news/2016/02/10/edition-12/)
+ and [gitfiti](https://github.com/gelstudios/gitfiti), + a tool for crafting graffiti in a GitHub commit history calendar, + mentioned in [Git Rev News Edition #41](https://git.github.io/rev_news/2018/07/18/edition-41/). + - Contrast [Vigilante Justice on GitHub: GitHub Graffiti](https://trufflesecurity.com/blog/vigilante-justice-on-github) by Dylan Ayrey, + mentioned in [Git Rev News Edition #118](https://git.github.io/rev_news/2024/12/31/edition-118/), + about how you can paint funny pixel art (graffiti) with fake commit Git histories + on spammer/phisher’s GitHub profiles (on their activity heatmap plot) + ## Releases From a977a4ef6ccab027c80f50eafab642b791204d8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 1 Dec 2025 01:17:16 +0100 Subject: [PATCH 61/65] rn-129: Some minor fixes to "Other News" section --- rev_news/drafts/edition-129.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index 87fbab699..6c2781880 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -93,7 +93,7 @@ __Various__ advanced repository maintenance strategies for `git maintenance`, new sub-commands be added to `git refs`, new `git repo` command, etc. - [lakeFS Acquires DVC, Uniting Data Version Control Pioneers to Accelerate AI-ready Data](https://lakefs.io/media-mentions/lakefs-acquires-dvc-uniting-data-version-control-pioneers/) - announcement by LakeFS on their Mentions Media page + announcement by LakeFS on their Mentions Media page. - [DVC Joins lakeFS: Your Questions Answered!](https://dvc.org/blog/dvc-joins-lakefs-your-questions-answered/) by Jeny De Figueiredo on DVC Blog. - [A Shared Vision for the Future of DVC](https://dvc.org/blog/a-shared-vision-for-the-future-of-dvc/) @@ -106,8 +106,8 @@ __Various__ [Pachyderm](https://www.pachyderm.com/) (first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/)). - [20 Years of Git, 2 days at GitHub HQ: Git Merge 2025 highlights 🎉](https://github.blog/open-source/git/20-years-of-git-2-days-at-github-hq-git-merge-2025-highlights/) by Lee Reilly on GitHub Blog. - See also [the previous edition of Git Rev News](https://git.github.io/rev_news/2025/10/31/edition-128/) - for more links. + - See also [the previous edition of Git Rev News](https://git.github.io/rev_news/2025/10/31/edition-128/) + for more links about Git Merge 2025. __Light reading__ @@ -132,7 +132,7 @@ __Light reading__ in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). - See also [Switch to Jujutsu already: a tutorial](https://www.stavros.io/posts/switch-to-jujutsu-already-a-tutorial/) by Stavros on Stavros’ Stuff, - mentioned in [the previous edition](https://git.github.io/rev_news/2025/10/31/edition-128/) + mentioned in [the previous edition](https://git.github.io/rev_news/2025/10/31/edition-128/). - [Why Git is the first tool every new developer needs to learn](https://www.howtogeek.com/beginning-git-what-it-is-and-why-its-crucial/) by Graeme Peacock on How-To Geek. - [Git for Vibe Coders](https://www.kdnuggets.com/git-for-vibe-coders), @@ -196,7 +196,7 @@ __Light reading__ __Easy watching__ - [How to ensure the Git community is / stays healthy: Emily Shaffer / Patrick Steinhardt & guests](https://www.youtube.com/watch?v=vKsOFHNSb4Q) - on GitButler on YouTube [44:42]. + on GitButler channel on YouTube [duration: 44:42]. __Git tools and sites__ @@ -314,7 +314,8 @@ __Git tools and sites__ by “starring”. It is using Latent Dirichlet Allocation (LDA) method. There is also [gitSuggest](http://www.gitsuggest.com/) service (in beta), on Heroku. Written on Python, under MIT License. -- [Josh](Just One Single History) ([repo](https://github.com/josh-project/josh)) +- [Josh](https://josh-project.github.io/josh/) (Just One Single History) + ([repo](https://github.com/josh-project/josh)) is a tool that combines the advantages of monorepos with those of multirepos by leveraging a blazingly-fast, incremental, and reversible implementation of git history filtering. From c091129d54eb7d1369e0d71025d3ad906ac5723c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 1 Dec 2025 07:50:45 +0100 Subject: [PATCH 62/65] rn-129: add D. Ben Knoble among the helpers --- rev_news/drafts/edition-129.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index 6c2781880..9429ddcb4 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -396,4 +396,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito. +with help from Bruno Brito and D. Ben Knoble. From bdfa88f5ddbc3747492d68075e78dc78af9c24de Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 1 Dec 2025 23:12:19 +0530 Subject: [PATCH 63/65] rn-126: fix a GSoC-vs-Outreachy typo --- _posts/2025-08-31-edition-126.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-08-31-edition-126.markdown b/_posts/2025-08-31-edition-126.markdown index 2645376d9..bb1f32be1 100644 --- a/_posts/2025-08-31-edition-126.markdown +++ b/_posts/2025-08-31-edition-126.markdown @@ -204,7 +204,7 @@ welcome your thoughts and feedback!_ some weeks are more demanding than others, but having a framework keeps me grounded and ensures I can keep giving my best to Git. -* **Can you share how GSoC helped enhance your technical and +* **Can you share how Outreachy helped enhance your technical and non-technical skills (like communication, project management, etc.)?** My C and low-level engineering skills have improved immensely through From 4cfc9adebe2b45158c195543d54ac2dc678c1f08 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 1 Dec 2025 23:13:08 +0530 Subject: [PATCH 64/65] rn-129: include interview with Ayush Chandekar --- rev_news/drafts/edition-129.md | 211 ++++++++++++++++++++++++++++++++- 1 file changed, 208 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index 9429ddcb4..2dd203329 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -73,9 +73,214 @@ This edition covers what happened during the months of October and November 2025 Bhavik thanked Chris for the helpful explanations. - +## Developer Spotlight: Ayush Chandekar + +_Editor’s note: This edition features a retrospective interview with a +contributor who contributed to Git through a mentoring program. +We hope the reflections shared by the GSoC contributor will +provide an insightful perspective that benefits the community. +As always, we welcome your thoughts and feedback!_ + +* **Who are you and what do you do?** + + I am Ayush Chandekar, a GSoC 2025 alumnus under Git, my project was + titled '[Refactoring in order to reduce Git’s global state](https://summerofcode.withgoogle.com/programs/2025/projects/no7dVMeG)'. + Currently I am an engineering undergraduate at IIT Roorkee, + I consider myself to be a jack of all trades, with interests + ranging from low-level programming to game development, + cybersecurity, and blockchain. I am also a member of + [SDSLabs](https://sdslabs.co/), a student run technical club + at my university which also focuses on making software and + tech accessible for the campus. + + As a kid I always enjoyed tinkering with computers and would + spend majority of my time on games, but slowly I started enjoying + the chance that development gave me to be the one behind the scene, + controlling and making stuff which works. My approach is driven by + curiosity and a desire to understnd how things really function. + Whenever I start learning something new, I naturally end up going + deeper and deeper into the smaller, niche details, not because + I have to, but because it genuinely fascinates me. I enjoy peeling + back the layers, figuring out the underlying mechanisms, and + understanding the “why” behind everything I work on. It’s that + curiosity that keeps pulling me into new domains and motivates me + to keep exploring. Apart from this, for fun, I like to participate + in hackathons, GameJams and Cyber security Capture-The-Flag(CTFs) + competitions. Outside of tech, I enjoy listening to music, brewing + coffee, skateboarding, and learning guitar, they help me unwind + and keep a balance beyond the screen. + +* **How did you initially become interested in contributing to Git, + and what motivated you to choose it as your GSoC project?** + + I wanted to start my journey of contributing to open source projects. + Before that, I was working on small C projects, and that’s when I + came across Git. I was immediately drawn to understanding how + developers actually work on Git itself. The workflow felt new to me, + kind of old-school in a good way, and it definitely took some time + to get used to, but I really enjoyed the process. As I dug deeper, + I realized how Git's internals work, and that made me even more + curious. The idea that I could learn from such a mature codebase, + while also improving a tool used globally, was extremely motivating. + It felt like the perfect place to challenge myself, improve my skills, + and contribute to a big project. + +* **Is there any aspect of Git that you now see differently after + having contributed to it?** + + It is about how there are so many different commands. Before my GSoC, + I was only aware of the usual `git push`, `git pull`, `git clone`, + etc. Now, I know many more commands like `git bisect`, `git range-diff`, + etc. I even understand how some of them work internally. Contributing + to Git really opened my eyes to the depth and complexity of the tool. + +* **How do you balance your contributions with other responsibilities + like work or school?** + + Balancing contributions with other responsibilities is a bit + challenging. As an undergrad student, I’m involved in various + activities at my university, including sports and other commitments, + so my schedule gets busy. But whenever I sit down to work or study, + I get very absorbed in it, and I often end up spending long stretches + of time without even realizing it. That focus helps me make steady + progress even with a packed routine. + +* **Can you share how GSoC helped enhance your technical and + non-technical skills (like communication, project management, + etc.)?** + + GSoC helped me grow in both technical and non-technical areas. + On the technical side, I became much more comfortable reading + large codebases, debugging tricky issues, and writing clean, + well-structured patches. I also learned the importance of clear + and detailed commit messages. On the non-technical side, GSoC + improved my communication skills a lot, especially explaining + my ideas, asking the right questions, and discussing feedback + with the community. It also taught me how to plan my work, break + tasks into smaller steps, and manage my time over a long project. + Overall, it made me more confident in collaborating in an open-source + environment. I would also like to thank my mentor, Christian, for + his guidance and patience throughout the project. His feedback + played a big role in helping me improve. + +* **What was your biggest takeaway or learning from GSoC that + you now apply regularly in your work?** + + My biggest takeaway from GSoC was the importance of writing + clear and detailed commit messages. Before the program, I + didn’t pay much attention to how a commit was explained, + but contributing to Git made me realise how essential it + is. A good commit message not only describes what changed + but also why the change was necessary, making it much easier + for reviewers and future contributors to understand the context. + + Another major learning was understanding how to handle reviews + from multiple people. In the Git community, different contributors + often suggest different things, and figuring out how to take in + all that feedback while still taking ownership of my work was a + big shift for me. I learned how to look at each suggestion carefully, + understand the reasoning behind it, and decide what improves the + patch. It also taught me when to explain my choices and when to + adjust my approach. This experience helped me become more confident + in iterating on my work and communicating clearly, while staying + responsible for the decisions I make. + +* **What was the biggest challenge you faced during your contributions + to Git, and how did you overcome it?** + + There were a few challenges which I faced. Initially, it was + getting accustomed to the mailing list workflow as it was new to + me. Most of the challenges were making sure that the community + accepted your patches. A lot of people reviewed my patches and + got different responses. Here, I learnt to take ownership of + my patches. + +* **Have you thought about mentoring new GSoC / Outreachy students?** + + Yes, I’ve definitely thought about mentoring future GSoC students, + most likely as a co-mentor. I feel it would be a great way to + give back to the community and support newcomers the same way + I was supported. + +* **If you could remove something from Git without worrying about + backwards compatibility, what would it be?** + + It would be removing the global state from Git, which was my + GSoC project and is also an ongoing effort in the community + for the maintainability and modularity of the codebase. + +* **What upcoming features or changes in Git are you particularly + excited about?** + + I've been following Patrick's [patch series on `git history`](https://public-inbox.org/git/20251027-b4-pks-history-builtin-v6-0-407dd3f57ad3@pks.im/). + I am excited for that feature to release. + +* **What is your favorite Git-related tool/library, outside of Git + itself?** + + I have heard of [Jujutsu](https://jj-vcs.github.io/jj/latest/), + I haven't tried it yet but it seems cool, other than that + sticking to my essentials, GitLab and GitHub. + +* **What is your toolbox for interacting with the mailing list and for + development of Git?** + + I just use Gmail to view and reply mails most of the time. But when + it comes to sending patches, I use the good ol' `git send-email`. + I had set up [mutt](http://www.mutt.org/) once, but didn't use it + as much. + +* **How do you envision your own involvement with Git or other open + source projects in the future?** + + I don't have anything planned out in particular but I do really + admire the way my mentor and other contributors in the organisation + contribute, open source is something which basically runs the world, + organisations like Git and Linux function because of collective and + voluntary efforts and they are what makes the world as it is today + and carrying that forward I want to contribute in a way which makes + softwares accessible to everyone and help build up on these + foundational blocks. + +* **What is your advice for people who want to start Git development? + Where and how should they start?** + + Git is an amazing project to learn all aspects of development. + It helps you to learn/improve your C and debugging skills. Another + important thing is how you get to work with different contributors + in the community. You get reviews from everyone which helps you + understand different perspectives. To start with, I would suggest + going through this page called '[Hacking Git](https://git.github.io/Hacking-Git/)' + and checking different articles mentioned there along with the + [Contribution Guidelines](https://git-scm.com/docs/MyFirstContribution). + It is quite difficult to decide what to work on initially, as there + are no traditional issues as other organizations have. Being active + on the mailing list, checking out the ongoing topics might help you + decide what to work on. Everyone on the mailing list and discord is + very friendly and is always looking forward to help you out so feel + free to ask if you have any doubts :) + +* **Would you recommend other students or contributors to participate + in the GSoC, Outreachy or other mentoring programs, working on Git? + Why? Do you have advice for them?** + + As I answered before, it is sometimes difficult to decide what you + can work on. I feel that for Git, since projects are already listed + on the [GSoC and Outreachy pages](https://git.github.io/SoC-2025-Ideas/), + it takes away the pain of figuring out where to start. You just need + to pick a project that interests you and then spend some time studying + it. Other than that, you’re also mentored by someone experienced in + Git development, and with their guidance you’re able to follow best + practices and learn a lot of new things. These programs really help + build confidence, especially when contributing to a large and complex + codebase. You also get to improve your communication skills through + discussions, reviews, and patch iterations. And most importantly, it + opens doors for future contributions, networking, and long-term + involvement in open source. My advice would be to learn to be patient + with reviews. A lot of people in the community contribute voluntarily, + so you may not get reviews on your patches quickly, and that’s + completely normal. + ## Other News From 4416139e8de742ae650845092b0769064912e492 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 2 Dec 2025 00:18:09 +0100 Subject: [PATCH 65/65] rn-129: Tiny fixes and rephrasings, please cross-check. --- rev_news/drafts/edition-129.md | 96 +++++++++++++++++----------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/rev_news/drafts/edition-129.md b/rev_news/drafts/edition-129.md index 2dd203329..e63cca5e9 100644 --- a/rev_news/drafts/edition-129.md +++ b/rev_news/drafts/edition-129.md @@ -27,21 +27,21 @@ This edition covers what happened during the months of October and November 2025 ### Support -+ [[Bug report] git cherry-pick silently ignores error whereas git apply fails for hunk apply](https://lore.kernel.org/git/CAEyHQXWd77_jJachC6FYbWMJ+L=KkKoUqiACQ7z8r-ZwYq8JYw@mail.gmail.com/) ++ [[Bug report] `git cherry-pick` silently ignores error whereas `git apply` fails for hunk apply](https://lore.kernel.org/git/CAEyHQXWd77_jJachC6FYbWMJ+L=KkKoUqiACQ7z8r-ZwYq8JYw@mail.gmail.com/) Bhavik Bavishi filed and sent a bug report to the mailing list. Running `git cherry-pick` failed to apply some changes but - didn't report any error. On the contrrary when creating a patch + didn't report any error. On the contrary, when creating a patch using `git format-patch` from the same commit and applying it using `git apply --verbose`, the latter command also failed to apply the same changes but errored out. It seemed that there shouldn't be such a behavior discrepancy and that `git cherry-pick` should have - reported an error too. + reported an error, too. - Johannes Sixt, suggested using `git apply --3way` to apply the + Johannes Sixt suggested using `git apply --3way` to apply the patch. He was interested not only on the success or failure of the - command but also on the end result of applying the patch. Was that - end result similar as the result from `git cherry-pick` or + command, but also on the end result of applying the patch. Was that + end result similar to the result of `git cherry-pick` or different? Bhavik reported back that indeed `git apply --3way` succeeded and @@ -97,7 +97,7 @@ As always, we welcome your thoughts and feedback!_ spend majority of my time on games, but slowly I started enjoying the chance that development gave me to be the one behind the scene, controlling and making stuff which works. My approach is driven by - curiosity and a desire to understnd how things really function. + curiosity and a desire to understand how things really function. Whenever I start learning something new, I naturally end up going deeper and deeper into the smaller, niche details, not because I have to, but because it genuinely fascinates me. I enjoy peeling @@ -105,7 +105,7 @@ As always, we welcome your thoughts and feedback!_ understanding the “why” behind everything I work on. It’s that curiosity that keeps pulling me into new domains and motivates me to keep exploring. Apart from this, for fun, I like to participate - in hackathons, GameJams and Cyber security Capture-The-Flag(CTFs) + in hackathons, GameJams and Cyber security Capture-The-Flag(CTF) competitions. Outside of tech, I enjoy listening to music, brewing coffee, skateboarding, and learning guitar, they help me unwind and keep a balance beyond the screen. @@ -213,7 +213,7 @@ As always, we welcome your thoughts and feedback!_ excited about?** I've been following Patrick's [patch series on `git history`](https://public-inbox.org/git/20251027-b4-pks-history-builtin-v6-0-407dd3f57ad3@pks.im/). - I am excited for that feature to release. + I am excited about that feature's release. * **What is your favorite Git-related tool/library, outside of Git itself?** @@ -235,11 +235,11 @@ As always, we welcome your thoughts and feedback!_ I don't have anything planned out in particular but I do really admire the way my mentor and other contributors in the organisation - contribute, open source is something which basically runs the world, + contribute. Open source is something which basically runs the world, organisations like Git and Linux function because of collective and - voluntary efforts and they are what makes the world as it is today + voluntary efforts; they are what makes the world as it is today, and carrying that forward I want to contribute in a way which makes - softwares accessible to everyone and help build up on these + software accessible to everyone and help build up on these foundational blocks. * **What is your advice for people who want to start Git development? @@ -257,7 +257,7 @@ As always, we welcome your thoughts and feedback!_ are no traditional issues as other organizations have. Being active on the mailing list, checking out the ongoing topics might help you decide what to work on. Everyone on the mailing list and discord is - very friendly and is always looking forward to help you out so feel + very friendly and is always looking forward to help you out, so feel free to ask if you have any doubts :) * **Would you recommend other students or contributors to participate @@ -291,14 +291,14 @@ __Various__ Highlights include `git last-modified` command, `git fast-export` and `git fast-import` signature-related improvements, new and improved `git maintenance` strategies, - new subcommand for new `git repo` to display repository metrics, etc. + a new subcommand for the new `git repo` to display repository metrics, etc. - [Highlights from Git 2.52](https://github.blog/open-source/git/highlights-from-git-2-52/) by Taylor Blau on GitHub Blog. - Mentions `git last-modified` command for tree-level blame information, + Mentions the `git last-modified` command for tree-level blame information, advanced repository maintenance strategies for `git maintenance`, - new sub-commands be added to `git refs`, new `git repo` command, etc. + new subcommands added to `git refs`, the experimental `git repo` command, etc. - [lakeFS Acquires DVC, Uniting Data Version Control Pioneers to Accelerate AI-ready Data](https://lakefs.io/media-mentions/lakefs-acquires-dvc-uniting-data-version-control-pioneers/) - announcement by LakeFS on their Mentions Media page. + announcement by lakeFS on their Mentions Media page. - [DVC Joins lakeFS: Your Questions Answered!](https://dvc.org/blog/dvc-joins-lakefs-your-questions-answered/) by Jeny De Figueiredo on DVC Blog. - [A Shared Vision for the Future of DVC](https://dvc.org/blog/a-shared-vision-for-the-future-of-dvc/) @@ -341,7 +341,7 @@ __Light reading__ - [Why Git is the first tool every new developer needs to learn](https://www.howtogeek.com/beginning-git-what-it-is-and-why-its-crucial/) by Graeme Peacock on How-To Geek. - [Git for Vibe Coders](https://www.kdnuggets.com/git-for-vibe-coders), - just enough to stop Claude from accidently deleting your code and database. + just enough to stop Claude from accidentally deleting your code and database. By Abid Ali Awan on KDnuggets. - [4 advanced git commands you probably haven't heard of](https://www.howtogeek.com/advanced-git-commands-you-probably-havent-heard-of/): [`git clean`](https://git-scm.com/docs/git-clean), @@ -351,15 +351,15 @@ __Light reading__ by Bobby Jack on How-To Geek. - [Setting File Permissions in Git](https://www.tvaidyan.com/2025/11/13/setting-file-permissions-in-git/) by Tom Vaidyan on his personal blog; - though I wonder why he shows low-level `git update-index --chmod=+x ` ("plumbing") - first, instead of user-facing `git add --chmod=+x ` ("porcelain" command). + though I wonder why he shows the low-level `git update-index --chmod=+x ` "plumbing" command + first, instead of the corresponding user-facing `git add --chmod=+x ` "porcelain" command. - [Why You Should Be Using Git Worktrees](https://blog.randombits.host/why-you-should-be-using-git-worktrees/) by Conor in Quick Tip on their Random Bits personal blog - (it includes their helper `gwc`, i.e. git worktree create, shell script). + (it includes their helper `gwc`, i.e. `git worktree create`, shell script). - [tree-me: Because git worktrees shouldn't be a chore](https://haacked.com/archive/2025/11/21/tree-me/) by Phil Haack on his You've Been Haacked blog. - [Use skip-worktree to ignore modified files](https://www.brandonpugh.com/til/git/skip-worktree-ignore-modified-files/) - by Brandon Pugh in "TIL: Today I learned..." section on his blog. + by Brandon Pugh in the "TIL: Today I learned..." section on his blog. - [Managing Multiple Projects in One Repository: Submodules, Subtrees, Monorepos & Partial Cloning Explained](https://dev.to/k-kibet/managing-multiple-projects-in-one-repository-submodules-subtrees-monorepos-partial-cloning-21mc) by Kibet Korir (K-kibet) for Codespear on DEV\.to. - [Automatically switching Git Identities and SSH Keys on the same machine](https://dev.to/enbis/automatically-switching-git-identities-and-ssh-keys-on-the-same-machine-75n) @@ -374,7 +374,7 @@ __Light reading__ - [One PC, Multiple Git Configs (This Will Save You Time!)](https://medium.com/@matteopampana/one-pc-multiple-git-configs-this-will-save-you-time-f702880744f7) mentioned in [Git Rev News Edition #120](https://git.github.io/rev_news/2025/02/28/edition-120/). - [Git: Amend any commit](https://ylan.segal-family.com/blog/2025/11/15/git-ammend-any-commit/) - (scripting around `git commit --amend`, and `git commit --fixup` + `git rebase --autosquash`) + (scripting around `git commit --amend`, `git commit --fixup`, and `git rebase --autosquash`) by Ylan Segal on his "on.code && such" blog. - [If You Think YOUR Commit Messages Are Bad, Just Wait...](https://dev.to/sylwia-lask/if-you-think-your-commit-messages-are-bad-just-wait-3fgk) by Sylwia Laskowska on DEV\.to, @@ -400,7 +400,7 @@ __Light reading__ __Easy watching__ -- [How to ensure the Git community is / stays healthy: Emily Shaffer / Patrick Steinhardt & guests](https://www.youtube.com/watch?v=vKsOFHNSb4Q) +- [How to ensure the Git community is and stays healthy: Emily Shaffer / Patrick Steinhardt & guests](https://www.youtube.com/watch?v=vKsOFHNSb4Q) on GitButler channel on YouTube [duration: 44:42]. @@ -418,11 +418,11 @@ __Git tools and sites__ commits, developers, modified files, diffs, and source code. Written in Python, under Apache 2.0 license. - [tree-me](https://github.com/haacked/dotfiles/blob/main/bin/tree-me) - is a minimal git worktree helper - that leverages git's native capabilities. - It uses git-like subcommands and follows conventions so you don’t have to think: - auto-detects repository name from your git remote, - auto-detects default branch, organizes by repo, provides tab completion, etc. + is a minimal `git worktree` helper + that leverages Git's native capabilities. + It uses Git-like subcommands and follows conventions so you don’t have to think: + auto-detects the repository name from your Git remote, + auto-detects the default branch, organizes by repo, provides tab completion, etc. Single bash script, part of [haacked dotfiles](https://github.com/haacked/dotfiles). No license. - See also [Worktree Manager](https://github.com/jarredkenny/worktree-manager) (wtm), @@ -431,9 +431,9 @@ __Git tools and sites__ - [Spelungit](https://github.com/haacked/spelungit) is a Model Context Protocol (MCP) server for exploring Git commit history using semantic search. With this tool you can search through commits with natural language commands - like "Search git history to find out why was this class added?", + like "Search Git history to find out why was this class added?", or "search_commits(query="authentication login changes", limit=5)". - Uses Microsoft's all-MiniLM-L6-v2 embeding model via [sentence-transformers](https://www.sbert.net/), + Uses Microsoft's all-MiniLM-L6-v2 embedding model via [sentence-transformers](https://www.sbert.net/), or deterministic hash-based embeddings when sentence-transformers is unavailable. Written in Python (with a few Bash scripts), under MIT License. - See also [Spelungit: When `git log --grep` isn't enough](https://haacked.com/archive/2025/09/29/announcing-spelungit/) @@ -450,19 +450,19 @@ __Git tools and sites__ - [`mani`](https://manicli.com/) is a CLI tool that helps you manage multiple repositories. It's useful when you are working with microservices, multi-project systems, - multiple libraries, or just a collection of repositories + multiple libraries, or just a collection of repositories, and want a central place for pulling all repositories and running commands across them. Written in Go, under MIT License. - [eget](https://github.com/zyedidia/eget) is a command-line tool for easily fetching and extracting pre-built binaries from GitHub releases. Written in Go, under MIT License. - [dunk](https://github.com/darrenburns/dunk) is a tool - to provide prettier git diffs in the terminal - by pipe-ing `git diff` output into it (`git diff | dunk` or `git diff | dunk | less -R`). - In is very early stages of development. + to provide prettier Git diffs in the terminal + by piping `git diff` output into it (`git diff | dunk` or `git diff | dunk | less -R`). + In its very early stages of development. Written in Python, under MIT License. - See also [git-delta](https://dandavison.github.io/delta/), - a syntax-highlighting pager for git, diff, grep, and blame output. + a syntax-highlighting pager for `git`, `diff`, `grep`, and `git blame` output. It was first mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/), though there is another [delta](https://github.com/octavore/delta) command-line diff tool which was first mentioned in [edition #9](https://git.github.io/rev_news/2015/11/11/edition-9/). @@ -470,7 +470,7 @@ __Git tools and sites__ which beside piping `git diff` output to it, can also be used as `core.pager` and `interactive.diffFilter`. It was first mentioned in [Git Rev News Edition #13](https://git.github.io/rev_news/2016/03/16/edition-13/). - - There is also [`contrib/diff-highlight`](https://github.com/git/git/tree/master/contrib/diff-highlight) + - There is also a [`contrib/diff-highlight`](https://github.com/git/git/tree/master/contrib/diff-highlight) diff pager script in the Git repository, written in Perl. It was mentioned in [Git Rev News Edition #53](https://git.github.io/rev_news/2019/07/24/edition-53/). - [GitType](https://github.com/unhappychoice/gittype) is a CLI tool @@ -479,21 +479,21 @@ __Git tools and sites__ when you can type your beautiful `fn main()` implementations? Written in Rust, under MIT License. - [Serie](https://github.com/lusingander/serie) is a TUI tool that - provides rich git commit graph in your terminal. + provides a rich Git commit graph in your terminal. Written in Rust, under MIT License. - See also [tig](https://jonas.github.io/tig/), an ncurses-based text-mode interface for Git, first mentioned in [Git Rev News Edition #18](https://git.github.io/rev_news/2016/08/17/edition-18/). - [prettydiff](https://github.com/prettydiff/prettydiff) is a beautifier and language aware - code comparison tool for many languages. It also minifies and a few other things. - There is web service showing how the tool works at . + code comparison tool for many languages. It also minifies and does a few other things. + There is a web service showing how the tool works at . Written in TypeScript and HTML, under [CC0](https://creativecommons.org/public-domain/cc0/) license. - [fnox: Fort Knox for your secrets](https://fnox.jdx.dev/) is a tool to manage secrets with encryption, or cloud providers, or both. Fnox uses a simple TOML config file (`fnox.toml`) that you check into Git; secrets are either encrypted inline, or provided as references - that points to a secret in age, AWS, 1Password, etc. + that point to a secret in age, AWS, 1Password, etc. Written in Rust, under MIT License. - [asdf](https://asdf-vm.com/guide/introduction.html) is a tool version manager. All tool version definitions are contained within one file (`.tool-versions`) @@ -516,20 +516,20 @@ __Git tools and sites__ [Cloudflare Pages](https://pages.cloudflare.com/) (JAMstack platform), etc. - [gitsuggest](https://github.com/csurfer/gitsuggest) is a tool to suggest GitHub repositories based on the repositories you have shown interest in - by “starring”. It is using Latent Dirichlet Allocation (LDA) method. - There is also [gitSuggest](http://www.gitsuggest.com/) service (in beta), on Heroku. + by “starring”. It is using the Latent Dirichlet Allocation (LDA) method. + There is also a [gitSuggest](http://www.gitsuggest.com/) service (in beta) on Heroku. Written on Python, under MIT License. - [Josh](https://josh-project.github.io/josh/) (Just One Single History) ([repo](https://github.com/josh-project/josh)) is a tool that combines the advantages of monorepos with those of multirepos - by leveraging a blazingly-fast, incremental, and reversible implementation - of git history filtering. + by leveraging a blazingly fast, incremental, and reversible implementation + of Git history filtering. Note that to guarantee filters are reversible Josh restricts the kind of filter that can be used. Use cases include partial cloning, workspaces, simplified CI/CD; - this tool also provides GraphQL API. + this tool also provides a GraphQL API. Josh is distributed via [Docker Hub](https://hub.docker.com/r/joshproject/josh-proxy), - and you can start it with appropriate `docker run` command. + and you can start it with the appropriate `docker run` command. See its [Frequently Asked Questions](https://josh-project.github.io/josh/faq.html#frequently-asked-questions) for comparison with `git sparse-checkout`, partial clone, submodules, `git subtree`, and `git filter-repo`. @@ -554,7 +554,7 @@ __Git tools and sites__ - Contrast [Vigilante Justice on GitHub: GitHub Graffiti](https://trufflesecurity.com/blog/vigilante-justice-on-github) by Dylan Ayrey, mentioned in [Git Rev News Edition #118](https://git.github.io/rev_news/2024/12/31/edition-118/), about how you can paint funny pixel art (graffiti) with fake commit Git histories - on spammer/phisher’s GitHub profiles (on their activity heatmap plot) + on spammer/phisher’s GitHub profiles (that is, on their activity heatmap plot). ## Releases