From 8bf302814e38f314935f582a7ecec8b1f1459e6e Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 6 Oct 2024 16:42:20 +0200 Subject: [PATCH 001/336] Really tiny and hopefully last rephrasing. --- _posts/2024-09-30-edition-115.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_posts/2024-09-30-edition-115.markdown b/_posts/2024-09-30-edition-115.markdown index 218ca02df..0907ae1d8 100644 --- a/_posts/2024-09-30-edition-115.markdown +++ b/_posts/2024-09-30-edition-115.markdown @@ -330,8 +330,7 @@ __Light reading__ on Avestura's Personal Website. + [My Git cheatsheet](https://write.as/pylapp/my-git-cheatsheet) - a list of some useful commands, as a cheatsheet or a simple reminder to keep and share. - Written by Pierre-Yves Lapersonne, on pylapp blog (in the fediverse (write\.as)), - who posts mainly in French. + Written by Pierre-Yves Lapersonne on his French and English pylapp blog in the fediverse (write\.as). - + +## Developer Spotlight: Chandra Pratap + +_Editor's note: Just like in our previous edition, we return with another + GSoC retrospective interview in this issue. We hope the reflections shared + by GSoC students 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? + + Hey! I am Chandra Pratap (prefer going by Chand) and I am an + undergraduate student of Mathematics at SVNIT, Surat, India. I have + a passion for everything computing and like to solve leetcode-styled + problems in my free time or contribute to open-source software. + +* How did you initially become interested in contributing to Git, and + what motivated you to choose it as your GSoC project? + + C was the first programming language that I learnt, and I wanted to + try working on a non-trivial software project. I watched a YouTube + video on open-source and that’s where I got the idea of looking for + open-source projects to contribute to. Git and VLC were the only + open-source C-written software that I was familiar with and used in + day-to-day life, so I decided to start contributing to Git out of the two. + By the time GSoC came around, Git was the only open-source + community that I was familiar with, so I decided to choose it as my + GSoC organization. + +* How do you feel your contribution has impacted the Git community + or the broader open-source ecosystem? + + [My project](https://summerofcode.withgoogle.com/programs/2024/projects/tlh611d7) + was about moving and improving reftable tests, so I think + my contributions made life somewhat easier for other Git hackers, + especially those that frequent the reftable sub-project. My project + didn’t really affect any user-facing aspect of Git, so I don’t think it had + a huge impact on the broader open-source ecosystem, besides the + fact that it gained another lifelong contributor. + +* Is there any aspect of Git that you now see differently after having + contributed to it? + + Everything, to be honest. Working on and with Git for the duration of + my project completely changed my mental model for the tool. Before + GSoC, Git was a clunky tool reserved for software development work + but post-Git, I know the most frequent commands like the back of my + hand, and I’ve already used Git to version control many of my non + software files. I feel like I’ve learnt enough Git to last my entire career. + +* How do you balance your contributions with other responsibilities like + work or school? + + I had summer vacation for the entire duration of GSoC and no other work + commitments, so I had no problems finding time for my GSoC project. + +* Can you share how GSoC helped enhance your technical and non + technical skills (like communication, project management, etc.)? + + In terms of technical skills, I think my C and Git skills saw the biggest jump. + I am a lot more comfortable working with those two tools than when I + was pre-GSoC. Besides that, I’m a lot less scared of the command line + now. In terms of non-technical skills, I believe I’ve gotten a lot better at + composing mails and communicating with other professionals. I’ve learnt + to write with the right amount of professionalism, so I don’t appear too + uptight or too lax, the right way to respond to constructive feedback, how + to time my schedule to fit with others’, especially those living in other + parts of the globe, and how to ask good questions. + +* What was your biggest takeaway or learning from GSoC that you now + apply regularly in your work? + + I’d say the biggest takeaway from GSoC for me was that it is normal for + everyone to face difficulties when trying to learn a new codebase, tool, etc, + or even a different part of the same codebase. It is important to persevere + and not be afraid of asking questions to achieve the desired results. Other + than that, I’ve learnt a lot about good practices in software development, + like appropriately splitting commits and writing good commit messages, + that I subconsciously incorporate in my work now. + +* What was the biggest challenge you faced during your contributions + to Git, and how did you overcome it? + + The biggest challenge in contributing to Git was the initial phase of + getting involved. I remember starting out working on a small patch for + about 2 months with a lot of help from other contributors before it got + accepted into Git’s upstream. After a few initial contributions, I grew more + confident and could steadily find things to work on and produce + acceptable results. The key to overcoming this challenge was to be + persistent and patient, and not being afraid of asking silly questions. + +* Have you thought about mentoring new GSoC students? + + I’m not sure about being a full-on mentor, but I’d love to co-mentor + any future GSoC student(s) interested in working on the reftable + project. + +* 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? + + The [Git GUI](https://git-scm.com/docs/git-gui) tool. I believe that + would make Git far more accessible than it currently is and get it + incorporated in a lot more people’s day-to-day works. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + The packed-refs format for refs seems redundant to me now that + reftable is a core part of Git. + +* What is your favourite Git-related tool/library, outside of Git itself? + + [GitGitGadget](https://gitgitgadget.github.io/) was a lifesaver when + I had just started contributing to Git, so that is probably my favourite + Git related tool. + +* What is your toolbox for interacting with the mailing list and for + development of Git? + + I used git’s `send-email` to send patches to the mailing list (especially + the `--compose` and `--annotate` flags) and Gmail’s online client to + convey non-patch mails. For developing Git, I used Vim as the editor + on an Ubuntu machine and Git as the version control software (duh). + +* How do you envision your own involvement with Git or other + open-source projects in the future? + + I plan on making small contributions to Git from time to time, since I + cannot find enough time for larger patches. Other than that, I’ll try to + volunteer as a Git mentor for future GSoC or Outreachy cohorts. + Regarding other open-source projects, I’ll try contributing to them when + I learn a new technology and want a real-world experience. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + Go through Git’s [‘My First Contribution tutorial’](https://git-scm.com/docs/MyFirstContribution) + for the initial setup and to get an idea of what’s it like + to work on Git. Then work on a few ‘microprojects’ ([more information on + the Git Developer's website](https://git.github.io/General-Microproject-Information/) ) + to dip your toes in the Git Development community. From there, you + can figure out interesting stuff to work on by yourself. + +* Would you recommend other students or contributors to participate in + the GSoC, or other mentoring programs, working on Git? Why? Do you + have advice for them? + + Yes. I believe that Git is a tool that every working professional can find + useful regardless of whether they work in the software industry or not + and working on Git through an open-source program is an excellent way + to get good at it in a short period of time. There’s also the added benefit + of joining a large and active community of amazingly experienced + developers who can teach you a lot about writing software, and the + software development workflow in general. + + I think the key to getting selected as a participant in GSoC or other + mentoring programs is getting involved as early as possible. The more + time you allow yourself to get familiar with Git’s codebase and + development workflow, the easier it becomes to find an apt project and + write a reasonable proposal for it. Also, the initial phase of contributions is + the most difficult part of getting involved with an open-source project, so it + is better to allow yourself ample time to tackle that initial hurdle. + ## Other News From a70c46b646bcfa4dba16a9beb2605c4fbe7ab2ce Mon Sep 17 00:00:00 2001 From: Brooke Kuhlmann Date: Tue, 15 Oct 2024 12:53:59 -0600 Subject: [PATCH 014/336] Added Git For Each Ref article link This article details how to use `git for-each-ref` in new and interesting ways (including the new `is-base` field). --- rev_news/drafts/edition-116.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 4dce659e6..559d98f6a 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -40,6 +40,9 @@ __Various__ __Light reading__ ++ [Git For Each Ref](https://alchemists.io/articles/git_for_each_ref) by Brooke Kuhlmann. Learn how + to use this command to make use of references for information dumping, statistcs, and much more. Included in this article is use of the new `is-base` field name recently added in link:https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.47.0.txt[Git 2.47.0]. + From 40b3b5158983e26f82a3bdfdf2d0edbe1ae4ca37 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 27 Oct 2024 04:27:19 +0100 Subject: [PATCH 015/336] rn-116: add releases --- rev_news/drafts/edition-116.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 3ab275b48..204956278 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -208,6 +208,31 @@ __Git tools and sites__ ## Releases ++ Git [2.47.0](https://public-inbox.org/git/xmqqa5fg9bsz.fsf@gitster.g/), +[2.47.0-rc1](https://public-inbox.org/git/xmqqploiphj3.fsf@gitster.g/) ++ Git for Windows [2.47.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.47.0.windows.2), +[2.47.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.47.0.windows.1), +[2.47.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.47.0-rc1.windows.1) ++ libgit2 [1.8.3](https://github.com/libgit2/libgit2/releases/tag/v1.8.3) ++ GitLab [17.5.1, 17.4.3, 17.3.6](https://about.gitlab.com/releases/2024/10/23/patch-release-gitlab-17-5-1-released/) +[17.5](https://about.gitlab.com/releases/2024/10/17/gitlab-17-5-released/), +[17.4.2, 17.3.5, 17.2.9](https://about.gitlab.com/releases/2024/10/09/patch-release-gitlab-17-4-2-released/) ++ Gerrit Code Review [3.10.2](https://www.gerritcodereview.com/3.10.html#3102), +[3.8.9](https://www.gerritcodereview.com/3.8.html#389), +[3.9.7](https://www.gerritcodereview.com/3.9.html#397) ++ GitHub Enterprise [3.14.2](https://help.github.com/enterprise-server@3.14/admin/release-notes#3.14.2), +[3.13.5](https://help.github.com/enterprise-server@3.13/admin/release-notes#3.13.5), +[3.12.10](https://help.github.com/enterprise-server@3.12/admin/release-notes#3.12.10), +[3.11.16](https://help.github.com/enterprise-server@3.11/admin/release-notes#3.11.16) ++ GitKraken [10.4.1](https://help.gitkraken.com/gitkraken-client/current/), +[10.4.0](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.4.8](https://desktop.github.com/release-notes/), +[3.4.7](https://desktop.github.com/release-notes/), +[3.4.6](https://desktop.github.com/release-notes/) ++ Garden [1.9.0](https://github.com/garden-rs/garden/releases/tag/v1.9.0), +[1.8.0](https://github.com/garden-rs/garden/releases/tag/v1.8.0) ++ GitButler [0.13.7](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.13.7), +[0.13.6](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.13.6) ## Credits From 768ab37a2d9a99dc164677df59089fa225021646 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 30 Oct 2024 21:05:00 +0100 Subject: [PATCH 016/336] rn-116: add Git and 'grep -q' article --- rev_news/drafts/edition-116.md | 69 +++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 204956278..b8b43c135 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -25,10 +25,75 @@ This edition covers what happened during the months of September 2024 and Octobe ### Reviews --> - +* [fatal from submodule status --recursive when used with grep -q](https://lore.kernel.org/git/CAKDm0rNaHbzoiPg=DeuCoxzooNAsxw2BJfc0wg7fC_-=o9uJ7w@mail.gmail.com/) + + Matt Liberty reported that when he tried using + `git submodule status --recursive | grep -q "^+"` on a repo with + a submodule, he got an error message like "fatal: failed to recurse + into submodule XXX", where XXX is the name of the submodule. + + He expected no error message, no output and a 0 exit code from the + whole command line as it should have succeeded. He guessed that Git + didn't like that `grep` when used with `-q` exits immediately + (without printing anything) when there is a match. + + Phillip Wood replied to Matt saying he assumed that `grep`'s exit + broke the pipe between `git` and `grep`, so `git` received a + 'SIGPIPE' signal which killed it. Phillip suggested consuming the + whole output from Git if the exit code from it was wanted. + + Matt replied to Phillip that he was interested in the exit code from + `grep` not from `git` and that Git shouldn't output any error when + its output is connected to a pipe that gets broken, in the same way + as the `yes` command, for example, doesn't output any error when + piped to `grep -q y`. + + Junio Hamano, the Git maintainer, also replied to Phillip's first + message that the error Git emitted in such a case wasn't useful to + the user. + + Matt replied to Junio that he thought no error at all should be + emitted as most Unix tools don't output any error. + + Then Phillip replied to Matt's first reply to him. He asked if all + Matt wanted was that `git submodule status` did not print any error + message when it receives a SIGPIPE signal. Matt replied that he + wanted both no error message and a 0 exit code from it. + + Junio replied to Matt that it was reasonable to ask for no error + message, but it should be OK if the exit code was related to the + SIGPIPE message that the Git command received and that killed + it. Junio used the example that even `yes` exited with code 130 when + killed using the Control-C keys on a terminal. + + The exit code associated with a signal is '128 + the signal number', + for example as the Control-C keys send a SIGINT signal, which signal + number is 2, processes killed this way should exit with code '128 + 2', + so 130. + + Eric Sunshine replied to Junio that it wasn't clear how the exit + code from Git was important in the discussion as in the original + command line, Git appears before the pipe, so its exit code might be + lost. + + Matt replied to Eric that the exit code mattered if the `pipefail` + shell option was used. + + Phillip replied to Matt suggesting he remap the exit code + associated with SIGPIPE, which is 141 (128 + 13) to 0, if he was + using `pipefail` but still wanted a 0 exit code. Phillip also gave + an example shell function to help with that remapping, and sent + [a first version of a patch](https://lore.kernel.org/git/pull.1799.git.1726837642511.gitgitgadget@gmail.com/) + to fix the error message. + + Junio reviewed that patch and found that it was unnecessarily + including the "signal.h" system header. + + Phillip fixed that issue in + [version 2 of the patch](https://lore.kernel.org/git/pull.1799.v2.git.1726925150113.gitgitgadget@gmail.com/) + which was merged and part of Git v2.47.0. ## Developer Spotlight: Chandra Pratap From 079a323e4a7592c720ae7f0b078420cfdd8e80e1 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Fri, 1 Nov 2024 00:09:05 +0100 Subject: [PATCH 017/336] Supplied a really tiny amount of spelling and formatting corrections. --- rev_news/drafts/edition-116.md | 42 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index b8b43c135..c9ed5a216 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -13,7 +13,7 @@ Welcome to the 116th edition of [Git Rev News](https://git.github.io/rev_news/re 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 2024 and October 2024. +This edition covers what happened during the months of September and October 2024. ## Discussions @@ -27,7 +27,7 @@ This edition covers what happened during the months of September 2024 and Octobe ### Support -* [fatal from submodule status --recursive when used with grep -q](https://lore.kernel.org/git/CAKDm0rNaHbzoiPg=DeuCoxzooNAsxw2BJfc0wg7fC_-=o9uJ7w@mail.gmail.com/) +* [fatal from `submodule status --recursive` when used with `grep -q`](https://lore.kernel.org/git/CAKDm0rNaHbzoiPg=DeuCoxzooNAsxw2BJfc0wg7fC_-=o9uJ7w@mail.gmail.com/) Matt Liberty reported that when he tried using `git submodule status --recursive | grep -q "^+"` on a repo with @@ -41,11 +41,11 @@ This edition covers what happened during the months of September 2024 and Octobe Phillip Wood replied to Matt saying he assumed that `grep`'s exit broke the pipe between `git` and `grep`, so `git` received a - 'SIGPIPE' signal which killed it. Phillip suggested consuming the + `SIGPIPE` signal which killed it. Phillip suggested consuming the whole output from Git if the exit code from it was wanted. Matt replied to Phillip that he was interested in the exit code from - `grep` not from `git` and that Git shouldn't output any error when + `grep`, not from `git`, and that Git shouldn't output any error when its output is connected to a pipe that gets broken, in the same way as the `yes` command, for example, doesn't output any error when piped to `grep -q y`. @@ -59,17 +59,17 @@ This edition covers what happened during the months of September 2024 and Octobe Then Phillip replied to Matt's first reply to him. He asked if all Matt wanted was that `git submodule status` did not print any error - message when it receives a SIGPIPE signal. Matt replied that he + message when it receives a `SIGPIPE` signal. Matt replied that he wanted both no error message and a 0 exit code from it. Junio replied to Matt that it was reasonable to ask for no error message, but it should be OK if the exit code was related to the - SIGPIPE message that the Git command received and that killed + `SIGPIPE` message that the Git command received and that killed it. Junio used the example that even `yes` exited with code 130 when killed using the Control-C keys on a terminal. The exit code associated with a signal is '128 + the signal number', - for example as the Control-C keys send a SIGINT signal, which signal + for example as the Control-C keys send a `SIGINT` signal, which signal number is 2, processes killed this way should exit with code '128 + 2', so 130. @@ -82,7 +82,7 @@ This edition covers what happened during the months of September 2024 and Octobe shell option was used. Phillip replied to Matt suggesting he remap the exit code - associated with SIGPIPE, which is 141 (128 + 13) to 0, if he was + associated with `SIGPIPE`, which is 141 (128 + 13), to 0, if he was using `pipefail` but still wanted a 0 exit code. Phillip also gave an example shell function to help with that remapping, and sent [a first version of a patch](https://lore.kernel.org/git/pull.1799.git.1726837642511.gitgitgadget@gmail.com/) @@ -114,23 +114,23 @@ _Editor's note: Just like in our previous edition, we return with another C was the first programming language that I learnt, and I wanted to try working on a non-trivial software project. I watched a YouTube - video on open-source and that’s where I got the idea of looking for + video on open source and that’s where I got the idea of looking for open-source projects to contribute to. Git and VLC were the only open-source C-written software that I was familiar with and used in day-to-day life, so I decided to start contributing to Git out of the two. - By the time GSoC came around, Git was the only open-source + By the time GSoC came around, Git was the only open source community that I was familiar with, so I decided to choose it as my GSoC organization. * How do you feel your contribution has impacted the Git community - or the broader open-source ecosystem? + or the broader open source ecosystem? [My project](https://summerofcode.withgoogle.com/programs/2024/projects/tlh611d7) was about moving and improving reftable tests, so I think my contributions made life somewhat easier for other Git hackers, - especially those that frequent the reftable sub-project. My project + especially those who frequent the reftable sub-project. My project didn’t really affect any user-facing aspect of Git, so I don’t think it had - a huge impact on the broader open-source ecosystem, besides the + a huge impact on the broader open source ecosystem, besides the fact that it gained another lifelong contributor. * Is there any aspect of Git that you now see differently after having @@ -140,8 +140,8 @@ _Editor's note: Just like in our previous edition, we return with another my project completely changed my mental model for the tool. Before GSoC, Git was a clunky tool reserved for software development work but post-Git, I know the most frequent commands like the back of my - hand, and I’ve already used Git to version control many of my non - software files. I feel like I’ve learnt enough Git to last my entire career. + hand, and I’ve already used Git to version control many of my non-software + files. I feel like I’ve learnt enough Git to last my entire career. * How do you balance your contributions with other responsibilities like work or school? @@ -149,8 +149,8 @@ _Editor's note: Just like in our previous edition, we return with another I had summer vacation for the entire duration of GSoC and no other work commitments, so I had no problems finding time for my GSoC project. -* Can you share how GSoC helped enhance your technical and non - technical skills (like communication, project management, etc.)? +* Can you share how GSoC helped enhance your technical and non-technical + skills (like communication, project management, etc.)? In terms of technical skills, I think my C and Git skills saw the biggest jump. I am a lot more comfortable working with those two tools than when I @@ -195,7 +195,7 @@ _Editor's note: Just like in our previous edition, we return with another The [Git GUI](https://git-scm.com/docs/git-gui) tool. I believe that would make Git far more accessible than it currently is and get it - incorporated in a lot more people’s day-to-day works. + incorporated in a lot more peoples’ day-to-day works. * If you could remove something from Git without worrying about backwards compatibility, what would it be? @@ -212,7 +212,7 @@ _Editor's note: Just like in our previous edition, we return with another * What is your toolbox for interacting with the mailing list and for development of Git? - I used git’s `send-email` to send patches to the mailing list (especially + I used Git’s `send-email` to send patches to the mailing list (especially the `--compose` and `--annotate` flags) and Gmail’s online client to convey non-patch mails. For developing Git, I used Vim as the editor on an Ubuntu machine and Git as the version control software (duh). @@ -232,7 +232,7 @@ _Editor's note: Just like in our previous edition, we return with another Go through Git’s [‘My First Contribution tutorial’](https://git-scm.com/docs/MyFirstContribution) for the initial setup and to get an idea of what’s it like to work on Git. Then work on a few ‘microprojects’ ([more information on - the Git Developer's website](https://git.github.io/General-Microproject-Information/) ) + the Git Developer's website](https://git.github.io/General-Microproject-Information/)) to dip your toes in the Git Development community. From there, you can figure out interesting stuff to work on by yourself. @@ -241,7 +241,7 @@ _Editor's note: Just like in our previous edition, we return with another have advice for them? Yes. I believe that Git is a tool that every working professional can find - useful regardless of whether they work in the software industry or not + useful regardless of whether they work in the software industry or not, and working on Git through an open-source program is an excellent way to get good at it in a short period of time. There’s also the added benefit of joining a large and active community of amazingly experienced From c9d310293c0da44806b4e64cc33a83f52caedbc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Fri, 1 Nov 2024 05:07:14 +0100 Subject: [PATCH 018/336] rn-116: Add links to various news, articles, sites, and tools --- rev_news/drafts/edition-116.md | 80 +++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index c9ed5a216..0bb86d2fb 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -95,6 +95,7 @@ This edition covers what happened during the months of September and October 202 [version 2 of the patch](https://lore.kernel.org/git/pull.1799.v2.git.1726925150113.gitgitgadget@gmail.com/) which was merged and part of Git v2.47.0. + ## Developer Spotlight: Chandra Pratap _Editor's note: Just like in our previous edition, we return with another @@ -260,16 +261,93 @@ _Editor's note: Just like in our previous edition, we return with another ## Other News __Various__ ++ [Highlights from Git 2.47](https://github.blog/open-source/git/highlights-from-git-2-47/) + by Taylor Blau on GitHub Blog. Those include features like incremental multi-pack indexes, + `%(is-base:)` atom for `git for-each-ref`, + “[Platform Support Policy](https://github.com/git/git/blob/v2.47.0/Documentation/technical/platform-support.txt)” document, + `git mergetool` directly supporting Visual Studio Code merge tool, and others. ++ [What's new in Git 2.47.0?](https://about.gitlab.com/blog/2024/10/07/whats-new-in-git-2-47-0/) + by Justin Tobler on GitLab Blog. Highlights include + `init.defaultRefFormat` configuration option that can be set to use `reftable` backend + (see [Beginner's guide to the Git reftable format](https://about.gitlab.com/blog/2024/05/30/a-beginners-guide-to-the-git-reftable-format/)), + `init.defaultObjectFormat` configuration option that can be set to `sha256`, + `git refs verify`, and others. ++ Tower is running [Git GUIs User's Survey](https://gittower.typeform.com/git-survey) + for people who do not 100% of the time use Git in the terminal. __Light reading__ ++ [How Typefully Uses Tower [Git GUI Client] to Conquer Social Media Publishing](https://www.git-tower.com/blog/how-typefully-uses-tower) + by Bruno Brito on Tower Blog. ++ [Moving all our Python code to a monorepo: pytendi](https://attendi.nl/moving-all-our-python-code-to-a-monorepo-pytendi/). ++ [Bruno — An API Client Using Git to Fight for Developer Experience](https://www.git-tower.com/blog/bruno-api-client-using-git/) + by Ryan Reynolds on Tower Blog. ++ [Using Git as Your Personal To-Do List](https://dev.to/munemprionto/using-git-as-your-personal-to-do-list-3kkd) + by Munem Prionto on DEV\.to - more as a way of learning Git by the way of managing + a TODO list, rather than for practical reasons. + + Contrast with [Using Git to Manage Todos](https://jezenthomas.com/2015/10/using-git-to-manage-todos/ + by Jezen Thomas (2015), mentioned in [Git Rev News Edition #](https://git.github.io/rev_news/2015/11/11/edition-9/), + which is about using Git to help manage TODO or FIXME comments in the codebase + (assuming that for example your IDE does not have plugin for managing TODOs). + + One can also consider using a CLI tool that stores data in plain text files + for managing TODOs, like [Taskwarrior](https://taskwarrior.org/). Plain text + files work well with Git. + ++ [Python PGP proposal poses packaging puzzles](https://lwn.net/Articles/993787/) + by Joe Brockmeier on LWN\.net - [Sigstore](https://docs.sigstore.dev/) vs [OpenPGP](https://www.openpgp.org/). + Sigstore was mentioned in [Git Rev News Edition #91](https://git.github.io/rev_news/2022/09/30/edition-91/) + and [#111](https://git.github.io/rev_news/2024/05/31/edition-111/). ++ [A look at the aerc mail client](https://lwn.net/Articles/993498/) + by Joe Brockmeier on LWN\.net. -__Git tools and sites__ +__Scientific papers__ ++ Tsukasa Yagi, Shinpei Hayashi: _"Toward Interactive Optimization of Source Code Differences: + An Empirical Study of Its Performance"_, + [arXiv:2409.13590]((https://arxiv.org/abs/2409.13590)), + with dataset at (but no source code). + + based on a prior study: + Nugroho, et al.: _"How different are different diff algorithms in Git?: + Use --histogram for code changes"_ (2019), + +__Git tools and sites__ ++ [Reviewing git contributions via email](https://git-am.io/) () + is a companion piece to [interactive guide on sending patches with git send-email](https://git-send-email.io/) + () - which guide was mentioned in + [Git Rev News Edition #50](https://git.github.io/rev_news/2019/04/26/edition-50/) + [#68](https://git.github.io/rev_news/2020/10/30/edition-68/), and + [#92](https://git.github.io/rev_news/2022/10/26/edition-92/). ++ ["Data Management" section of Awesome MLOps](https://github.com/kelvins/awesome-mlops#data-management) + include also tools related to versioning data like + + [Dolt](https://github.com/dolthub/dolt) ([Git Rev News #62](https://git.github.io/rev_news/2020/04/23/edition-62/)), + + [DVC](https://dvc.org/) (first mentioned in [Git Rev News #42](https://git.github.io/rev_news/2018/08/22/edition-42/), + then in [#63](https://git.github.io/rev_news/2020/05/28/edition-63/), + [#64](https://git.github.io/rev_news/2020/06/25/edition-64/), + [#100](https://git.github.io/rev_news/2023/06/30/edition-100/), + [#107](https://git.github.io/rev_news/2024/01/31/edition-107/), and + [#113](https://git.github.io/rev_news/2024/07/31/edition-113/), + among others), + + [Dud](https://kevin-hanselman.github.io/dud/), improving on DVC, but with narrowed scope, + + [Intake](https://intake.readthedocs.io/) ([Git Rev News #96](https://git.github.io/rev_news/2023/02/28/edition-96/)), + + See also the discussion in issue #337 in Intake repository: + [Data versioning/validation: Comparing Intake with DVC, Quilt and Great Expectations](https://github.com/intake/intake/issues/337) + + [lakeFS](https://lakefs.io/) ([Git Rev News #78](https://git.github.io/rev_news/2021/08/31/edition-78/)), + + [Quilt](https://www.quiltdata.com/) / [Quilt Data](https://www.quiltdata.com/) + ([Git Rev News #99](https://git.github.io/rev_news/2023/05/31/edition-99/)). ++ [git-task](https://github.com/jhspetersson/git-task) is + a local-first task manager/bug tracker that stores everything within your git repository, + and which can sync issues to/from GitHub or GitLab. + Written in Rust, under MIT license. ++ [Bruno](https://www.usebruno.com/) is fast and Git-friendly opensource API client, + similar to Postman, Insomnia and similar tools. It stores collections directly + in a folder on your filesystem, in a plain text markup language, Bru. + + Compare with [Simple Web Application Test (SWAT)](https://github.com/melezhik/swat), + web application oriented testing framework, with test plan stored as plain text files + in specially named directories. ## Releases From 3dbc00f1ce193db3aa254a8f051f4d6e46b0c220 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Fri, 1 Nov 2024 08:51:42 +0100 Subject: [PATCH 019/336] rn-116: minor copy edit I'm also overriding some previous edits, so perhaps some explanation is in order: 1. 079a323e4a75 changed some 'open-source' to 'open source', but not all and not consistently. Standard English uses dashed forms for adjectives and non-dashed forms for nouns; follow that rule. 2. 079a323e4a75 changed "people's" to "peoples'", which is not correct here (it would imply a number of ethnic groups is meant, but that's not the case); restore the original. (As an aside, personally I tend to leave the interviews alone beyond obvious typos, as I consider the language idiosyncrasies part of the glimpse into an interviewee's personality.) --- rev_news/drafts/edition-116.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 0bb86d2fb..ef90b3011 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -69,7 +69,7 @@ This edition covers what happened during the months of September and October 202 killed using the Control-C keys on a terminal. The exit code associated with a signal is '128 + the signal number', - for example as the Control-C keys send a `SIGINT` signal, which signal + for example as the Control-C keys send a `SIGINT` signal, whose signal number is 2, processes killed this way should exit with code '128 + 2', so 130. @@ -119,19 +119,19 @@ _Editor's note: Just like in our previous edition, we return with another open-source projects to contribute to. Git and VLC were the only open-source C-written software that I was familiar with and used in day-to-day life, so I decided to start contributing to Git out of the two. - By the time GSoC came around, Git was the only open source + By the time GSoC came around, Git was the only open-source community that I was familiar with, so I decided to choose it as my GSoC organization. * How do you feel your contribution has impacted the Git community - or the broader open source ecosystem? + or the broader open-source ecosystem? [My project](https://summerofcode.withgoogle.com/programs/2024/projects/tlh611d7) was about moving and improving reftable tests, so I think my contributions made life somewhat easier for other Git hackers, especially those who frequent the reftable sub-project. My project didn’t really affect any user-facing aspect of Git, so I don’t think it had - a huge impact on the broader open source ecosystem, besides the + a huge impact on the broader open-source ecosystem, besides the fact that it gained another lifelong contributor. * Is there any aspect of Git that you now see differently after having @@ -196,7 +196,7 @@ _Editor's note: Just like in our previous edition, we return with another The [Git GUI](https://git-scm.com/docs/git-gui) tool. I believe that would make Git far more accessible than it currently is and get it - incorporated in a lot more peoples’ day-to-day works. + incorporated in a lot more people’s day-to-day works. * If you could remove something from Git without worrying about backwards compatibility, what would it be? @@ -262,7 +262,7 @@ _Editor's note: Just like in our previous edition, we return with another __Various__ + [Highlights from Git 2.47](https://github.blog/open-source/git/highlights-from-git-2-47/) - by Taylor Blau on GitHub Blog. Those include features like incremental multi-pack indexes, + by Taylor Blau on GitHub Blog. Includes features like incremental multi-pack indexes, `%(is-base:)` atom for `git for-each-ref`, “[Platform Support Policy](https://github.com/git/git/blob/v2.47.0/Documentation/technical/platform-support.txt)” document, `git mergetool` directly supporting Visual Studio Code merge tool, and others. @@ -272,7 +272,7 @@ __Various__ (see [Beginner's guide to the Git reftable format](https://about.gitlab.com/blog/2024/05/30/a-beginners-guide-to-the-git-reftable-format/)), `init.defaultObjectFormat` configuration option that can be set to `sha256`, `git refs verify`, and others. -+ Tower is running [Git GUIs User's Survey](https://gittower.typeform.com/git-survey) ++ Tower is running a [Git GUIs User's Survey](https://gittower.typeform.com/git-survey) for people who do not 100% of the time use Git in the terminal. @@ -288,7 +288,7 @@ __Light reading__ + Contrast with [Using Git to Manage Todos](https://jezenthomas.com/2015/10/using-git-to-manage-todos/ by Jezen Thomas (2015), mentioned in [Git Rev News Edition #](https://git.github.io/rev_news/2015/11/11/edition-9/), which is about using Git to help manage TODO or FIXME comments in the codebase - (assuming that for example your IDE does not have plugin for managing TODOs). + (assuming that for example your IDE does not have a plugin for managing TODOs). + One can also consider using a CLI tool that stores data in plain text files for managing TODOs, like [Taskwarrior](https://taskwarrior.org/). Plain text files work well with Git. @@ -317,12 +317,12 @@ __Scientific papers__ __Git tools and sites__ + [Reviewing git contributions via email](https://git-am.io/) () is a companion piece to [interactive guide on sending patches with git send-email](https://git-send-email.io/) - () - which guide was mentioned in + (); the latter was mentioned in [Git Rev News Edition #50](https://git.github.io/rev_news/2019/04/26/edition-50/) [#68](https://git.github.io/rev_news/2020/10/30/edition-68/), and [#92](https://git.github.io/rev_news/2022/10/26/edition-92/). + ["Data Management" section of Awesome MLOps](https://github.com/kelvins/awesome-mlops#data-management) - include also tools related to versioning data like + also includes tools related to versioning data like + [Dolt](https://github.com/dolthub/dolt) ([Git Rev News #62](https://git.github.io/rev_news/2020/04/23/edition-62/)), + [DVC](https://dvc.org/) (first mentioned in [Git Rev News #42](https://git.github.io/rev_news/2018/08/22/edition-42/), then in [#63](https://git.github.io/rev_news/2020/05/28/edition-63/), @@ -333,7 +333,7 @@ __Git tools and sites__ among others), + [Dud](https://kevin-hanselman.github.io/dud/), improving on DVC, but with narrowed scope, + [Intake](https://intake.readthedocs.io/) ([Git Rev News #96](https://git.github.io/rev_news/2023/02/28/edition-96/)), - + See also the discussion in issue #337 in Intake repository: + + See also the discussion in issue #337 in the Intake repository: [Data versioning/validation: Comparing Intake with DVC, Quilt and Great Expectations](https://github.com/intake/intake/issues/337) + [lakeFS](https://lakefs.io/) ([Git Rev News #78](https://git.github.io/rev_news/2021/08/31/edition-78/)), + [Quilt](https://www.quiltdata.com/) / [Quilt Data](https://www.quiltdata.com/) @@ -342,9 +342,9 @@ __Git tools and sites__ a local-first task manager/bug tracker that stores everything within your git repository, and which can sync issues to/from GitHub or GitLab. Written in Rust, under MIT license. -+ [Bruno](https://www.usebruno.com/) is fast and Git-friendly opensource API client, ++ [Bruno](https://www.usebruno.com/) is a fast and Git-friendly open-source API client, similar to Postman, Insomnia and similar tools. It stores collections directly - in a folder on your filesystem, in a plain text markup language, Bru. + in a folder on your filesystem in a plain text markup language, Bru. + Compare with [Simple Web Application Test (SWAT)](https://github.com/melezhik/swat), web application oriented testing framework, with test plan stored as plain text files in specially named directories. @@ -357,7 +357,7 @@ __Git tools and sites__ [2.47.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.47.0.windows.1), [2.47.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.47.0-rc1.windows.1) + libgit2 [1.8.3](https://github.com/libgit2/libgit2/releases/tag/v1.8.3) -+ GitLab [17.5.1, 17.4.3, 17.3.6](https://about.gitlab.com/releases/2024/10/23/patch-release-gitlab-17-5-1-released/) ++ GitLab [17.5.1, 17.4.3, 17.3.6](https://about.gitlab.com/releases/2024/10/23/patch-release-gitlab-17-5-1-released/), [17.5](https://about.gitlab.com/releases/2024/10/17/gitlab-17-5-released/), [17.4.2, 17.3.5, 17.2.9](https://about.gitlab.com/releases/2024/10/09/patch-release-gitlab-17-4-2-released/) + Gerrit Code Review [3.10.2](https://www.gerritcodereview.com/3.10.html#3102), From 516e6661b69e73b734f1815a9396898fffa6b519 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Fri, 1 Nov 2024 09:50:10 +0100 Subject: [PATCH 020/336] rn-116: Minuscule fixes --- rev_news/drafts/edition-116.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 0bb86d2fb..e46b85a03 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -263,7 +263,7 @@ _Editor's note: Just like in our previous edition, we return with another __Various__ + [Highlights from Git 2.47](https://github.blog/open-source/git/highlights-from-git-2-47/) by Taylor Blau on GitHub Blog. Those include features like incremental multi-pack indexes, - `%(is-base:)` atom for `git for-each-ref`, + `%(is-base:)` atom for `git for-each-ref`, “[Platform Support Policy](https://github.com/git/git/blob/v2.47.0/Documentation/technical/platform-support.txt)” document, `git mergetool` directly supporting Visual Studio Code merge tool, and others. + [What's new in Git 2.47.0?](https://about.gitlab.com/blog/2024/10/07/whats-new-in-git-2-47-0/) @@ -286,7 +286,7 @@ __Light reading__ by Munem Prionto on DEV\.to - more as a way of learning Git by the way of managing a TODO list, rather than for practical reasons. + Contrast with [Using Git to Manage Todos](https://jezenthomas.com/2015/10/using-git-to-manage-todos/ - by Jezen Thomas (2015), mentioned in [Git Rev News Edition #](https://git.github.io/rev_news/2015/11/11/edition-9/), + by Jezen Thomas (2015), mentioned in [Git Rev News Edition #9](https://git.github.io/rev_news/2015/11/11/edition-9/), which is about using Git to help manage TODO or FIXME comments in the codebase (assuming that for example your IDE does not have plugin for managing TODOs). + One can also consider using a CLI tool that stores data in plain text files @@ -309,9 +309,9 @@ __Scientific papers__ An Empirical Study of Its Performance"_, [arXiv:2409.13590]((https://arxiv.org/abs/2409.13590)), with dataset at (but no source code). - + based on a prior study: + + based on a prior study: Nugroho, et al.: _"How different are different diff algorithms in Git?: - Use --histogram for code changes"_ (2019), + Use --histogram for code changes"_ (2019), __Git tools and sites__ From 8dd990507fe1b7b8d6de889fdba4ad62e8ec0b62 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Fri, 1 Nov 2024 17:37:49 +0100 Subject: [PATCH 021/336] Removed a solitary boldface mark for "Git". --- rev_news/drafts/edition-116.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 6ed2ff70a..c2ff9d44d 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -342,7 +342,7 @@ __Git tools and sites__ a local-first task manager/bug tracker that stores everything within your git repository, and which can sync issues to/from GitHub or GitLab. Written in Rust, under MIT license. -+ [Bruno](https://www.usebruno.com/) is a fast and Git-friendly open-source API client, ++ [Bruno](https://www.usebruno.com/) is a fast and Git-friendly open-source API client, similar to Postman, Insomnia and similar tools. It stores collections directly in a folder on your filesystem in a plain text markup language, Bru. + Compare with [Simple Web Application Test (SWAT)](https://github.com/melezhik/swat), From f17eb03e5eda55588913f77c004714a070d1b441 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 21:42:07 +0100 Subject: [PATCH 022/336] rn-116: add links suggested by Brandon Pugh --- rev_news/drafts/edition-116.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index d656a1366..ccd7eeca8 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -303,6 +303,13 @@ __Light reading__ + [Git For Each Ref](https://alchemists.io/articles/git_for_each_ref) by Brooke Kuhlmann. Learn how to use this command to make use of references for information dumping, statistcs, and much more. Included in this article is use of the new `is-base` field name recently added in link:https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.47.0.txt[Git 2.47.0]. ++ [Searching for and navigating Git commits](https://alexharri.com/blog/searching-and-navigating-git-commits) + by Alex Harri. ++ [Why some of us like "interdiff" code review](https://gist.github.com/thoughtpolice/9c45287550a56b2047c6311fbadebed2) + by Austin Seipp. ++ [How I Review GitHub PRs](https://www.bitquabit.com/post/how-i-do-github-prs/) + by Benjamin Pollack. + From 36a0dea4bcdc4e851d9790b351989cc0359d23df Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 21:42:53 +0100 Subject: [PATCH 023/336] rn-116: add Brandon Pugh among the helpers --- rev_news/drafts/edition-116.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index ccd7eeca8..c2cdc8c66 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -394,4 +394,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Brandon Pugh. From 76a8ce4b57822ee94c357e29bc5417af2dba52a8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 21:43:46 +0100 Subject: [PATCH 024/336] rn-116: add Chandra Pratap among the helpers --- rev_news/drafts/edition-116.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index c2cdc8c66..57b86bf0a 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -394,4 +394,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Brandon Pugh. +with help from Chandra Pratap and Brandon Pugh. From ca35c815bbd529341b3686b01254142249b513e0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 21:50:09 +0100 Subject: [PATCH 025/336] rn-116: add Brooke Kuhlmann among the helpers --- rev_news/drafts/edition-116.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 57b86bf0a..7daadf60f 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -394,4 +394,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Chandra Pratap and Brandon Pugh. +with help from Chandra Pratap, Brooke Kuhlmann and Brandon Pugh. From df27b55e27757512865b1ecc57d17422d787e4ef Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 21:52:34 +0100 Subject: [PATCH 026/336] =?UTF-8?q?rn-116:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rev_news/drafts/edition-116.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 7daadf60f..dc2f6ac1f 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -394,4 +394,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Chandra Pratap, Brooke Kuhlmann and Brandon Pugh. +with help from Chandra Pratap, Brooke Kuhlmann, +Štěpán Němec and Brandon Pugh. From 0edf97285742496dd750b86fb4d7aa1e89bf44de Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 21:59:25 +0100 Subject: [PATCH 027/336] rn-116: add latest releases --- rev_news/drafts/edition-116.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index dc2f6ac1f..40bc28de5 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -366,7 +366,8 @@ __Git tools and sites__ + Git for Windows [2.47.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.47.0.windows.2), [2.47.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.47.0.windows.1), [2.47.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.47.0-rc1.windows.1) -+ libgit2 [1.8.3](https://github.com/libgit2/libgit2/releases/tag/v1.8.3) ++ libgit2 [1.8.4](https://github.com/libgit2/libgit2/releases/tag/v1.8.4), +[1.8.3](https://github.com/libgit2/libgit2/releases/tag/v1.8.3) + GitLab [17.5.1, 17.4.3, 17.3.6](https://about.gitlab.com/releases/2024/10/23/patch-release-gitlab-17-5-1-released/), [17.5](https://about.gitlab.com/releases/2024/10/17/gitlab-17-5-released/), [17.4.2, 17.3.5, 17.2.9](https://about.gitlab.com/releases/2024/10/09/patch-release-gitlab-17-4-2-released/) @@ -384,7 +385,9 @@ __Git tools and sites__ [3.4.6](https://desktop.github.com/release-notes/) + Garden [1.9.0](https://github.com/garden-rs/garden/releases/tag/v1.9.0), [1.8.0](https://github.com/garden-rs/garden/releases/tag/v1.8.0) -+ GitButler [0.13.7](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.13.7), ++ git-credential-oauth [0.13.3](https://github.com/hickford/git-credential-oauth/releases/tag/v0.13.3) ++ GitButler [0.13.8](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.13.8), +[0.13.7](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.13.7), [0.13.6](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.13.6) ## Credits From 36edbf521bc5d8da9a4504885c1c3092b74ae1a8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 22:03:06 +0100 Subject: [PATCH 028/336] rn-116: fix link to Git 2.47.0 release notes --- rev_news/drafts/edition-116.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-116.md b/rev_news/drafts/edition-116.md index 40bc28de5..b46adb2f2 100644 --- a/rev_news/drafts/edition-116.md +++ b/rev_news/drafts/edition-116.md @@ -301,7 +301,9 @@ __Light reading__ by Joe Brockmeier on LWN\.net. + [Git For Each Ref](https://alchemists.io/articles/git_for_each_ref) by Brooke Kuhlmann. Learn how - to use this command to make use of references for information dumping, statistcs, and much more. Included in this article is use of the new `is-base` field name recently added in link:https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.47.0.txt[Git 2.47.0]. + to use this command to make use of references for information dumping, statistcs, and much more. + Included in this article is use of the new `is-base` field name recently added in + [Git 2.47.0](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.47.0.txt). + [Searching for and navigating Git commits](https://alexharri.com/blog/searching-and-navigating-git-commits) by Alex Harri. From 4f477379a671d17383a103dffa1dc22933715740 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 22:07:15 +0100 Subject: [PATCH 029/336] Publish rn-116 in _posts/ --- .../edition-116.md => _posts/2024-10-31-edition-116.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-116.md => _posts/2024-10-31-edition-116.markdown (100%) diff --git a/rev_news/drafts/edition-116.md b/_posts/2024-10-31-edition-116.markdown similarity index 100% rename from rev_news/drafts/edition-116.md rename to _posts/2024-10-31-edition-116.markdown From 4c2405e3ebb5273edd3dd4ee7bc992f3c033a8df Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Nov 2024 22:07:15 +0100 Subject: [PATCH 030/336] Add draft for rn-117 --- rev_news/drafts/edition-117.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-117.md diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md new file mode 100644 index 000000000..cb853348d --- /dev/null +++ b/rev_news/drafts/edition-117.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 117 (November 30th, 2024) +layout: default +date: 2024-11-30 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 117 (November 30th, 2024) + +Welcome to the 117th 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 2024 and November 2024. + +## 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 9d868b17f561a7c0542f9c9d87466a85076042f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Fri, 1 Nov 2024 23:27:15 +0100 Subject: [PATCH 031/336] rn-116: Fixes, reordering; naming sources, adding descriptions --- _posts/2024-10-31-edition-116.markdown | 35 ++++++++++++++------------ 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/_posts/2024-10-31-edition-116.markdown b/_posts/2024-10-31-edition-116.markdown index b46adb2f2..cf7e813ee 100644 --- a/_posts/2024-10-31-edition-116.markdown +++ b/_posts/2024-10-31-edition-116.markdown @@ -263,8 +263,8 @@ _Editor's note: Just like in our previous edition, we return with another __Various__ + [Highlights from Git 2.47](https://github.blog/open-source/git/highlights-from-git-2-47/) by Taylor Blau on GitHub Blog. Includes features like incremental multi-pack indexes, - `%(is-base:)` atom for `git for-each-ref`, the new - “[Platform Support Policy](https://github.com/git/git/blob/v2.47.0/Documentation/technical/platform-support.txt)” document, + `%(is-base:)` atom for `git for-each-ref` (see also the [Brooke Kuhlmann article](https://alchemists.io/articles/git_for_each_ref), mentioned below), + the new “[Platform Support Policy](https://github.com/git/git/blob/v2.47.0/Documentation/technical/platform-support.txt)” document, `git mergetool` directly supporting Visual Studio Code merge tool, and others. + [What's new in Git 2.47.0?](https://about.gitlab.com/blog/2024/10/07/whats-new-in-git-2-47-0/) by Justin Tobler on GitLab Blog. Highlights include @@ -285,13 +285,28 @@ __Light reading__ + [Using Git as Your Personal To-Do List](https://dev.to/munemprionto/using-git-as-your-personal-to-do-list-3kkd) by Munem Prionto on DEV\.to - more as a way of learning Git by the way of managing a TODO list, rather than for practical reasons. - + Contrast with [Using Git to Manage Todos](https://jezenthomas.com/2015/10/using-git-to-manage-todos/ + + Contrast with [Using Git to Manage Todos](https://jezenthomas.com/2015/10/using-git-to-manage-todos/) by Jezen Thomas (2015), mentioned in [Git Rev News Edition #9](https://git.github.io/rev_news/2015/11/11/edition-9/), which is about using Git to help manage TODO or FIXME comments in the codebase (assuming that for example your IDE does not have a plugin for managing TODOs). + One can also consider using a CLI tool that stores data in plain text files for managing TODOs, like [Taskwarrior](https://taskwarrior.org/). Plain text files work well with Git. ++ [Git For Each Ref](https://alchemists.io/articles/git_for_each_ref) + by Brooke Kuhlmann in Alchemists Collective articles. + Learn how to use this command to make use of references + for information dumping, statistcs, and much more. + Included in this article is use of the new `is-base` field name recently added in + [Git 2.47.0](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.47.0.txt). ++ [Searching for and navigating Git commits](https://alexharri.com/blog/searching-and-navigating-git-commits) + by Alex Harri on his blog. ++ [Why some of us like "interdiff" code review](https://gist.github.com/thoughtpolice/9c45287550a56b2047c6311fbadebed2) + by Austin Seipp (a Gist). Describes problems with the UI of multi-commit GitHub Pull Requests + for responding to reviewer comments by provinding new version of patch series, + and how `git range-diff` and interactive rebase can help with this task. ++ [How I Review GitHub PRs](https://www.bitquabit.com/post/how-i-do-github-prs/) + by Benjamin Pollack on bitquabit. + + [Python PGP proposal poses packaging puzzles](https://lwn.net/Articles/993787/) by Joe Brockmeier on LWN\.net - [Sigstore](https://docs.sigstore.dev/) vs [OpenPGP](https://www.openpgp.org/). @@ -300,18 +315,6 @@ __Light reading__ + [A look at the aerc mail client](https://lwn.net/Articles/993498/) by Joe Brockmeier on LWN\.net. -+ [Git For Each Ref](https://alchemists.io/articles/git_for_each_ref) by Brooke Kuhlmann. Learn how - to use this command to make use of references for information dumping, statistcs, and much more. - Included in this article is use of the new `is-base` field name recently added in - [Git 2.47.0](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.47.0.txt). - -+ [Searching for and navigating Git commits](https://alexharri.com/blog/searching-and-navigating-git-commits) - by Alex Harri. -+ [Why some of us like "interdiff" code review](https://gist.github.com/thoughtpolice/9c45287550a56b2047c6311fbadebed2) - by Austin Seipp. -+ [How I Review GitHub PRs](https://www.bitquabit.com/post/how-i-do-github-prs/) - by Benjamin Pollack. - @@ -321,7 +324,7 @@ __Scientific papers__ An Empirical Study of Its Performance"_, [arXiv:2409.13590]((https://arxiv.org/abs/2409.13590)), with dataset at (but no source code). - + based on a prior study: + + It is based on a prior study: Nugroho, et al.: _"How different are different diff algorithms in Git?: Use --histogram for code changes"_ (2019), From f2596468266ce03a35ae034559d76e09c2d2bcd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Tue, 5 Nov 2024 15:51:59 +0100 Subject: [PATCH 032/336] rn-116: fix up the last-minute additions (typos, language) --- _posts/2024-10-31-edition-116.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2024-10-31-edition-116.markdown b/_posts/2024-10-31-edition-116.markdown index cf7e813ee..814a3e233 100644 --- a/_posts/2024-10-31-edition-116.markdown +++ b/_posts/2024-10-31-edition-116.markdown @@ -295,14 +295,14 @@ __Light reading__ + [Git For Each Ref](https://alchemists.io/articles/git_for_each_ref) by Brooke Kuhlmann in Alchemists Collective articles. Learn how to use this command to make use of references - for information dumping, statistcs, and much more. + for information dumping, statistics, and much more. Included in this article is use of the new `is-base` field name recently added in [Git 2.47.0](https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/2.47.0.txt). + [Searching for and navigating Git commits](https://alexharri.com/blog/searching-and-navigating-git-commits) by Alex Harri on his blog. + [Why some of us like "interdiff" code review](https://gist.github.com/thoughtpolice/9c45287550a56b2047c6311fbadebed2) by Austin Seipp (a Gist). Describes problems with the UI of multi-commit GitHub Pull Requests - for responding to reviewer comments by provinding new version of patch series, + for responding to reviewer comments by providing a new version of the patch series, and how `git range-diff` and interactive rebase can help with this task. + [How I Review GitHub PRs](https://www.bitquabit.com/post/how-i-do-github-prs/) by Benjamin Pollack on bitquabit. From 4a11acb669b4cde874318446ad7e67fa583851ed Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Wed, 27 Nov 2024 12:04:34 +0000 Subject: [PATCH 033/336] rn-117: Add Tower's latest releases for Mac and Windows --- rev_news/drafts/edition-117.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index cb853348d..193b5428b 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -49,6 +49,8 @@ __Git tools and sites__ ## Releases ++ Tower for Windows [8.0](https://www.git-tower.com/release-notes/windows?show_tab=release-notes), [8.1](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) ([Release blog post](https://www.git-tower.com/blog/tower-windows-8/)) ++ Tower for Mac [12.3](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) ## Credits From 008a630c356db521132520f18946116530c216fb Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 29 Nov 2024 11:57:18 +0100 Subject: [PATCH 034/336] Mentoring-Guide: change DCO url --- Mentoring-Program-Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index 89176a0c1..52d2b4796 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -444,7 +444,7 @@ below: - [Git's SubmittingPatches doc](https://github.com/git/git/blob/master/Documentation/SubmittingPatches) This documentation contains the - [Developer's Certificate of Origin, or DCO for short](https://github.com/git/git/blob/master/Documentation/SubmittingPatches#L227-L263), + [Developer's Certificate of Origin, or DCO for short](https://git-scm.com/docs/SubmittingPatches#sign-off), which you have to know about when contributing to Git. - [Git's license](https://github.com/git/git/blob/master/COPYING) From b9f9f7937861183fda8b9b8a9bfedc90782d2f33 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 29 Nov 2024 12:58:25 +0100 Subject: [PATCH 035/336] rn-117: add releases --- rev_news/drafts/edition-117.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 193b5428b..2c5c98410 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -49,6 +49,25 @@ __Git tools and sites__ ## Releases ++ Git [2.47.1](https://public-inbox.org/git/xmqq5xob6coo.fsf@gitster.g/) ++ Git for Windows [2.47.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.47.1.windows.1) ++ libgit2 [1.8.4](https://github.com/libgit2/libgit2/releases/tag/v1.8.4) ++ Gerrit Code Review [3.10.3](https://www.gerritcodereview.com/3.10.html#3103), +[3.8.10](https://www.gerritcodereview.com/3.8.html#3810), +[3.9.8](https://www.gerritcodereview.com/3.9.html#398) ++ GitHub Enterprise [3.15.0](https://help.github.com/enterprise-server@3.15/admin/release-notes#3.15.0) ++ GitLab [17.6.1](https://about.gitlab.com/releases/2024/11/26/patch-release-gitlab-17-6-1-released/), +[17.6](https://about.gitlab.com/releases/2024/11/21/gitlab-17-6-released/), +[17.5.2](https://about.gitlab.com/releases/2024/11/13/patch-release-gitlab-17-5-2-released/) ++ GitKraken [10.5.0](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.4.9](https://desktop.github.com/release-notes/) ++ Sourcetree [4.2.10](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.10.html), +[4.2.9](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.9.html) ++ Garden [1.9.1](https://github.com/garden-rs/garden/releases/tag/v1.9.1) ++ Git Cola [4.9.0](https://github.com/git-cola/git-cola/releases/tag/v4.9.0) ++ git-credential-oauth [0.13.4](https://github.com/hickford/git-credential-oauth/releases/tag/v0.13.4) ++ GitButler [0.14.0](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.0), +[0.13.17](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.13.17) + Tower for Windows [8.0](https://www.git-tower.com/release-notes/windows?show_tab=release-notes), [8.1](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) ([Release blog post](https://www.git-tower.com/blog/tower-windows-8/)) + Tower for Mac [12.3](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) From a6ddb00428dc02d65ac2ba0a3544fe9dbb353ed4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 29 Nov 2024 15:45:48 +0100 Subject: [PATCH 036/336] rn-117: add Bruno Brito among the helpers --- rev_news/drafts/edition-117.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 2c5c98410..74b0f756f 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -78,4 +78,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Bruno Brito. From 9de4976757d39ecdd4f6f1269f3a96f4769e9c53 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 29 Nov 2024 15:47:00 +0100 Subject: [PATCH 037/336] rn-117: remove useless mention of 2024 --- rev_news/drafts/edition-117.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 74b0f756f..7874bf134 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -13,7 +13,7 @@ Welcome to the 117th edition of [Git Rev News](https://git.github.io/rev_news/re 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 2024 and November 2024. +This edition covers what happened during the months of October and November 2024. ## Discussions From b1977fb85580cfdb70b8619dfee0c1b188312ddf Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 30 Nov 2024 06:34:36 +0100 Subject: [PATCH 038/336] rn-117: add article about dumb http bug --- rev_news/drafts/edition-117.md | 63 ++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 7874bf134..864295923 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -25,9 +25,68 @@ This edition covers what happened during the months of October and November 2024 ### Reviews --> - + ++ [Bug report: v2.47.0 cannot fetch version 1 pack indexes](https://lore.kernel.org/git/BA07EFA0-0793-420D-BED9-ACD7CEBE0112@townlong-yak.com/) + + Someone called 'fox' reported that when upgrading Git to v2.47.0 + from v2.46.2 or a previous version, cloning from their website, + which uses the old "dumb HTTP" protocol, stopped working. With + v2.47.0 there is an error message indicating that some index files + "differ in contents". + + Using `git bisect` fox found the commit that introduced the + issue. That commit implemented a check that verified that the index + file downloaded from the remote was byte-for-byte identical with the + index file generated locally from the Git objects downloaded as part + of the clone. + + That check failed because the remote had an index in the version 1 + format, while the locally generated index was in a more recent + format. And fox wondered if this was intentional. + + Eric Sunshine replied to fox that he could reproduce the problem. + + Jeff King, alias Peff, also replied to fox saying that the breakage + was not intended. He thought that it was better to rely on the + locally generated index, but that there should be no guarantee for + it to be identical to the one downloaded. + + Peff proposed a draft patch that discarded the downloaded version + before generating an index, but said it was hacky and didn't check + that the content was the same. So he suggested a better solution. + + He then proposed an improved draft patch, which implemented the + better solution he had suggested by marking the downloaded index as + temporary and then discarding it after a new one is generated. + + Taylor Blau, who was the temporary Git maintainer while Junio + Hamano, the usual maintainer, had some time off, replied to Eric and + fox in the meantime confirming it was an unintentional breakage, and + saying he was going to look at Peff's patches. + + Taylor then discussed with Peff the first draft patch and agreed + with Peff that the solution implemented in the improved draft patch + was better. + + So Taylor reviewed Peff's improved draft patch. He made some + comments but found it good, and asked Peff to add a test and to + propose it as a regular patch. + + Peff replied to Taylor's comments, proposed a draft test, and said + he was going to work on a proper patch as well as some cleanups and + refactors in the dumb HTTP code. + + Taylor found Peff's draft test "beautifully written". + + Peff then sent + [a series made of 11 patches](https://lore.kernel.org/git/20241025064148.GA2110169@coredump.intra.peff.net/) + to fix the issue, cleanup the dumb HTTP code and fix a couple of + other bugs or potential bugs he found in the process. + + Taylor reviewed the patch series and discussed a few technical + details with Peff. Overall he found the series good to go and + eventually merged it. + ++ [Doomed Keys and Hidden Threats: The Scariest Secrets in Your Repositories](https://blog.gitguardian.com/scary-secrets-2024/) + by Gaetan Ferry and + [The Extent of Hardcoded Secrets: From Development to Production](https://blog.gitguardian.com/the-extent-of-hardcoded-secrets-from-development-to-production/) + by Guillaume Valadon on GitGuardian Blog. + + __Git tools and sites__ ++ [GitFourchette](https://gitfourchette.org/) - The comfortable Git UI for Linux. + Under development; you can currenrly install it [with AppImage or from source](https://github.com/jorio/gitfourchette/releases). + Written in Python, using the Qt UI (via PyQt6/PySide6) and pygit2. Under GPLv3 license. ++ [Changesets](https://github.com/changesets/changesets) is a tool + to manage versioning and changelogs with a focus on multi-package repositories (monorepos). + Written in TypeScript, under MIT license. + + See [What is a Monorepo?](https://monorepo.tools/#what-is-a-monorepo) + definition on (this site was mentioned first in + [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/)). ++ [Beachball](https://microsoft.github.io/beachball/): The Sunniest Semantic Version Bumper. + Tool for automating npm publishing. + Written in TypeScript, under MIT license. ++ [git-sizer](https://github.com/github/git-sizer) is a tool that computes various size metrics + for a Git repository, flagging those that might cause problems. + Written in Go, under MIT license. + + This tool was mentioned in passing in + [Git Rev News Edition #37](https://git.github.io/rev_news/2018/03/21/edition-37/). ++ [git-remote-s3](https://github.com/awslabs/git-remote-s3) is a library + that enables you to use Amazon S3 as a git remote and as a LFS server.
+ It provides an implementation of a [git remote-helper](https://github.com/awslabs/git-remote-s3) + to use S3 (Amazon Simple Storage Service) as a serverless Git server, and + of the [git-lfs custom transfer](https://github.com/git-lfs/git-lfs/blob/main/docs/custom-transfers.md) + to enable pushing LFS managed files to the same S3 bucket used as remote. + Written in Python, under Apache 2.0 license. ++ [Mergiraf](https://mergiraf.org/) is a syntax-aware [git merge driver](https://git-scm.com/docs/gitattributes#_performing_a_three_way_merge) + (and a `mergiraf` command line tool that helps solving merge conflicts) + for a growing collection of programming languages and file formats. + Adding new language to Mergiraf is done in a declarative way. + Written in Rust, under GPLv3 license. + + The author recommends using Mergiraf together with [Difftastic](https://difftastic.wilfred.me.uk/), + a structural diff tool that understands syntax, mentioned in + [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/). ++ [Diffdiff.net](https://diffdiff.net/) (formerly diff.so) is a web application + that provides fast, [private](https://diffdiff.net/privacy) way to compare two pieces of text + in a "split diff"/"side diff" view, side by side with highlighting the text that is different + from the text on the other side. + + + ++ [DiffLens](https://www.difflens.com/) - The Developer's Diff Tool. + Provides language-aware semantic diffs for GitHub Pull Requests, + adding them as a comment to the pull request. + Available as the [GitHub app](https://github.com/marketplace/difflens) + or the [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=DiffLens.difflens). + Proprietary tool, with 14 days free trial, and [demo](https://www.difflensapp.com/difflensDemo2_849ca26f9ee09faa084cbdcdc90b6f90f8ce8495). + See above for possible alternatives. + ## Releases From f10de59f91bd43715bae42924ba72edbf6661805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sun, 1 Dec 2024 04:11:13 +0100 Subject: [PATCH 040/336] rn-117: Add link to the PatchScope tool --- rev_news/drafts/edition-117.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 45c41326a..42ce453fa 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -191,6 +191,13 @@ __Git tools and sites__ of the [git-lfs custom transfer](https://github.com/git-lfs/git-lfs/blob/main/docs/custom-transfers.md) to enable pushing LFS managed files to the same S3 bucket used as remote. Written in Python, under Apache 2.0 license. ++ [PatchScope](https://github.com/ncusi/PatchScope) is a tool that + annotates files and lines of diffs (patches) with their purpose and type, + and performs statistical analysis on diffs and on the generated annotation data. + It also includes a web app, displaying various data visualizations. + Written in Python, under MIT license. + + Its README includes the [list of similar tools and sites](https://github.com/ncusi/PatchScope/blob/main/README.md#related-projects), + many of which were mentioned here on Git Rev News. + [Mergiraf](https://mergiraf.org/) is a syntax-aware [git merge driver](https://git-scm.com/docs/gitattributes#_performing_a_three_way_merge) (and a `mergiraf` command line tool that helps solving merge conflicts) for a growing collection of programming languages and file formats. From 3616be0eed22f15385c60be90169aa97bfaa117a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 1 Dec 2024 12:20:29 +0530 Subject: [PATCH 041/336] rn-117: add interview with Ghanshyam Thakkar --- rev_news/drafts/edition-117.md | 135 ++++++++++++++++++++++++++++++++- 1 file changed, 132 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 42ce453fa..fdc4e894b 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -88,9 +88,138 @@ This edition covers what happened during the months of October and November 2024 details with Peff. Overall he found the series good to go and eventually merged it. - + +## Developer Spotlight: Ghanshyam Thakkar + +* Who are you and what do you do? + + I am Ghanshyam Thakkar. I was an undergrad student in Electronics + when I started contributing to Git. I am now a Software Engineer at a + startup. I sometimes contribute to open source projects in my free time, + and explore/learn new technologies. + +* How did you initially become interested in contributing to Git, + and what motivated you to choose it as your GSoC project? + + Before GSoC, I was quite familiar with the Linux ecosystem and it had + been my primary OS for the majority of my college years. And during + those times I felt Git was the most impactful project enabling the vastly + collaborative Linux Desktop Ecosystem. So, I felt like contributing + to Git would be a great opportunity to learn and contribute to a + project that had been so crucial to my everyday workflow. + +* How do you feel your contribution has impacted the Git community + or the broader open source ecosystem? + + Before my GSoC project, I had contributed some small patches, which + could be considered as bug fix, general code cleanup, expanding test + coverage, etc. Some of which can be observed in user-space. But my GSoC + project was about migrating Git's test suite to a purely C-based + test framework, which was not user-facing, however, was a step in the + right direction for the project as a whole. + +* Is there any aspect of Git that you now see differently after + having contributed to it? + + The mailing list workflow. Although, I was skeptical about it at first + because I had never used mailing lists before, I now see it as a very + effective way to communicate and collaborate on a project of such + massive scale. Although, I still am not a big fan of the all or nothing + nature of the mailing lists. Subscribing to mails of a specific area + would have been great. Although, I do understand that it can + probably be done with filtering using a script. + +* How do you balance your contributions with other responsibilities + like work or school? + + When I was contributing to Git as part of GSoC, I was a student and I + also had summer vacation, so it was quite easy for me to balance my + contributions with my personal life. However, now that I am quite busy with my + $DAYJOB, I don't have much bandwidth to contribute to open + source in the short term. But I am planning to start contributing again + after some time. + +* Can you share how GSoC helped enhance your technical and + non-technical skills (like communication, project management, etc.)? + + I would say it helped me improve my technical communication skills immensely. + Going back and forth with the reviewers on the list, I learned quite a + bit about how to communicate effectively. Also, this was my first time + working in a C based project, so I learned some C hacks as well! + +* What was your biggest takeaway or learning from GSoC that you now + apply regularly in your work? + + Technical communication and effective code review. Also more effective + Git usage. + +* What was the biggest challenge you faced during your contributions + to Git, and how did you overcome it? + + More than the technical challenges solving a problem, I would say it was + more challenging finding the relevant work to do, as there is no + official issue tracker. I would search for #leftoverbits on the mailing + list and #TODOs in the codebase to the find the things to do. However, + most of them seemed quite out of reach in terms of difficulty. However, + I attempted them anyway and learned a lot in the process. The mailing + list folks were quite helpful in guiding me in the right direction. + +* Have you thought about mentoring new GSoC students? + + Yes, although I don't have the bandwidth to become a primary mentor, + I would love to be a co-mentor. + +* 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? + + Honestly, I find Git to be quite mature and complete. I can't + think of anything, of the top of my head, that I would like + people to work on for a full year. + +* What upcoming features or changes in Git are you particularly + excited about? + + Rust adoption. + +* What is your favorite Git-related tool/library, outside of Git + itself? + + I quite frequently find myself using [`lazygit`](https://github.com/jesseduffield/lazygit) + on the command line for some quick and dirty git operations. + +* What is your toolbox for interacting with the mailing list and for + development of Git? + + I use [aerc](https://aerc-mail.org/) and `send-email`/`format-patch` + for email interactions. And for development, I use [Neovim](https://neovim.io/) + and [clang LSP](https://gist.github.com/Strus/042a92a00070a943053006bf46912ae9) + with `GENERATE_COMPILATION_DATABASE` build flag. + +* How do you envision your own involvement with Git or other open + source projects in the future? + + I think I will continue to be a part of the open source community in some + way or the other. My perspective towards open source has always been + very positive and I would like to continue contributing to it. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + I would suggest to start from reading the docs, particularly + [MyFirstContribution](https://git-scm.com/docs/MyFirstContribution) + and [SubmittingPatches](https://git-scm.com/docs/SubmittingPatches). + And then start with some [#leftoverbits](https://lore.kernel.org/git/?q=%23leftoverbits) + or if you are particularly interested in a specific area, you can + even reach out to people working on those areas to ask for guidance. + +* Would you recommend other students or contributors to participate in + the GSoC, or other mentoring programs, working on Git? Why? Do you + have advice for them? + + Absolutely! GSoC is a great opportunity to learn and contribute to open + source projects. It is a great way to learn how a project of such + massive scale is managed and developed. + ## Other News From 60a0b23d3767f2b54d04a34e434ef999b13b6ae8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Sun, 1 Dec 2024 11:37:17 +0100 Subject: [PATCH 042/336] rn-117: minor copy edit --- rev_news/drafts/edition-117.md | 45 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index fdc4e894b..f2fa16828 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -35,7 +35,7 @@ This edition covers what happened during the months of October and November 2024 v2.47.0 there is an error message indicating that some index files "differ in contents". - Using `git bisect` fox found the commit that introduced the + Using `git bisect`, fox found the commit that introduced the issue. That commit implemented a check that verified that the index file downloaded from the remote was byte-for-byte identical with the index file generated locally from the Git objects downloaded as part @@ -50,7 +50,7 @@ This edition covers what happened during the months of October and November 2024 Jeff King, alias Peff, also replied to fox saying that the breakage was not intended. He thought that it was better to rely on the locally generated index, but that there should be no guarantee for - it to be identical to the one downloaded. + it to be identical to the downloaded one. Peff proposed a draft patch that discarded the downloaded version before generating an index, but said it was hacky and didn't check @@ -81,7 +81,7 @@ This edition covers what happened during the months of October and November 2024 Peff then sent [a series made of 11 patches](https://lore.kernel.org/git/20241025064148.GA2110169@coredump.intra.peff.net/) - to fix the issue, cleanup the dumb HTTP code and fix a couple of + to fix the issue, clean up the dumb HTTP code and fix a couple of other bugs or potential bugs he found in the process. Taylor reviewed the patch series and discussed a few technical @@ -159,7 +159,7 @@ This edition covers what happened during the months of October and November 2024 More than the technical challenges solving a problem, I would say it was more challenging finding the relevant work to do, as there is no official issue tracker. I would search for #leftoverbits on the mailing - list and #TODOs in the codebase to the find the things to do. However, + list and #TODOs in the codebase to find things to do. However, most of them seemed quite out of reach in terms of difficulty. However, I attempted them anyway and learned a lot in the process. The mailing list folks were quite helpful in guiding me in the right direction. @@ -173,7 +173,7 @@ This edition covers what happened during the months of October and November 2024 something in Git for a full year, what would it be? Honestly, I find Git to be quite mature and complete. I can't - think of anything, of the top of my head, that I would like + think of anything, off the top of my head, that I would like people to work on for a full year. * What upcoming features or changes in Git are you particularly @@ -242,12 +242,12 @@ __Light reading__ + Based on the ["A Novel Approach for Estimating Truck Factors"](https://arxiv.org/abs/1604.06766) paper from 2016 by Guilherme Avelino, Leonardo Passos, Andre Hora, and Marco Tulio Valente, with many citations since. - Original implemetation available at . + Original implementation available at . + [How we shrunk our Javascript monorepo git size by 94%](https://www.jonathancreamer.com/how-we-shrunk-our-git-repo-size-by-94-percent/) - Mentions using [git-sizer](https://github.com/github/git-sizer) tool + Mentions using the [git-sizer](https://github.com/github/git-sizer) tool which was mentioned in passing in [Git Rev News Edition #37](https://git.github.io/rev_news/2018/03/21/edition-37/). - The work described in the article also led to adding `--path-walk` option to `git repack` - and `pack.usePathWalk` config option to Git, + The work described in the article also led to adding the `--path-walk` option to `git repack` + and the `pack.usePathWalk` config option to Git, and to the new experimental [`git survey`](https://github.com/microsoft/git/pull/667) command (that for now is present in Microsoft's fork of Git), + [Deleted your fork. Is it gone? Not really…](https://ygreky.com/2024/07/deleted-your-fork-is-it-gone-not-really/) @@ -261,7 +261,7 @@ __Light reading__ with the help of `git config` features: `includeIf` with `gitdir:` and with `hasconfig:`, and with `~/.ssh/config` (and `insteadOf`, where needed). Written by Benji Encalada Mora on their blog - (with comment "This may be overkill, but it works on my machine"). + (with a comment of "This may be overkill, but it works on my machine"). + [When to rewrite Git history?](https://drewdeponte.com/blog/when-to-rewrite-git-history/) (beside "Don't rewrite history once it is shared."). Written by Drew De Ponte on his blog. + [[The Ultimate Guide to] Git Commit Creation](https://drewdeponte.com/blog/git-commit-creation/) @@ -269,11 +269,11 @@ __Light reading__ + [How to Use Git Stash to Efficiently Manage Your Code](https://www.freecodecamp.org/news/how-to-use-git-stash-to-manage-code) by Okoro Emmanuel Nzube on freeCodeCamp. + [Finding when a bug was fixed with git bisect](https://jvns.ca/til/finding-when-a-bug-was-fixed-with-git-bisect/) - in Julia Evans [TILs](https://jvns.ca/til/) (Today I have Learned). - + Julia Evans wrote earlier a series of articles on Git, which were referenced in + in Julia Evans [TILs](https://jvns.ca/til/) (Today I Learned). + + Julia Evans has written a series of articles on Git, which were referenced in Git Rev News from [Edition #103](https://git.github.io/rev_news/2023/09/30/edition-103/) to [#111](https://git.github.io/rev_news/2024/05/31/edition-111/). - + She wrote two [zines](https://wizardzines.com/) about Git: + + She has also published two [zines](https://wizardzines.com/) about Git: _[Oh shit, git!](https://wizardzines.com/zines/oh-shit-git/)_ and _[How Git Works](https://wizardzines.com/zines/git/)_ + [Quick tip: Ignore commits in Git blame using a file](https://marijkeluttekes.dev/blog/articles/2024/11/17/quick-tip-ignore-commits-in-git-blame-using-a-file/) @@ -297,13 +297,14 @@ __Easy watching__ __Git tools and sites__ + [GitFourchette](https://gitfourchette.org/) - The comfortable Git UI for Linux. - Under development; you can currenrly install it [with AppImage or from source](https://github.com/jorio/gitfourchette/releases). + Under development; you can currently install it [with AppImage or from source](https://github.com/jorio/gitfourchette/releases). Written in Python, using the Qt UI (via PyQt6/PySide6) and pygit2. Under GPLv3 license. + [Changesets](https://github.com/changesets/changesets) is a tool to manage versioning and changelogs with a focus on multi-package repositories (monorepos). Written in TypeScript, under MIT license. - + See [What is a Monorepo?](https://monorepo.tools/#what-is-a-monorepo) - definition on (this site was mentioned first in + + For an explanation of the "monorepo" concept see + [What is a Monorepo?](https://monorepo.tools/#what-is-a-monorepo) + on (this site was mentioned first in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/)). + [Beachball](https://microsoft.github.io/beachball/): The Sunniest Semantic Version Bumper. Tool for automating npm publishing. @@ -314,7 +315,7 @@ __Git tools and sites__ + This tool was mentioned in passing in [Git Rev News Edition #37](https://git.github.io/rev_news/2018/03/21/edition-37/). + [git-remote-s3](https://github.com/awslabs/git-remote-s3) is a library - that enables you to use Amazon S3 as a git remote and as a LFS server.
+ that enables you to use Amazon S3 as a git remote and as an LFS server.
It provides an implementation of a [git remote-helper](https://github.com/awslabs/git-remote-s3) to use S3 (Amazon Simple Storage Service) as a serverless Git server, and of the [git-lfs custom transfer](https://github.com/git-lfs/git-lfs/blob/main/docs/custom-transfers.md) @@ -325,18 +326,18 @@ __Git tools and sites__ and performs statistical analysis on diffs and on the generated annotation data. It also includes a web app, displaying various data visualizations. Written in Python, under MIT license. - + Its README includes the [list of similar tools and sites](https://github.com/ncusi/PatchScope/blob/main/README.md#related-projects), + + Its README includes a [list of similar tools and sites](https://github.com/ncusi/PatchScope/blob/main/README.md#related-projects), many of which were mentioned here on Git Rev News. + [Mergiraf](https://mergiraf.org/) is a syntax-aware [git merge driver](https://git-scm.com/docs/gitattributes#_performing_a_three_way_merge) (and a `mergiraf` command line tool that helps solving merge conflicts) for a growing collection of programming languages and file formats. - Adding new language to Mergiraf is done in a declarative way. + Adding a new language to Mergiraf is done in a declarative way. Written in Rust, under GPLv3 license. + The author recommends using Mergiraf together with [Difftastic](https://difftastic.wilfred.me.uk/), a structural diff tool that understands syntax, mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/). + [Diffdiff.net](https://diffdiff.net/) (formerly diff.so) is a web application - that provides fast, [private](https://diffdiff.net/privacy) way to compare two pieces of text + that provides a fast, [private](https://diffdiff.net/privacy) way to compare two pieces of text in a "split diff"/"side diff" view, side by side with highlighting the text that is different from the text on the other side. @@ -345,8 +346,8 @@ __Git tools and sites__ + [DiffLens](https://www.difflens.com/) - The Developer's Diff Tool. Provides language-aware semantic diffs for GitHub Pull Requests, adding them as a comment to the pull request. - Available as the [GitHub app](https://github.com/marketplace/difflens) - or the [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=DiffLens.difflens). + Available as a [GitHub app](https://github.com/marketplace/difflens) + or a [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=DiffLens.difflens). Proprietary tool, with 14 days free trial, and [demo](https://www.difflensapp.com/difflensDemo2_849ca26f9ee09faa084cbdcdc90b6f90f8ce8495). See above for possible alternatives. From 8330e5de65e86f8fcd6bc220f8f3fce7f9285178 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 1 Dec 2024 19:19:46 +0530 Subject: [PATCH 043/336] rn-117: remove an empty section --- rev_news/drafts/edition-117.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index fdc4e894b..8731fc273 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -223,9 +223,6 @@ This edition covers what happened during the months of October and November 2024 ## Other News -__Various__ - - __Light reading__ + [The Bus Factor](https://mclare.blog/posts/the-bus-factor/) From d9c340f41a3b9f2febbf7b8d6a999963bd52df71 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 1 Dec 2024 19:22:22 +0530 Subject: [PATCH 044/336] rn-117: make a typo correction as suggested by Ghanshyam --- rev_news/drafts/edition-117.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 8731fc273..b3093ea7a 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -192,7 +192,7 @@ This edition covers what happened during the months of October and November 2024 I use [aerc](https://aerc-mail.org/) and `send-email`/`format-patch` for email interactions. And for development, I use [Neovim](https://neovim.io/) - and [clang LSP](https://gist.github.com/Strus/042a92a00070a943053006bf46912ae9) + and [clangd LSP](https://gist.github.com/Strus/042a92a00070a943053006bf46912ae9) with `GENERATE_COMPILATION_DATABASE` build flag. * How do you envision your own involvement with Git or other open From 9479550106fe20156b58061468aa1749e1ef148e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 1 Dec 2024 16:54:30 +0100 Subject: [PATCH 045/336] rn-117: add Toon Claes among the helpers --- rev_news/drafts/edition-117.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index b3093ea7a..1dab2f921 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -379,4 +379,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito. +with help from Bruno Brito and Toon Claes. From 9e1b911b025af132fff930a8da466ed53402ec04 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 1 Dec 2024 16:55:40 +0100 Subject: [PATCH 046/336] rn-117: add Ghanshyam Thakkar among the helpers --- rev_news/drafts/edition-117.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 1dab2f921..2f0f09c63 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -379,4 +379,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito and Toon Claes. +with help from Ghanshyam Thakkar, Bruno Brito and Toon Claes. From 7619892ad93b8caab9ad4910a18fc81f02501c71 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 1 Dec 2024 16:57:14 +0100 Subject: [PATCH 047/336] rn-117: add Dscho among the helpers --- rev_news/drafts/edition-117.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 2f0f09c63..48f281837 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -379,4 +379,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Ghanshyam Thakkar, Bruno Brito and Toon Claes. +with help from Ghanshyam Thakkar, Johannes Schindelin, +Bruno Brito and Toon Claes. From 0e2d9c7ffb62c4965863c65c0c4b7ce67cbe3d36 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 1 Dec 2024 22:11:03 +0100 Subject: [PATCH 048/336] Supplied some tiny corrections and rephrasings. --- rev_news/drafts/edition-117.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rev_news/drafts/edition-117.md b/rev_news/drafts/edition-117.md index 365c45e44..0b0b9b8bc 100644 --- a/rev_news/drafts/edition-117.md +++ b/rev_news/drafts/edition-117.md @@ -101,7 +101,7 @@ This edition covers what happened during the months of October and November 2024 * How did you initially become interested in contributing to Git, and what motivated you to choose it as your GSoC project? - Before GSoC, I was quite familiar with the Linux ecosystem and it had + Before GSoC, I was quite familiar with the Linux ecosystem, and it had been my primary OS for the majority of my college years. And during those times I felt Git was the most impactful project enabling the vastly collaborative Linux Desktop Ecosystem. So, I felt like contributing @@ -185,7 +185,7 @@ This edition covers what happened during the months of October and November 2024 itself? I quite frequently find myself using [`lazygit`](https://github.com/jesseduffield/lazygit) - on the command line for some quick and dirty git operations. + on the command line for some quick and dirty Git operations. * What is your toolbox for interacting with the mailing list and for development of Git? @@ -193,7 +193,7 @@ This edition covers what happened during the months of October and November 2024 I use [aerc](https://aerc-mail.org/) and `send-email`/`format-patch` for email interactions. And for development, I use [Neovim](https://neovim.io/) and [clangd LSP](https://gist.github.com/Strus/042a92a00070a943053006bf46912ae9) - with `GENERATE_COMPILATION_DATABASE` build flag. + with the `GENERATE_COMPILATION_DATABASE` build flag. * How do you envision your own involvement with Git or other open source projects in the future? @@ -248,15 +248,15 @@ __Light reading__ and to the new experimental [`git survey`](https://github.com/microsoft/git/pull/667) command (that for now is present in Microsoft's fork of Git), + [Deleted your fork. Is it gone? Not really…](https://ygreky.com/2024/07/deleted-your-fork-is-it-gone-not-really/) - Marta Rybczynska on Ygreky Blog. Provides some recommendations for best practices + by Marta Rybczynska on Ygreky Blog. Provides some recommendations for best practices when using public forges. + References [Anyone can Access Deleted and Private Repository Data on GitHub](https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github) blog post by Truffle Security, mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/). + See also [Demystifying GitHub Private Forks - The Hidden Danger of Cached View](https://blog.gitguardian.com/demystifying-github-cached-views-the-hidden-danger/) by Guillaume Valadon on GitGuardian Blog. + [How I configure my Git identities](https://www.benji.dog/articles/git-config/) - with the help of `git config` features: `includeIf` with `gitdir:` and with `hasconfig:`, - and with `~/.ssh/config` (and `insteadOf`, where needed). + with the help of `git config` features: `includeIf` with `gitdir:` and `hasconfig:`, + complex `~/.ssh/config` setups (and the use of `insteadOf`, where needed). Written by Benji Encalada Mora on their blog (with a comment of "This may be overkill, but it works on my machine"). + [When to rewrite Git history?](https://drewdeponte.com/blog/when-to-rewrite-git-history/) @@ -301,7 +301,7 @@ __Git tools and sites__ Written in TypeScript, under MIT license. + For an explanation of the "monorepo" concept see [What is a Monorepo?](https://monorepo.tools/#what-is-a-monorepo) - on (this site was mentioned first in + on monorepo.tools (this site was mentioned first in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/)). + [Beachball](https://microsoft.github.io/beachball/): The Sunniest Semantic Version Bumper. Tool for automating npm publishing. @@ -345,7 +345,7 @@ __Git tools and sites__ adding them as a comment to the pull request. Available as a [GitHub app](https://github.com/marketplace/difflens) or a [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=DiffLens.difflens). - Proprietary tool, with 14 days free trial, and [demo](https://www.difflensapp.com/difflensDemo2_849ca26f9ee09faa084cbdcdc90b6f90f8ce8495). + Proprietary tool, with 14 days free trial and [demo](https://www.difflensapp.com/difflensDemo2_849ca26f9ee09faa084cbdcdc90b6f90f8ce8495). See above for possible alternatives. From 568080f46ac02f09812dc31fde63e213bbbbc40d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 1 Dec 2024 22:26:41 +0100 Subject: [PATCH 049/336] Publish rn-117 in _posts/ --- .../edition-117.md => _posts/2024-11-30-edition-117.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-117.md => _posts/2024-11-30-edition-117.markdown (100%) diff --git a/rev_news/drafts/edition-117.md b/_posts/2024-11-30-edition-117.markdown similarity index 100% rename from rev_news/drafts/edition-117.md rename to _posts/2024-11-30-edition-117.markdown From 3dbbe2d69c2424f0915bee6ea6eb6e37348ab0ff Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 1 Dec 2024 22:26:41 +0100 Subject: [PATCH 050/336] Add draft for rn-118 --- rev_news/drafts/edition-118.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-118.md diff --git a/rev_news/drafts/edition-118.md b/rev_news/drafts/edition-118.md new file mode 100644 index 000000000..a86362a39 --- /dev/null +++ b/rev_news/drafts/edition-118.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 118 (December 31st, 2024) +layout: default +date: 2024-12-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 118 (December 31st, 2024) + +Welcome to the 118th 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 November 2024 and December 2024. + +## 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 6e6dc58066cf0184066d6b822cf87a7f75fc190b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 1 Dec 2024 22:29:02 +0100 Subject: [PATCH 051/336] =?UTF-8?q?rn-117:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2024-11-30-edition-117.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-11-30-edition-117.markdown b/_posts/2024-11-30-edition-117.markdown index 0b0b9b8bc..ffa294b1b 100644 --- a/_posts/2024-11-30-edition-117.markdown +++ b/_posts/2024-11-30-edition-117.markdown @@ -381,4 +381,4 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Ghanshyam Thakkar, Johannes Schindelin, -Bruno Brito and Toon Claes. +Štěpán Němec, Bruno Brito and Toon Claes. From 6f75b6d2a12fa96c781fb6822833f66fe2463480 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 30 Dec 2024 15:52:50 +0100 Subject: [PATCH 052/336] rn-118: add releases --- rev_news/drafts/edition-118.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rev_news/drafts/edition-118.md b/rev_news/drafts/edition-118.md index a86362a39..899ab8165 100644 --- a/rev_news/drafts/edition-118.md +++ b/rev_news/drafts/edition-118.md @@ -49,6 +49,31 @@ __Git tools and sites__ ## Releases ++ Git [2.48.0-rc0](https://public-inbox.org/git/xmqqfrmn4hr9.fsf@gitster.g/) ++ Git for Windows [2.48.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.48.0-rc0.windows.1) ++ libgit2 [1.9.0](https://github.com/libgit2/libgit2/releases/tag/v1.9.0) ++ GitHub Enterprise [3.15.1](https://help.github.com/enterprise-server@3.15/admin/release-notes#3.15.1), +[3.14.6](https://help.github.com/enterprise-server@3.14/admin/release-notes#3.14.6), +[3.13.9](https://help.github.com/enterprise-server@3.13/admin/release-notes#3.13.9), +[3.12.13](https://help.github.com/enterprise-server@3.12/admin/release-notes#3.12.13), +[3.11.19](https://help.github.com/enterprise-server@3.11/admin/release-notes#3.11.19), +[3.15.0](https://help.github.com/enterprise-server@3.15/admin/release-notes#3.15.0), +[3.14.5](https://help.github.com/enterprise-server@3.14/admin/release-notes#3.14.5), +[3.13.8](https://help.github.com/enterprise-server@3.13/admin/release-notes#3.13.8), +[3.12.12](https://help.github.com/enterprise-server@3.12/admin/release-notes#3.12.12), +[3.11.18](https://help.github.com/enterprise-server@3.11/admin/release-notes#3.11.18) ++ GitLab [17.7](https://about.gitlab.com/releases/2024/12/19/gitlab-17-7-released/), +[17.6.2, 17.5.4, 17.4.6](https://about.gitlab.com/releases/2024/12/11/patch-release-gitlab-17-6-2-released/) ++ Gerrit Code Review [3.11.0](https://www.gerritcodereview.com/3.11.html#3110) ++ GitKraken [10.6.0](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.4.12](https://desktop.github.com/release-notes/), +[3.4.11](https://desktop.github.com/release-notes/), +[3.4.10](https://desktop.github.com/release-notes/) ++ Garden [1.10.0](https://github.com/garden-rs/garden/releases/tag/v1.10.0) ++ Git Cola [4.10.1](https://github.com/git-cola/git-cola/releases/tag/v4.10.1), +[4.10.0](https://github.com/git-cola/git-cola/releases/tag/v4.10.0) ++ GitButler [0.14.4](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.4), +[0.14.3](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.3) ## Credits From 617ac894b62985417b929327abaed7ec47190f56 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 30 Dec 2024 15:54:18 +0100 Subject: [PATCH 053/336] rn-118: remove useless mention of 2024 --- rev_news/drafts/edition-118.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-118.md b/rev_news/drafts/edition-118.md index 899ab8165..d1f9b9932 100644 --- a/rev_news/drafts/edition-118.md +++ b/rev_news/drafts/edition-118.md @@ -13,7 +13,7 @@ Welcome to the 118th edition of [Git Rev News](https://git.github.io/rev_news/re 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 November 2024 and December 2024. +This edition covers what happened during the months of November and December 2024. ## Discussions From 7020f21ad11d060576c54783ef56586287e763c4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 31 Dec 2024 10:53:27 +0100 Subject: [PATCH 054/336] rn-118: add Meson build system article --- rev_news/drafts/edition-118.md | 134 ++++++++++++++++++++++++++++++++- 1 file changed, 132 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-118.md b/rev_news/drafts/edition-118.md index d1f9b9932..945a4475a 100644 --- a/rev_news/drafts/edition-118.md +++ b/rev_news/drafts/edition-118.md @@ -25,9 +25,139 @@ This edition covers what happened during the months of November and December 202 ### Reviews --> - + ++ [./configure fails to link test program due to missing dependencies](https://lore.kernel.org/git/GV1PR02MB848925A79A9DD733848182D58D662@GV1PR02MB8489.eurprd02.prod.outlook.com/) + + Last September Henrik Holst reported an issue when trying to compile + Git 2.44.0 with HTTPS/curl support on LFS 12.1. The 'configure' script + failed to detect libcurl's dependencies properly when trying to link + statically. + + The issue occurred because the 'configure' script only used the + `-lcurl` build flag without running `pkg-config --libs libcurl` to + add build flags for dependencies like `zstd` that libcurl + needs. Henrik found that manually setting the LDFLAGS environment + variable to include build flags for all dependencies (like `-lcurl + -lssl -lcrypto -lzstd -lbrotlidec -lz`) allowed the build to + succeed. This sparked a broader discussion about Git's build system + situation. + + Looking at 'configure.ac', Junio Hamano, the Git maintainer, noted + that `pkg-config` isn't used at all, instead `curl-config --libs` is + used to detect curl's flags. Even if the 'configure' script was + added early in the history of the Git project, Junio said it was an + afterthought and nobody has considered "upgrading" from + `curl-config` to `pkg-config` for dependency detection. + + In fact, our own Jakub Narębski + [initially added the 'configure' script](https://lore.kernel.org/git/200607030156.50455.jnareb@gmail.com/) + back in 2006 to make it much easier to create RPM spec files when + compilation follows traditional `configure && make && make install` + steps. + + brian m. carlson replied to Junio that users shouldn't statically + link libcurl or OpenSSL at all, as this creates security issues. + With static linking, security updates to these libraries would + require recompiling Git to take effect. In contrast, dynamic linking + allows security updates to be applied as soon as a new Git process + is spawned. + + Patrick Steinhardt replied to Junio suggesting it might be time to + reconsider Git's three build systems + ([GNU Make](https://www.gnu.org/software/make/), + [Autoconf](https://www.gnu.org/software/autoconf/), and + [CMake](https://cmake.org/)). He proposed potentially dropping + Autoconf and making CMake officially supported, or switching to + [Meson](https://mesonbuild.com/) as an alternative. + + CMake was [added more recently in 2020](https://lore.kernel.org/git/pull.614.git.1587700897.gitgitgadget@gmail.com/) + by Sibi Siddharthan as a third build system with the main goal of + improving the build experience for developers on Windows. + + Soon after Patrick's reply, the Git Contributors' Summit happened + and the + ["Modern Build System" topic](https://lore.kernel.org/git/Zu2E3vIcTzywWOx3@nand.local/) + was discussed there. Patrick Steinhardt raised concerns about + maintaining three different build systems while others were + concerned about having good platform support and good Windows + developer experience. This led to an extensive discussion about + the merits of different build systems in the thread started by + Henrik. + + Eli Schwartz, the Meson maintainer, made a detailed case for + preferring Meson over CMake, citing various CMake pain points and + limitations. Phillip Wood agreed with Patrick about getting rid of + Autoconf, but raised the importance of Visual Studio integration, + since CMake was originally added to improve the Windows developer + experience. Johannes Schindelin, alias Dscho, emphasized that + CMake's deep Visual Studio integration was crucial for Windows + developers and cautioned against switching to alternatives that + would make the Windows experience worse. It appeared that Visual + Studio has Meson support via plugins though, which alleviated some + concerns. + + Paul Smith, the GNU Make maintainer, noted that requiring additional + build tools like Meson, which are not yet often used and require + some other dependencies, like Python3 for Meson, adds friction, + though he acknowledged that for Git specifically this may be less of + a concern given its existing dependencies. + + Junio seemed to agree that adding support for a fourth build system + would be worth it if it would allow the project to drop all other + three build systems eventually. He said the new build system would + have "to be something available widely and easy to learn". + + Patrick came up later in October with a + [21 patch long RFC series](https://lore.kernel.org/git/cover.1727881164.git.ps@pks.im/) + to add support for the Meson build system with the goal of + eventually replacing the current three build systems. + + There were a number of iterations on that series. Among the many + comments, Taylor Blau asked about the eventual goals of the series + and plans for CMake support. He noted that CMake support in contrib/ + was in an awkward position, neither fully supported nor properly + maintained out-of-tree. He was concerned about having to maintain + three build systems simultaneously during any transition period. + + David Aguilar expressed concerns about Python being a dependency + through Meson. Eli replied that muon, a C99 implementation of Meson, + could be used instead and demonstrated it working with Git's build. + + Jeff King, alias Peff, asked about reliability for bisecting and + whether out-of-source builds would work correctly when moving + between commits. He also requested better documentation of common + developer workflows with Meson compared to Make. + + Junio discussed the need to maintain build system compatibility + during any transition period. He noted that many of the Makefile + options were added over time for good reasons and dropping support + for them would need careful consideration. + + A number of other developers participated in the reviews. Ramsay + Jones tested the patches on various platforms including + Cygwin. Phillip Wood reviewed CMake-related changes and provided + technical feedback. Johannes Sixt commented on changes to the + gitk-git subtree. Your own Christian Couder provided feedback on the + documentation. + + Over the iterations, Patrick updated the series to improve + documentation, fix conflicts with in-flight patches, and address the + various technical concerns raised during review. + + Eventually the + [version 11 of the patch series](https://lore.kernel.org/git/20241206-pks-meson-v11-0-525ed4792b88@pks.im/) + was merged and will be part of Git v2.48.0 that should be released + in the next few weeks. It should be a properly supported modern + build system that can be faster and more easily configurable than + the three existing ones which will hopefully get deprecated over + time. + + The merged patch series especially adds + [some documentation](https://lore.kernel.org/git/20241206-pks-meson-v11-24-525ed4792b88@pks.im/#Z31meson.build) + to help build Git with Meson and + [a build system comparison](https://lore.kernel.org/git/20241206-pks-meson-v11-23-525ed4792b88@pks.im/#Z31Documentation:technical:build-systems.txt) + that might be interesting to read. __Git tools and sites__ ++ [bus-factor-explorer](https://github.com/JetBrains-Research/bus-factor-explorer) + by JetBrains Research is a web app for exploring Bus Factor of GitHub projects + by analyzing the commit history. Available as to install as a Docker image. + The repository includes evaluation results for 935 popular repositories on GitHub. + There is also a short video about the tool on YouTube: . + Written in Kotlin (with evaluation done with Jupyter notebooks), under MIT license. + + See [The Bus Factor](https://mclare.blog/posts/the-bus-factor/) and + [The github plugin my coworkers asked me not to write](https://scannedinavian.com/the-github-plugin-my-coworkers-asked-me-not-to-write.html) + articles mentioned in [Git Rev News Edition #117](https://git.github.io/rev_news/2024/11/30/edition-117/) + (the previous edition), together with accompanying links. ++ [Anonymous GitHub](https://anonymous.4open.science/) is a service + that allows you to anonymize your GitHub repository for double-blind scientific review + (of scientific article where source code is to be made available for open science reasons). + Several anonymization options are available to ensure that you do not break the double-anonymize, + such as removing links, images or specific terms. + The goal is to make is as easy as possible for the reviewer to explore and review the repository. ++ [Git.News](https://git.news/) is a website which provides infinite newsfeed of + trending repositories from GitHub, HackerNews & Reddit + (which you can then filter by programming language). ++ [Octobox](https://octobox.io/) is a service to help manage GitHub notifications. + Includes optional GitHub app to add live information on issue, PR, and CI status, labels, authors, etc. + Octobox is free for open source projects with basic notifications for private projects. ++ [Filestash](https://www.filestash.app/) is Dropbox-like enterprise-grade file manager, + connecting your storage with your identity provider and authorisations. + It adds a web interface to storage solutions like S3 buckets, SFTP/FTPS server, Git repositories, etc. + Self-hosted solution is free; it can be done using Docker image. + Written in Go and JavaScript, under AGPLv3 license. + Demo available at , + source code at . ++ [DistGit (Distribution Git)](https://github.com/release-engineering/dist-git) + is Git with additional data storage, designed to hold content of source RPMs + (Linux distribution packages). Written in Python, under the MIT license, + but with scripts/httpd/upload.cgi under GPLv1, + and dist-git-client sub-directory under GPLv2+. ++ [wikmd](https://linbreux.github.io/wikmd/) is a file-based wiki, with + documents written in Markdown, and which uses Git for version control. + It is possible to connect Wikmd with an online repo. + Written in Python, under MIT license. ++ [Mycorrhiza Wiki](https://mycorrhiza.wiki/) is a free and open-source wiki engine, + with data stored as simple files, and changes [stored in Git](https://mycorrhiza.wiki/hypha/git). + It uses [Mycomarkup](https://mycorrhiza.wiki/hypha/mycomarkup), a custom-made markup language, + with support for transcluding units of contents. + Written in Go, under AGPLv3 license. ++ [Gitit](https://github.com/jgm/gitit) is a wiki engine written in Haskell, + that uses [Happstack](http://happstack.com/) (HAppS) for the web server + and [pandoc](http://pandoc.org/) for markup processing (with extended Markdown format as default). + Pages and uploaded files are stored in a git, darcs, or mercurial repository + and may be modified through the wiki's web interface. + Under GPLv2 license. ++ [Xandikos](https://www.xandikos.org/) is a lightweight CardDAV/CalDAV server + that backs onto a Git repository. + It allows to share calendars (events, todo items, journal entries) via CalDAV + and contacts (vCard) via CardDAV. + Written in Python using Dulwich, Jinja2, icalendar, and defusedxml, + licensed under GPLv3+. ++ [Opengist](https://github.com/thomiceli/opengist) is a self-hosted pastebin powered by Git, + similar to [GitHub Gist](https://gist.github.com/). + Demo available at . + Written in Go, under AGPLv3 license. ++ [rgit](https://github.com/w4/rgit) is a gitweb/cgit-like fast web frontend for git repositories. + You can see it in action at . + Written in Rust using Axum, gitoxide, Askama and RocksDB. + Under WTFPL license + (which is not on the list of [OSI approved Licenses](https://opensource.org/licenses), + but is on the list of [licenses that meet Debian Free Software Guidelines](https://wiki.debian.org/DFSGLicenses#DO_WHAT_THE_FUCK_YOU_WANT_TO_PUBLIC_LICENSE)). ++ [klaus](https://github.com/jonashaag/klaus) is a simple, easy-to-set-up Git web viewer. + Supports syntax highlighting, Markdown + RestructuredText (reST) rendering support, + and code navigation using Exuberant ctags. Can be installed as Docker image of via `pip`. + You can see its demo at . + Written in Python, under unamed custom permissive license. ++ [git-activity](https://git-activity.olets.dev/) is a tool + to record your Git activity across multiple (or all) repos, + and read it optionally filtered by date, + activity type (e.g. commit, branch creation, etc) regex pattern, + repo name regex pattern, branch name regex pattern, commit message regex pattern, + and/or commit SHA (first seven characters) regex pattern. + Useful for retroactively filling out a time sheet (or correcting a time sheet), + finding that time you solved a problem similar to the one you're working on now, etc. + The log is stored in a plain text file. Source code [on GitHub](https://github.com/olets/git-activity). + Written as bash shell script using AWK, licensed under (custom) + CC BY-NC-SA 4.0 with Hippocratic License v3 ethical requirements. ++ [git-branches-script](https://github.com/conorsheppard/git-branches-script) + is a convenience script that prints a menu of recent git branches + and allows you to switch to a new branch by selecting its corresponding number. + Written as bash shell script, no license provided. + ## Releases From c789c285c333afb265c30588db7cdc709b9dab19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 31 Dec 2024 15:07:43 +0100 Subject: [PATCH 058/336] rn-118: Add a few links and one clarification to the Meson article --- rev_news/drafts/edition-118.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-118.md b/rev_news/drafts/edition-118.md index b2578a8ca..5e236326f 100644 --- a/rev_news/drafts/edition-118.md +++ b/rev_news/drafts/edition-118.md @@ -52,7 +52,8 @@ This edition covers what happened during the months of November and December 202 In fact, our own Jakub Narębski [initially added the 'configure' script](https://lore.kernel.org/git/200607030156.50455.jnareb@gmail.com/) - back in 2006 to make it much easier to create RPM spec files when + back in 2006 to make it much easier to create RPM spec file for Git. + Creating `*.spec` file is especially easy when the compilation follows traditional `configure && make && make install` steps. @@ -121,7 +122,8 @@ This edition covers what happened during the months of November and December 202 three build systems simultaneously during any transition period. David Aguilar expressed concerns about Python being a dependency - through Meson. Eli replied that muon, a C99 implementation of Meson, + through Meson. Eli replied that [muon](https://github.com/muon-build/muon), + a C99 implementation of Meson, could be used instead and demonstrated it working with Git's build. Jeff King, alias Peff, asked about reliability for bisecting and @@ -155,10 +157,13 @@ This edition covers what happened during the months of November and December 202 The merged patch series especially adds [some documentation](https://lore.kernel.org/git/20241206-pks-meson-v11-24-525ed4792b88@pks.im/#Z31meson.build) + (via comments in [`meson.build`](https://git.kernel.org/pub/scm/git/git.git/tree/meson.build)) to help build Git with Meson and [a build system comparison](https://lore.kernel.org/git/20241206-pks-meson-v11-23-525ed4792b88@pks.im/#Z31Documentation:technical:build-systems.txt) + (in [`Documentation/technical/build-systems.txt`](https://git.kernel.org/pub/scm/git/git.git/tree/Documentation/technical/build-systems.txt)) that might be interesting to read. + From 3cf8bf0a600759653e1c2ed51b90e075933c6f6d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 1 Jan 2025 11:19:45 +0100 Subject: [PATCH 059/336] rn-118: add Outreachy interns small article --- rev_news/drafts/edition-118.md | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-118.md b/rev_news/drafts/edition-118.md index 5e236326f..5d54648dc 100644 --- a/rev_news/drafts/edition-118.md +++ b/rev_news/drafts/edition-118.md @@ -17,9 +17,29 @@ This edition covers what happened during the months of November and December 202 ## Discussions - + +- Git participates in [Outreachy's December 2024 to March 2025 round](https://www.outreachy.org/alums/2024-12/): + + - Seyi Kuforiji is working on the "Convert unit tests to use the + clar testing framework" project. He is mentored by Patrick + Steinhardt and Phillip Wood and posting updates [on his gitlab.io blog](https://seyi-kuforiji-902b48.gitlab.io/posts/index.html) + while his work is on [his GitHub repository](https://github.com/Seyi007/git). + + - Usman Akinyemi is working on the "Finish adding a 'os-version' + capability to Git protocol v2" project. He is mentored by + Christian Couder and posting updates [on his hashnode.dev blog](https://uniqueusman.hashnode.dev/) + while his work is on [his GitLab repository](https://gitlab.com/Unique-Usman/git/-/branches). + + Congratulations to Usman and Seyi for being selected! + + We are still looking for corporate sponsors to fund these two + Outreachy internship. Thank you in advance for contacting the Git + PLC (git@sfconservancy.org) if you are interested. + + Many thanks also to the other contributors who applied and worked on + micro-projects, but couldn’t be selected! We hope to continue to see + you in the community! + + + + + + + +## 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 f163a9623d0581d7f70c3df2f0e698fa36e0b115 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 2 Jan 2025 12:06:52 +0100 Subject: [PATCH 067/336] =?UTF-8?q?rn-118:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2024-12-31-edition-118.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-12-31-edition-118.markdown b/_posts/2024-12-31-edition-118.markdown index 40e865d80..9d801a4ef 100644 --- a/_posts/2024-12-31-edition-118.markdown +++ b/_posts/2024-12-31-edition-118.markdown @@ -422,4 +422,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Štěpán Němec. From 8f48ec1d5fb71f1cea2761175f7fb15c480a1d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 2 Jan 2025 15:46:46 +0100 Subject: [PATCH 068/336] rn-118: Very minor fixup --- _posts/2024-12-31-edition-118.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-12-31-edition-118.markdown b/_posts/2024-12-31-edition-118.markdown index 9d801a4ef..1e488a8f4 100644 --- a/_posts/2024-12-31-edition-118.markdown +++ b/_posts/2024-12-31-edition-118.markdown @@ -365,7 +365,7 @@ __Git tools and sites__ but is on the list of [licenses that meet Debian Free Software Guidelines](https://wiki.debian.org/DFSGLicenses#DO_WHAT_THE_FUCK_YOU_WANT_TO_PUBLIC_LICENSE)). + [klaus](https://github.com/jonashaag/klaus) is a simple, easy-to-set-up Git web viewer. Supports syntax highlighting, Markdown + RestructuredText (reST) rendering support, - and code navigation using Exuberant ctags. Can be installed as Docker image of via `pip`. + and code navigation using Exuberant ctags. Can be installed as Docker image or via `pip`. You can see its demo at . Written in Python, under an unnamed custom permissive license. + [git-activity](https://git-activity.olets.dev/) is a tool From 22d41c570fa8f6ff6f466b821e96d4b19c24c287 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 23 Jan 2025 01:14:15 +0530 Subject: [PATCH 069/336] rn-119: include interview with Justin Tobler --- rev_news/drafts/edition-119.md | 75 ++++++++++++++++++++++++++++++++-- 1 file changed, 72 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index ba9be5488..43e58db06 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -29,9 +29,78 @@ This edition covers what happened during the months of December 2024 and January ### Support --> - +## Developer Spotlight: Justin Tobler + +* Who are you and what do you do? + + My name is Justin Tobler and I am a relatively new contributor to the + Git project with my first contributions being made this last year. I + work at GitLab and these days spend my time integrating Git into + GitLab's data access layer as well as upstreaming Git fixes/features. + +* What would you name your most important contribution to Git? + + Most of my contributions thus far have been relatively minor bug fixes, + but [one bug I found](https://public-inbox.org/git/pull.1683.git.1709669025722.gitgitgadget@gmail.com/) + particularly interesting was with the table compaction algorithm in the + new reftable reference backend. There was a theoretical scenario where + certain Git operations could be performed and new tables written, but + table compaction would never occur. This was found when tests on certain + platforms started failing because of file descriptor limits being exceeded. + +* What are you doing on the Git project these days, and why? + + One topic I'm currently working on is introducing a way to + [generate batches of specific blob diffs](https://public-inbox.org/git/20241213042312.2890841-1-jltobler@gmail.com/). + This is not particularly useful for users, but for Git servers + it's a nice feature. + + I still have much to learn about the project so I also enjoy looking + into the inflight topics that pop on the mailing list. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + I don't have anything specific in mind, but it would probably be along + the lines of changes to make the Git CLI more consistent across its + various commands. + +* What is your favorite Git-related tool/library, outside of + Git itself? + + For my Git-related workflow, outside of GitLab, I primarily use the Git + CLI for everything. + +* What is your toolbox for interacting with the mailing list and for + development of Git? + + For interacting with the mailing list my workflow primarily consists of + using [`neomutt`](https://neomutt.org/guide/gettingstarted.html) + and `git send-email`, but I have also recently been + exploring [`b4`](https://github.com/mricon/b4). + + For development, I use [`neovim`](https://neovim.io) as my editor with + an assortment of plugins. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + If you are unfamiliar with the mailing workflow, [GitGitGadget](https://gitgitgadget.github.io/) + can help handle formatting patches and sending them off to the mailing + list. My first couple of patch series used this tool and I found it + useful to get started without having to be super familiar with + `git format-patch` and `git send-email`. Other than that, I also + find it very helpful to observe how other contributors submit + patches and interact on the mailing list. + +* If there's one tip you would like to share with other Git + developers, what would it be? + + I appreciate when the authors of a patch series provide as much + background as possible to the change being made. Reading incoming patch + series is a great way to learn about the project and it is very helpful + when the required context overhead is minimized. + ## Other News From cf48ac87d45233d3accddd64c24f0870c43bcb60 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 23 Jan 2025 01:14:58 +0530 Subject: [PATCH 070/336] rn-119: remove unnecessary trailing space --- rev_news/drafts/edition-119.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 43e58db06..047a59052 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -91,7 +91,7 @@ This edition covers what happened during the months of December 2024 and January useful to get started without having to be super familiar with `git format-patch` and `git send-email`. Other than that, I also find it very helpful to observe how other contributors submit - patches and interact on the mailing list. + patches and interact on the mailing list. * If there's one tip you would like to share with other Git developers, what would it be? From f7e86cdfcf4c40042655b803458b3a42244d7f7d Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 27 Jan 2025 12:12:57 +0530 Subject: [PATCH 071/336] SoC-2025: include initial draft of ideas list The ideas were suggested by Patrick on the mailing list. Ref: https://public-inbox.org/git/Z432QXJb_TfzNBa2@pks.im/ --- SoC-2024-Ideas.md | 1 + SoC-2025-Ideas.md | 118 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 SoC-2025-Ideas.md diff --git a/SoC-2024-Ideas.md b/SoC-2024-Ideas.md index 579a76042..56cc38a44 100644 --- a/SoC-2024-Ideas.md +++ b/SoC-2024-Ideas.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2024 Ideas +navbar: false --- ![git logo >](https://git-scm.com/images/logos/downloads/Git-Logo-2Color.svg) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md new file mode 100644 index 000000000..3ae5411bd --- /dev/null +++ b/SoC-2025-Ideas.md @@ -0,0 +1,118 @@ +--- +layout: default +title: SoC 2024 Ideas +navbar: false +--- + +![git logo >](https://git-scm.com/images/logos/downloads/Git-Logo-2Color.svg) + +This is the idea page for Summer of Code 2025 for Git. + +*Please completely read the [general application information](https://git.github.io/General-Application-Information) +page before reading the idea list below.* + +## Summer of code main project ideas + +**Students**: Please consider these ideas as starting points for +generating proposals. We are also more than happy to receive proposals +for other ideas related to Git. Make sure you have read the "Note +about refactoring projects versus projects that implement new +features" in the [general application information](https://git.github.io/General-Application-Information) +page though. + +### Note about limit of project selection + +Kindly note that considering the bandwidth of available mentors, the +Git project would only mentor up to 2 contributors this year. + +This is not a hard and fast rule. It may change if more community members are +willing to mentor in the coming days. For instance, this may happen when +a new project is proposed and some community member volunteers to mentor +the same. + + +### Consolidate ref-related functionality into git-refs + +This project aims to streamline Git's reference management into the existing +`git-refs` command by consolidating functionality currently spread +across multiple commands. The new command will provide subcommands for listing, +getting, checking existence, writing, and optimizing references, replacing the +functionality currently handled by git-update-ref(1), git-for-each-ref(1), +git-show-ref(1), and git-pack-refs(1). + +The consolidation work should ensure backward compatibility with existing +commands. The work involves C programming in Git's codebase, creating +comprehensive tests, and updating documentation. + +Required skills include C programming, familiarity with Git's codebase, and experience with command-line tool development. The project is expected to take 12 weeks, with existing commands being maintained for backward compatibility while development focuses on the new unified interface. + +Getting started: Build Git from source, study the existing ref-related commands, and submit a micro-patch to demonstrate familiarity with the codebase. + +_Expected Project Size_: 175 hours or 350 hours + +_Difficulty_: Medium + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Patrick Steinhardt < > +* Jialuo She < > + + +### Refactoring in order to reduce Git's global state + +This project focuses on modernizing Git's environment handling by refactoring +the `environment.c` code to reduce global state. The goal is to move environment +variables and configuration from global scope into more appropriate local +contexts, primarily into the `struct repository` / `struct repository_settings` +structure. This architectural improvement will make the codebase more +maintainable and potentially enable better multi-repository handling in the +future. The project involves careful refactoring of Git's core environment +handling code, requiring strong C programming skills and attention to detail. + +The student will identify global variables that can be moved to local scope, +implement the necessary structural changes, and ensure all affected code paths +continue to work correctly. This includes updating tests, fixing any +regressions, and documenting the architectural changes. + +_Expected Project Size_: 90 or 175 hours or 350 hours + +_Difficulty_: Medium + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Patrick Steinhardt < > + + +### Machine-Readable Repository Information Query Tool + +This project aims to create a new Git command dedicated to querying repository +metadata and configuration in a structured, machine-readable format. Currently, +much of this functionality exists within git-rev-parse(1), which has evolved +beyond its original purpose. The new command will provide a cleaner, more +focused interface for programmatically accessing repository information using +JSON output. + +The student will design and implement this new command, focusing on identifying +what repository information should be exposed, designing a consistent JSON +schema, and implementing the necessary interfaces to Git's internal APIs. Key +challenges include determining which subset of information from git-rev-parse to +expose via this new command, ensuring backward compatibility, and creating a +clean, well-documented command interface that's useful for scripts and tools. + +While this is an exploratory project that hasn't been extensively discussed in +the Git community, it addresses a real need for better programmatic access to +repository information. + +_Expected Project Size_: 175 hours or 350 hours + +_Difficulty_: Medium + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Patrick Steinhardt < > From 5a34f2ab33b4bf55e175cacd7f35e72653d3c52c Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 27 Jan 2025 12:17:18 +0530 Subject: [PATCH 072/336] SoC-2025: make the ideas list visible --- SoC-2025-Ideas.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index 3ae5411bd..124fc2808 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -1,7 +1,6 @@ --- layout: default -title: SoC 2024 Ideas -navbar: false +title: SoC 2025 Ideas --- ![git logo >](https://git-scm.com/images/logos/downloads/Git-Logo-2Color.svg) From 09f1ba6fcfa363ad67a6e502ebeb77d3f458deef Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Tue, 28 Jan 2025 12:51:01 +0000 Subject: [PATCH 073/336] rn-119: Link to Boost Your Git DX second update --- rev_news/drafts/edition-119.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 047a59052..1e68437a5 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -106,6 +106,10 @@ This edition covers what happened during the months of December 2024 and January __Various__ +* Adam Johnson’s book “Boost Your Git DX” + [has been updated](https://adamj.eu/tech/2025/01/28/bygdx-second-update/) + with 28 new pages of content. This book was first mentioned in + [Git Rev News Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/). __Light reading__ From 33ec2295541e5209adf37986482ffd0c999a7699 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 28 Jan 2025 23:48:22 +0530 Subject: [PATCH 074/336] SoC=2025: include project about dumpt HTTP transport --- SoC-2025-Ideas.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index 124fc2808..ae3b86cb7 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -115,3 +115,45 @@ _Languages_: C, shell(bash) _Possible mentors_: * Patrick Steinhardt < > + + +### Implement support for reftables in "dumb" HTTP transport + +Fetching Git repositories uses one of two major protocols: + + - The "dumb" protocol works without requiring any kind of + interactive negotiation like a CGI module. It can thus + be served by a static web server. + + - The "smart" protocol works by having the client and + server exchange multiple messages with each other. It is + more efficient, but requires support for Git in the + server. + +While almost all servers nowadays use the "smart" protocol, +there are still some that use the "dumb" protocol. + +The "dumb" protocol cannot serve repositories which use the +"reftable" backend though. While there exists a "info/refs" +file that is supposed to be backend-agnostic, this file does +not contain information about the default branch. Instead, +clients are expected to download the "HEAD" file and derive +the default branch like that. This file is a mere stub in +the "reftable" backend though, which breaks this protocol. + +The goal of this project is to implement "reftable" support +for "dumb" fetches. + +See: + + - + +_Expected Project Size_: 175 hours or 350 hours + +_Difficulty_: Medium + +_Languages_: C, shell(bash) + +_Possible mentors_: +* Patrick Steinhardt < > +* Karthik Nayak < > From 601bf85e7b8a26dd6d089441a7d711a4021a4693 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 30 Jan 2025 11:03:07 +0530 Subject: [PATCH 075/336] SoC-2025: integrate microproject ideas Related thread: https://public-inbox.org/git/Z5d_XbPfQQBnwgQf@ArchLinux/T/#m966de0eab8f454b40677086cf41032116f72cce6 --- SoC-2024-Microprojects.md | 1 + SoC-2025-Microprojects.md | 208 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 209 insertions(+) create mode 100644 SoC-2025-Microprojects.md diff --git a/SoC-2024-Microprojects.md b/SoC-2024-Microprojects.md index b0765bebd..c832f49f3 100644 --- a/SoC-2024-Microprojects.md +++ b/SoC-2024-Microprojects.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2024 Applicant Microprojects +navbar: false --- ## Introduction diff --git a/SoC-2025-Microprojects.md b/SoC-2025-Microprojects.md new file mode 100644 index 000000000..a8b820c17 --- /dev/null +++ b/SoC-2025-Microprojects.md @@ -0,0 +1,208 @@ +--- +layout: default +title: SoC 2025 Applicant Microprojects +--- + +## Introduction + +First make sure you read and understand +[our general guidelines and suggestions for microprojects](https://git.github.io/General-Microproject-Information). + +There are some suggestions on how you can find some microprojects on your own in the document. + +## Ideas for microprojects + +### Fix Sign Comparison Warnings in Git's Codebase + +Help improve Git's code quality by fixing sign comparison warnings in files that +currently disable these warnings. The goal is to remove instances of +`DISABLE_SIGN_COMPARE_WARNINGS` macro and fix the underlying issues properly. + +#### Steps to Complete +1. Find a C source file that contains `#define DISABLE_SIGN_COMPARE_WARNINGS` +2. Remove this #define +3. Build Git with `DEVELOPER=1` to enable compiler warnings. The `DEVLEOPER` + can be specified in your `config.mak` or as follows + + ```sh + make DEVELOPER=1 -j4 + ``` + +4. Fix all `-Wsign-compare` warnings that appear for that file: + - Pay attention to comparisons between signed and unsigned integers + - Modify variable types or add appropriate casts as needed + - Ensure the fixes don't change the code's behavior + +#### Notes +- Each file should be handled in a separate patch +- Follow Git's commit message conventions +- Test your changes thoroughly +- This is part of an ongoing effort to enable `-Wsign-compare` globally + +#### Related Patches +For context on why this is a crucial improvement to Git's codebase, checkout +[this e-mail](https://public-inbox.org/git/20241206-pks-sign-compare-v4-0-0344c6dfb219@pks.im/) +by Patrick Steinhardt. + + +### Modernize Test Path Checking in Git's Test Suite + +Help improve Git's test suite by converting old-style path checks to use modern +helper functions. We'll be replacing basic shell test commands like `test -f` +with Git's dedicated test helpers like `test_path_is_file`. + +#### Steps to Complete +1. Find a test script using old-style path checks: +```sh +git grep "test -[efd]" t/ +``` + +2. Look for patterns like: +```sh +test -f path/to/file # old way +test_path_is_file path/to/file # new way + +test -d some/directory # old way +test_path_is_dir some/directory # new way +``` + +3. Important: Only replace checks that are actually testing for conditions, not + those used in flow control. For example: +```sh +# DON'T change this - it's flow control +if test -e "file.txt"; then + do_something +fi + +# DO change this - it's a test assertion +test -e "file.txt" || error "file.txt should exist" +``` + +#### Notes +- Start small: Pick a test file with just a few instances to convert +- Run the test suite after your changes to ensure nothing breaks +- Follow Git's commit message style +- Include which command you used to find the instances in your commit message + +#### Need Help? +- Reference [this discussion](https://public-inbox.org/git/CAPig+cRfO8t1tdCL6MB4b9XopF3HkZ==hU83AFZ38b-2zsXDjQ@mail.gmail.com/) + for detailed examples. +- If you can't find any instances to fix, let us know what search command you + used + + +### Add more builtin patterns for userdiff + +"git diff" shows the function name corresponding to each hunk after +the @@ ... @@ line. For common languages (C, HTML, Ada, Matlab, ...), +the way to find the function name is built-in Git's source code as +regular expressions (see userdiff.c). A few languages are common +enough to deserve a built-in driver, but are not yet recognized. For +example, shell. + +This project requires a very good knowledge of regular expressions. + +It is easy though to find examples of how this can be done by +searching the code base and the mailing list archive, as this has +already been done for a number of languages. + +### Replace a run_command*() call by direct calls to C functions + +See for example what Junio did in +[ffcb4e94d3](https://github.com/git/git/commit/ffcb4e94d3) (bisect: do +not run show-branch just to show the current commit, 2021-07-27). + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Avoid suppressing `git`'s exit code in test scripts + +The Git project uses a large collection of integration tests written in +Shell to guard against regressions when adding new features or fixing +bugs. The scripts in question can be found in the `t` directory +[here][git-t]. + +While it is perfectly OK to use [pipes][wikipedia-pipes] when writing +integration tests, we must be careful to avoid writing a pipeline that +suppresses the exit code of a Git process, like so: + +``` +git | +``` + +...since the exit code of `git ` would be suppressed by the +pipe. If `git ` crashed, we would not catch it in the above +example when running the integration suite. + +Other examples to avoid include: + +``` +# bad: + $(git ) + +# also bad: + <) +EOF +``` + +...since the exit code of `git ` is hidden behind the +subshell in both instances. + +On the other hand, both of the following examples are OK, since neither +hides the exit code of running `git `: + +``` +# good: +var=$(git ) + +# also good: + | | git +``` + +(provided that neither `` or `` are +`git`). + +See the commit +[c6f44e1da5](https://github.com/git/git/commit/c6f44e1da5e88e34) +for example, and then do the same thing in one other test script. + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +[git-t]: https://github.com/git/git/tree/master/t +[wikipedia-pipes]: https://en.wikipedia.org/wiki/Pipeline_(Unix) + +### Use unsigned integral type for collection of bits. + +Pick one field of a structure that (1) is of signed integral type and (2) is +used as a collection of multiple bits. Discuss if there is a good reason +why it has to be a signed integral field and change it to an unsigned +type otherwise. [[thread](https://public-inbox.org/git/xmqqsiebrlez.fsf@gitster.dls.corp.google.com)] + +Even though the amount of code to write is small, these projects +involve a lot of prior work to understand the specification and deal +with all potential corner-cases. + +### Modernize a test script + +A number of our test scripts have been written a long time ago in a +style that is now outdated. + +In the following email it is explained in details how to modernize and +clean up the t7001 test script: + + + +t7001 is not the only test script where similar changes could be made +though. + +Find one test script that needs some of the same changes and make +them. Please make sure that the test script is not already being +worked on by asking on the mailing list before starting to work on it. + +There should be only one kind of change per commit. For example if one +of your commits indents test bodies with TABs, instead of spaces, then +this should be the only kind of change in this commit. + From 61088311c3b121493d2de8a41467386106c466fa Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Jan 2025 10:50:56 +0100 Subject: [PATCH 076/336] rn-119: add releases --- rev_news/drafts/edition-119.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 1e68437a5..4790fd21a 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -122,6 +122,32 @@ __Git tools and sites__ ## Releases ++ Git [2.48.1 and friends](https://public-inbox.org/git/xmqq5xmh46oc.fsf@gitster.g/), +[2.48.0](https://public-inbox.org/git/xmqqplku7cvm.fsf@gitster.g/), +[2.48.0-rc2](https://public-inbox.org/git/xmqqbjwjyalr.fsf@gitster.g/) ++ Git for Windows [2.48.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.48.0-rc2.windows.1) ++ GitLab [17.8.1](https://about.gitlab.com/releases/2025/01/22/patch-release-gitlab-17-8-1-released/), +[17.8](https://about.gitlab.com/releases/2025/01/16/gitlab-17-8-released/), +[17.7.2](https://about.gitlab.com/releases/2025/01/15/gitlab-17-7-2-released/), +[17.7.1](https://about.gitlab.com/releases/2025/01/08/patch-release-gitlab-17-7-1-released/) ++ Gerrit Code Review [3.10.4](https://www.gerritcodereview.com/3.10.html#3104), +[3.11.1](https://www.gerritcodereview.com/3.11.html#3111), +[3.9.9](https://www.gerritcodereview.com/3.9.html#399) ++ GitHub Enterprise [3.15.2](https://help.github.com/enterprise-server@3.15/admin/release-notes#3.15.2), +[3.14.7](https://help.github.com/enterprise-server@3.14/admin/release-notes#3.14.7), +[3.13.10](https://help.github.com/enterprise-server@3.13/admin/release-notes#3.13.10), +[3.12.14](https://help.github.com/enterprise-server@3.12/admin/release-notes#3.12.14) ++ GitKraken [10.6.3](https://help.gitkraken.com/gitkraken-client/current/), +[10.6.2](https://help.gitkraken.com/gitkraken-client/current/), +[10.6.1](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.4.15](https://desktop.github.com/release-notes/), +[3.4.14](https://desktop.github.com/release-notes/), +[3.4.13](https://desktop.github.com/release-notes/) ++ Garden [2.0.0](https://github.com/garden-rs/garden/releases/tag/v2.0.0), +[1.10.1](https://github.com/garden-rs/garden/releases/tag/v1.10.1) ++ Git Cola [4.11.0](https://github.com/git-cola/git-cola/releases/tag/v4.11.0) ++ GitButler [0.14.6](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.6), +[0.14.5](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.5) ## Credits From 656797355c51b36fd8334e04747b424e7f5cb43d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Jan 2025 11:14:26 +0100 Subject: [PATCH 077/336] rn-119: add Justin Tobler among the helpers --- rev_news/drafts/edition-119.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 4790fd21a..793819a7c 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -156,4 +156,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Justin Tobler. From 4dc93d6e35d17eec4af39c0b8703494f7a163366 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Jan 2025 11:15:49 +0100 Subject: [PATCH 078/336] rn-119: add Adam Johnson among the helpers --- rev_news/drafts/edition-119.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 793819a7c..9c2d9d284 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -156,4 +156,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Justin Tobler. +with help from Justin Tobler and Adam Johnson. From c2a4a91203d1aea6099af7e7ba44c4e5a4ef8314 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Jan 2025 11:52:00 +0100 Subject: [PATCH 079/336] rn-119: improve releases --- rev_news/drafts/edition-119.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 9c2d9d284..c5b1d3ac8 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -122,14 +122,15 @@ __Git tools and sites__ ## Releases -+ Git [2.48.1 and friends](https://public-inbox.org/git/xmqq5xmh46oc.fsf@gitster.g/), ++ Git [2.48.1 and friends (security releases)](https://public-inbox.org/git/xmqq5xmh46oc.fsf@gitster.g/), [2.48.0](https://public-inbox.org/git/xmqqplku7cvm.fsf@gitster.g/), [2.48.0-rc2](https://public-inbox.org/git/xmqqbjwjyalr.fsf@gitster.g/) -+ Git for Windows [2.48.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.48.0-rc2.windows.1) -+ GitLab [17.8.1](https://about.gitlab.com/releases/2025/01/22/patch-release-gitlab-17-8-1-released/), ++ Git for Windows [2.47.1(2) (security release)](https://github.com/git-for-windows/git/releases/tag/v2.47.1.windows.2) +[2.48.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.48.0-rc2.windows.1) ++ GitLab [17.8.1, 17.7.3, 17.6.4](https://about.gitlab.com/releases/2025/01/22/patch-release-gitlab-17-8-1-released/), [17.8](https://about.gitlab.com/releases/2025/01/16/gitlab-17-8-released/), [17.7.2](https://about.gitlab.com/releases/2025/01/15/gitlab-17-7-2-released/), -[17.7.1](https://about.gitlab.com/releases/2025/01/08/patch-release-gitlab-17-7-1-released/) +[17.7.1, 17.6.3, 17.5.5](https://about.gitlab.com/releases/2025/01/08/patch-release-gitlab-17-7-1-released/) + Gerrit Code Review [3.10.4](https://www.gerritcodereview.com/3.10.html#3104), [3.11.1](https://www.gerritcodereview.com/3.11.html#3111), [3.9.9](https://www.gerritcodereview.com/3.9.html#399) From 37fde0a229e876ef85b67b93ec9c37e862108f49 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Jan 2025 22:08:16 +0100 Subject: [PATCH 080/336] rn-119: add xattrs storage article --- rev_news/drafts/edition-119.md | 44 ++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index c5b1d3ac8..ea72c0e65 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -25,9 +25,49 @@ This edition covers what happened during the months of December 2024 and January ### Reviews --> - + ++ [git support for "xattrs" (extended filesystem attributes)?](https://lore.kernel.org/git/5b4c09a9-64bb-e672-e604-120563fc1ad6@das-werkstatt.com/) + + Peter B. asked in the Git mailing list if there was a way to store + [extended attributes (xattrs)](https://en.wikipedia.org/wiki/Extended_file_attributes) + in Git. His use case was professional archival collection and he + needed bit-proof preservation of all xattrs, even larger ones. + + Junio Hamano, the Git maintainer, replied that Git only tracks + "contents, pathnames where these contents are stored, and the + executable bit". + + Peff, alias Jeff King, also replied to Peter confirming that Git, + like most other version control systems, doesn't store most + metadata, but pointing to other tools, + [etckeeper](https://etckeeper.branchable.com/) and + [metastore](https://github.com/przemoc/metastore), that can help + with storing that in a separate file and restoring it on checkout. + + Junio agreed with Peff that Git is extensible that way. + + brian m. carlson replied to Peter mentioning other + possibilities. One is to use the `.gitattributes` files to store a + few xattrs with values that are "well stored as text", and then + `git ls-attr` and a `post-checkout` + [hook](https://git-scm.com/book/ms/v2/Customizing-Git-Git-Hooks) + to restore them. + + Another possibility is to use + [mtree](https://linux.die.net/man/8/mtree) utilities to store or + restore metadata from or into mtree files. brian especially pointed + to [go-mtree](https://github.com/vbatts/go-mtree) which supports + xattrs. As `mtree` is an extensible key-value format, brian uses it + to store the install location of his + [dotfiles](https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory). + + Peter replied to brian thanking everyone for the suggestions and + saying he would especially take a look at `mtree` and + `metastore`. He thanked again brian later saying that `go-mtree` + looked very promising and that he was going to look at + `post-checkout` hooks. ## Developer Spotlight: Justin Tobler From 6bb60ea281a37c8cf1ebdba06dc8b0f1c7ae6b57 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Jan 2025 22:19:45 +0100 Subject: [PATCH 081/336] rn-119: add D. Ben Knoble among the helpers --- rev_news/drafts/edition-119.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index ea72c0e65..2c77c576d 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -197,4 +197,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Justin Tobler and Adam Johnson. +with help from Justin Tobler, D. Ben Knoble and Adam Johnson. From 0714abac8f8d5927a12f0446ff4282a433045c46 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Jan 2025 22:20:50 +0100 Subject: [PATCH 082/336] rn-119: add Brandon Pugh among the helpers --- rev_news/drafts/edition-119.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 2c77c576d..da912fd6c 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -197,4 +197,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Justin Tobler, D. Ben Knoble and Adam Johnson. +with help from Justin Tobler, D. Ben Knoble, +Brandon Pugh and Adam Johnson. From f982d7d1642ea6954795b3bd2d3758bd31c182e0 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Fri, 31 Jan 2025 01:07:31 +0100 Subject: [PATCH 083/336] Supplied a single tiny spelling fix. --- rev_news/drafts/edition-119.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index da912fd6c..13d89370f 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -44,7 +44,7 @@ This edition covers what happened during the months of December 2024 and January metadata, but pointing to other tools, [etckeeper](https://etckeeper.branchable.com/) and [metastore](https://github.com/przemoc/metastore), that can help - with storing that in a separate file and restoring it on checkout. + with storing them in a separate file and restoring them on checkout. Junio agreed with Peff that Git is extensible that way. From 23c3cb150d34e91f9c57dc879b0cbeb2e5d52cd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Fri, 31 Jan 2025 17:31:32 +0100 Subject: [PATCH 084/336] rn-119: minor copy edit --- rev_news/drafts/edition-119.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 13d89370f..a974f6017 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -30,7 +30,7 @@ This edition covers what happened during the months of December 2024 and January + [git support for "xattrs" (extended filesystem attributes)?](https://lore.kernel.org/git/5b4c09a9-64bb-e672-e604-120563fc1ad6@das-werkstatt.com/) - Peter B. asked in the Git mailing list if there was a way to store + Peter B. asked on the Git mailing list if there was a way to store [extended attributes (xattrs)](https://en.wikipedia.org/wiki/Extended_file_attributes) in Git. His use case was professional archival collection and he needed bit-proof preservation of all xattrs, even larger ones. @@ -39,7 +39,7 @@ This edition covers what happened during the months of December 2024 and January "contents, pathnames where these contents are stored, and the executable bit". - Peff, alias Jeff King, also replied to Peter confirming that Git, + Jeff King, alias Peff, also replied to Peter confirming that Git, like most other version control systems, doesn't store most metadata, but pointing to other tools, [etckeeper](https://etckeeper.branchable.com/) and @@ -65,9 +65,9 @@ This edition covers what happened during the months of December 2024 and January Peter replied to brian thanking everyone for the suggestions and saying he would especially take a look at `mtree` and - `metastore`. He thanked again brian later saying that `go-mtree` - looked very promising and that he was going to look at - `post-checkout` hooks. + `metastore`. He thanked brian again in the following message, + saying that `go-mtree` looked very promising and that he was going + to look at `post-checkout` hooks. ## Developer Spotlight: Justin Tobler @@ -165,7 +165,7 @@ __Git tools and sites__ + Git [2.48.1 and friends (security releases)](https://public-inbox.org/git/xmqq5xmh46oc.fsf@gitster.g/), [2.48.0](https://public-inbox.org/git/xmqqplku7cvm.fsf@gitster.g/), [2.48.0-rc2](https://public-inbox.org/git/xmqqbjwjyalr.fsf@gitster.g/) -+ Git for Windows [2.47.1(2) (security release)](https://github.com/git-for-windows/git/releases/tag/v2.47.1.windows.2) ++ Git for Windows [2.47.1(2) (security release)](https://github.com/git-for-windows/git/releases/tag/v2.47.1.windows.2), [2.48.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.48.0-rc2.windows.1) + GitLab [17.8.1, 17.7.3, 17.6.4](https://about.gitlab.com/releases/2025/01/22/patch-release-gitlab-17-8-1-released/), [17.8](https://about.gitlab.com/releases/2025/01/16/gitlab-17-8-released/), From 23a052b550f8f4c57c836a400aad4888f88cbf86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 1 Feb 2025 00:59:51 +0100 Subject: [PATCH 085/336] rn-119: Add links to articles from issue #743 --- rev_news/drafts/edition-119.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 13d89370f..a668cebfa 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -153,6 +153,29 @@ __Various__ __Light reading__ +* [Commit subject case in Git history](https://benknoble.github.io/blog/2025/01/04/git-subject-case/) + analysis by D. Ben Knoble, as a blog post on his Junk Drawer site. +* [Is there a way to split the git history of a file or combine the histories of two files without a merge commit?](https://devblogs.microsoft.com/oldnewthing/20241218-00/?p=110655), + a short exploration by Raymond Chen on The Old New Thing, part of Microsoft Dev Blogs. + * One of other blog posts referenced in the above mentioned exploration was in Git Rev News: + [Mundane git tricks: Combining two files into one while preserving line history](https://devblogs.microsoft.com/oldnewthing/20190514-00/?p=102493) + was mentioned in [Edition #51](https://git.github.io/rev_news/2019/05/22/edition-51/), while + [How do I split a file into two while preserving git line history?](https://devblogs.microsoft.com/oldnewthing/20190916-00/?p=102892) + was not present, but related + [How to split off an older copy of a file while preserving git line history](https://devblogs.microsoft.com/oldnewthing/20230728-00/?p=108498) + was in [Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/). +* [Edit commit message with git reword (`git commit --fixup:reword=`)](https://www.brandonpugh.com/til/git/edit-commit-message-with-reword/) + in Brandon Pugh's TILs: Today I learned... (2024) +* [How I use git worktrees](https://notes.billmill.org/blog/2024/03/How_I_use_git_worktrees.html) + (with the help of custom [worktree](https://github.com/llimllib/personal_code/blob/daab9eb1/homedir/.local/bin/worktree#L1) script) + by Bill Mill on their blog (2024). + * See also [How I Use Git Worktrees](https://matklad.github.io/2024/07/25/git-worktrees.html) + by Alex Kladov (matklad) on his GitHub Pages-based blog, + mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/) +* [Git Trailers](https://alchemists.io/articles/git_trailers) by Brooke Kuhlmann + was mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/), + but was since then updated. + From e99971e16428e44a19318d078091352d7aa60ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 1 Feb 2025 02:11:29 +0100 Subject: [PATCH 086/336] rn-119: Add links to various news, articles, sites, and tools --- rev_news/drafts/edition-119.md | 63 ++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index a668cebfa..c19273f22 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -146,15 +146,65 @@ This edition covers what happened during the months of December 2024 and January __Various__ +* [Highlights from Git 2.48](https://github.blog/open-source/git/highlights-from-git-2-48/) + by Taylor Blau on GitHub Blog, about + faster SHA-1s computations for checksums, adding `--remerge-diff` option to `git range-diff` command, + memory-leak free tests, introducing the Meson build system, and more. +* [What’s new in Git 2.48.0?](https://about.gitlab.com/blog/2025/01/10/whats-new-in-git-2-48-0/) + by Christian Couder on GitLab Blog, about + the Meson build system, Git becoming memory-leak free, improved bundle URI checks, + adding reference consistency checks, more performant 'reftables' implementation, + support for reflogs in `git-refs migrate` (to migrate to 'reftables'), + the 'ref-filter' subsystem optimizations, and more. +* [Git security vulnerabilities announced](https://github.blog/open-source/git/git-security-vulnerabilities-announced-5/) + by Taylor Blau on GitHub Blog: + CVE-2024-50349 (ANSI escape sequences in hostname, and prompt for interactive credentials), + CVE-2024-52006 (specially-crafted repository URL, and credential helpers). + * See also [Clone2Leak: Your Git Credentials Belong To Us](https://flatt.tech/research/posts/clone2leak-your-git-credentials-belong-to-us/) + by RyotaK (@ryotkak), a security engineer at GMO Flatt Security Inc. * Adam Johnson’s book “Boost Your Git DX” [has been updated](https://adamj.eu/tech/2025/01/28/bygdx-second-update/) with 28 new pages of content. This book was first mentioned in [Git Rev News Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/). + __Light reading__ +* [Off-the-shelf governance models for small FOSS projects?](https://antonin.delpeuch.eu/posts/off-the-shelf-governance-models-for-small-foss-projects/) + by Antonin Delpeuch, about an idea for `GOVERNANCE.md` file template or generator, + as another recommended addition to `README.md`, `LICENSE`, and Code of Conduct. + Mergiraf's [`GOVERNANCE.md`](https://codeberg.org/mergiraf/mergiraf/src/branch/main/GOVERNANCE.md) + is his example - the goal here is to make it clear for project users about + what one can do if there is an issue/bug, or if one wants to add some new feature to a project. +* [Re: DCO](https://inbox.sourceware.org/gdb/Z5esfoH+wMxmDyRP@ebb.org/) + by Bradley M. Kuhn of Software Freedom Conservancy on GDB Development mailing list (via GDB public-inbox instance), + about considering implementing Digital Certificate of Origin for a project (like Linux kernel and Git project do). +* [The many names of commit 55039832f98c](https://lwn.net/Articles/1005222/) + by Jonathan Corbet on LWN\.net, about difficuties finding the commit in mainline kernel repository + that corresponds to the specific commit/patch sent to stable-update mailing list, + in the presence of DRM community's wide use of cherry-picking + (without something like "change ID" that is used by Gerrit). +* [The slow death of TuxFamily](https://lwn.net/Articles/1004988/), a French free-software-hosting service, + by Joe Brockmeier on LWN\.net. +* [A Retrospective on the Source Code Control System](https://www.mrochkind.com/mrochkind/docs/SCCSretro2.pdf) + by Marc J. Rochkind (PDF). +* [Considerations for making a tree view component (in a web Git UI) accessible](https://github.blog/engineering/user-experience/considerations-for-making-a-tree-view-component-accessible/) + by Eric Bailey on GitHub Blog. * [Commit subject case in Git history](https://benknoble.github.io/blog/2025/01/04/git-subject-case/) analysis by D. Ben Knoble, as a blog post on his Junk Drawer site. +* [Colliding with the SHA prefix of Linux's initial Git commit](https://people.kernel.org/kees/colliding-with-the-sha-prefix-of-linuxs-initial-git-commit) + Or, how to break all the tools that parse the “Fixes:” tag, + by Kees Cook on people\.kernel\.org. Note that the 12-character prefix collision + was generated with the help of the [lucky-commit](https://github.com/not-an-aardvark/lucky-commit) project; + this tool was mentioned in [Git Rev News Edition #109](https://git.github.io/rev_news/2024/03/31/edition-109/). + * See also [Facing the Git commit-ID collision catastrophe](https://lwn.net/Articles/1001526/) + by Jonathan Corbet on LWN\.net, mentioned in [the previous edition](https://git.github.io/rev_news/2024/12/31/edition-118/). +* [How to set up your ~~own Git server~~ Gitea instance at home for your personal projects](https://www.xda-developers.com/set-up-your-own-git-server-at-home/) + by Ty Sherback on XDA Developers. + * [Gitea](https://about.gitea.com/), a Go-based software forge (fork of [Gogs](https://gogs.io/)), + was first mentioned in [Git Rev News Edition #23](https://git.github.io/rev_news/2017/01/25/edition-23/). + There is also [Forgejo](https://forgejo.org/), fork of Gitea, + mentioned in [Git Rev News Edition #114](https://git.github.io/rev_news/2024/08/31/edition-114/). * [Is there a way to split the git history of a file or combine the histories of two files without a merge commit?](https://devblogs.microsoft.com/oldnewthing/20241218-00/?p=110655), a short exploration by Raymond Chen on The Old New Thing, part of Microsoft Dev Blogs. * One of other blog posts referenced in the above mentioned exploration was in Git Rev News: @@ -182,6 +232,19 @@ __Easy watching__ __Git tools and sites__ +* [Project Harmony (Harmony Agreements)](https://www.harmonyagreements.org/) + is a community-centered group focused on _contributor agreements_ + for free and open source software (FOSS). +* [todo-md](https://codeberg.org/lig/todo-md) is a pre-commit hook written in Bash + that automatically maintains a `TODO.md` file in your repository. + It collects `TODO:` comments from your code and organizes them into a markdown file, + making it easy to track tasks and improvements. + Under MIT license. +* [Yek](https://github.com/bodo-run/yek) (يک) is a fast Rust based tool + to serialize (selected) text-based files in a repository or directory + into a single file meant for LLM consumption. Mentions similar projects. + Under MIT license. + ## Releases From 85cdf98c14b960f457a75384b628e9992b3a6fc0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Feb 2025 22:39:30 +0100 Subject: [PATCH 087/336] =?UTF-8?q?rn-119:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rev_news/drafts/edition-119.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-119.md b/rev_news/drafts/edition-119.md index 6635e414b..13a39edb4 100644 --- a/rev_news/drafts/edition-119.md +++ b/rev_news/drafts/edition-119.md @@ -284,4 +284,4 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Justin Tobler, D. Ben Knoble, -Brandon Pugh and Adam Johnson. +Brandon Pugh, Štěpán Němec and Adam Johnson. From 938ce96f903dcfde75b7b5101c77e2c618ad7685 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Feb 2025 22:40:56 +0100 Subject: [PATCH 088/336] Publish rn-119 in _posts/ --- .../edition-119.md => _posts/2025-01-31-edition-119.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-119.md => _posts/2025-01-31-edition-119.markdown (100%) diff --git a/rev_news/drafts/edition-119.md b/_posts/2025-01-31-edition-119.markdown similarity index 100% rename from rev_news/drafts/edition-119.md rename to _posts/2025-01-31-edition-119.markdown From b566c0c4aa29391ea238fb954aec89532c409736 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Feb 2025 22:40:56 +0100 Subject: [PATCH 089/336] Add draft for rn-120 --- rev_news/drafts/edition-120.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-120.md diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md new file mode 100644 index 000000000..027c55710 --- /dev/null +++ b/rev_news/drafts/edition-120.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 120 (February 28th, 2025) +layout: default +date: 2025-02-28 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 120 (February 28th, 2025) + +Welcome to the 120th 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 January 2025 and February 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 3bd8496dc8eb8dc439ae8d3178e13abf079a0c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Mon, 3 Feb 2025 16:19:00 +0100 Subject: [PATCH 090/336] rn-119: minor copy edit, part II --- _posts/2025-01-31-edition-119.markdown | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/_posts/2025-01-31-edition-119.markdown b/_posts/2025-01-31-edition-119.markdown index 13a39edb4..8480f0208 100644 --- a/_posts/2025-01-31-edition-119.markdown +++ b/_posts/2025-01-31-edition-119.markdown @@ -148,11 +148,11 @@ __Various__ * [Highlights from Git 2.48](https://github.blog/open-source/git/highlights-from-git-2-48/) by Taylor Blau on GitHub Blog, about - faster SHA-1s computations for checksums, adding `--remerge-diff` option to `git range-diff` command, - memory-leak free tests, introducing the Meson build system, and more. + faster SHA-1 computations for checksums, adding `--remerge-diff` option to `git range-diff` command, + memory-leak-free tests, introducing the Meson build system, and more. * [What’s new in Git 2.48.0?](https://about.gitlab.com/blog/2025/01/10/whats-new-in-git-2-48-0/) by Christian Couder on GitLab Blog, about - the Meson build system, Git becoming memory-leak free, improved bundle URI checks, + the Meson build system, Git becoming memory-leak-free, improved bundle URI checks, adding reference consistency checks, more performant 'reftables' implementation, support for reflogs in `git-refs migrate` (to migrate to 'reftables'), the 'ref-filter' subsystem optimizations, and more. @@ -174,14 +174,14 @@ __Light reading__ by Antonin Delpeuch, about an idea for `GOVERNANCE.md` file template or generator, as another recommended addition to `README.md`, `LICENSE`, and Code of Conduct. Mergiraf's [`GOVERNANCE.md`](https://codeberg.org/mergiraf/mergiraf/src/branch/main/GOVERNANCE.md) - is his example - the goal here is to make it clear for project users about - what one can do if there is an issue/bug, or if one wants to add some new feature to a project. + is his example - the goal here is to make it clear for project users + what one can do if there is an issue/bug, or if one wants to add a new feature to a project. * [Re: DCO](https://inbox.sourceware.org/gdb/Z5esfoH+wMxmDyRP@ebb.org/) by Bradley M. Kuhn of Software Freedom Conservancy on GDB Development mailing list (via GDB public-inbox instance), - about considering implementing Digital Certificate of Origin for a project (like Linux kernel and Git project do). + about the considerations when adopting the Developer Certificate of Origin for a project (similarly to the Linux kernel and Git). * [The many names of commit 55039832f98c](https://lwn.net/Articles/1005222/) - by Jonathan Corbet on LWN\.net, about difficuties finding the commit in mainline kernel repository - that corresponds to the specific commit/patch sent to stable-update mailing list, + by Jonathan Corbet on LWN\.net, about difficulties finding the commit in mainline kernel repository + that corresponds to the specific commit/patch sent to the stable-update mailing list, in the presence of DRM community's wide use of cherry-picking (without something like "change ID" that is used by Gerrit). * [The slow death of TuxFamily](https://lwn.net/Articles/1004988/), a French free-software-hosting service, @@ -203,17 +203,17 @@ __Light reading__ by Ty Sherback on XDA Developers. * [Gitea](https://about.gitea.com/), a Go-based software forge (fork of [Gogs](https://gogs.io/)), was first mentioned in [Git Rev News Edition #23](https://git.github.io/rev_news/2017/01/25/edition-23/). - There is also [Forgejo](https://forgejo.org/), fork of Gitea, + There is also [Forgejo](https://forgejo.org/), a fork of Gitea, mentioned in [Git Rev News Edition #114](https://git.github.io/rev_news/2024/08/31/edition-114/). * [Is there a way to split the git history of a file or combine the histories of two files without a merge commit?](https://devblogs.microsoft.com/oldnewthing/20241218-00/?p=110655), a short exploration by Raymond Chen on The Old New Thing, part of Microsoft Dev Blogs. - * One of other blog posts referenced in the above mentioned exploration was in Git Rev News: + * Some of the other blog posts referenced in the above-mentioned exploration also made their appearance in Git Rev News: [Mundane git tricks: Combining two files into one while preserving line history](https://devblogs.microsoft.com/oldnewthing/20190514-00/?p=102493) - was mentioned in [Edition #51](https://git.github.io/rev_news/2019/05/22/edition-51/), while + was mentioned in [Edition #51](https://git.github.io/rev_news/2019/05/22/edition-51/). [How do I split a file into two while preserving git line history?](https://devblogs.microsoft.com/oldnewthing/20190916-00/?p=102892) - was not present, but related + was not present, but the related [How to split off an older copy of a file while preserving git line history](https://devblogs.microsoft.com/oldnewthing/20230728-00/?p=108498) - was in [Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/). + appeared in [Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/). * [Edit commit message with git reword (`git commit --fixup:reword=`)](https://www.brandonpugh.com/til/git/edit-commit-message-with-reword/) in Brandon Pugh's TILs: Today I learned... (2024) * [How I use git worktrees](https://notes.billmill.org/blog/2024/03/How_I_use_git_worktrees.html) @@ -237,7 +237,7 @@ __Git tools and sites__ for free and open source software (FOSS). * [todo-md](https://codeberg.org/lig/todo-md) is a pre-commit hook written in Bash that automatically maintains a `TODO.md` file in your repository. - It collects `TODO:` comments from your code and organizes them into a markdown file, + It collects `TODO:` comments from your code and organizes them into a Markdown file, making it easy to track tasks and improvements. Under MIT license. * [Yek](https://github.com/bodo-run/yek) (يک) is a fast Rust based tool From 809bad6878557084159ee0002cb76d645881756a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 5 Feb 2025 00:10:15 +0530 Subject: [PATCH 091/336] SoC-2025: update possible mentors for projects --- SoC-2025-Ideas.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index ae3b86cb7..194980e5a 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -84,6 +84,8 @@ _Languages_: C, shell(bash) _Possible mentors_: * Patrick Steinhardt < > +* Karthik Nayak < > +* Jialuo She < > ### Machine-Readable Repository Information Query Tool @@ -115,6 +117,7 @@ _Languages_: C, shell(bash) _Possible mentors_: * Patrick Steinhardt < > +* Karthik Nayak < > ### Implement support for reftables in "dumb" HTTP transport From baafed34d59abb1bc77afabf5839fb7409721ae9 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 5 Feb 2025 14:11:48 +0100 Subject: [PATCH 092/336] SoC-2025: add Christian Couder as possible mentor --- SoC-2025-Ideas.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index 194980e5a..d742e1e74 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -57,6 +57,7 @@ _Possible mentors_: * Patrick Steinhardt < > * Jialuo She < > +* Christian Couder < > ### Refactoring in order to reduce Git's global state @@ -86,6 +87,7 @@ _Possible mentors_: * Patrick Steinhardt < > * Karthik Nayak < > * Jialuo She < > +* Christian Couder < > ### Machine-Readable Repository Information Query Tool From a3f6ad051682ba73b32c1baf900d06b590a5f519 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 6 Feb 2025 00:14:24 +0530 Subject: [PATCH 093/336] SoC-2025-microproject: some indentation tweaks of code snippets They were not rendered properly in the website. So, try fixing indentation to check if it helps correct the rendering. --- SoC-2025-Microprojects.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/SoC-2025-Microprojects.md b/SoC-2025-Microprojects.md index a8b820c17..82d725166 100644 --- a/SoC-2025-Microprojects.md +++ b/SoC-2025-Microprojects.md @@ -53,30 +53,30 @@ with Git's dedicated test helpers like `test_path_is_file`. #### Steps to Complete 1. Find a test script using old-style path checks: -```sh -git grep "test -[efd]" t/ -``` + ```sh + git grep "test -[efd]" t/ + ``` 2. Look for patterns like: -```sh -test -f path/to/file # old way -test_path_is_file path/to/file # new way + ```sh + test -f path/to/file # old way + test_path_is_file path/to/file # new way -test -d some/directory # old way -test_path_is_dir some/directory # new way -``` + test -d some/directory # old way + test_path_is_dir some/directory # new way + ``` 3. Important: Only replace checks that are actually testing for conditions, not those used in flow control. For example: -```sh -# DON'T change this - it's flow control -if test -e "file.txt"; then - do_something -fi - -# DO change this - it's a test assertion -test -e "file.txt" || error "file.txt should exist" -``` + ```sh + # DON'T change this - it's flow control + if test -e "file.txt"; then + do_something + fi + + # DO change this - it's a test assertion + test -e "file.txt" || error "file.txt should exist" + ``` #### Notes - Start small: Pick a test file with just a few instances to convert From 99e8a93b7b8756026da74a0c81bb9aec5477d0ab Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Thu, 6 Feb 2025 00:49:50 +0100 Subject: [PATCH 094/336] Some very minor late fixes. --- _posts/2025-01-31-edition-119.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_posts/2025-01-31-edition-119.markdown b/_posts/2025-01-31-edition-119.markdown index 8480f0208..3e38e4eaa 100644 --- a/_posts/2025-01-31-edition-119.markdown +++ b/_posts/2025-01-31-edition-119.markdown @@ -148,7 +148,7 @@ __Various__ * [Highlights from Git 2.48](https://github.blog/open-source/git/highlights-from-git-2-48/) by Taylor Blau on GitHub Blog, about - faster SHA-1 computations for checksums, adding `--remerge-diff` option to `git range-diff` command, + faster SHA-1 computations for checksums, adding option `--remerge-diff` to the `git range-diff` command, memory-leak-free tests, introducing the Meson build system, and more. * [What’s new in Git 2.48.0?](https://about.gitlab.com/blog/2025/01/10/whats-new-in-git-2-48-0/) by Christian Couder on GitLab Blog, about @@ -158,8 +158,8 @@ __Various__ the 'ref-filter' subsystem optimizations, and more. * [Git security vulnerabilities announced](https://github.blog/open-source/git/git-security-vulnerabilities-announced-5/) by Taylor Blau on GitHub Blog: - CVE-2024-50349 (ANSI escape sequences in hostname, and prompt for interactive credentials), - CVE-2024-52006 (specially-crafted repository URL, and credential helpers). + [CVE-2024-50349](https://nvd.nist.gov/vuln/detail/CVE-2024-50349) (ANSI escape sequences in hostname and prompt for interactive credentials) and + [CVE-2024-52006](https://nvd.nist.gov/vuln/detail/CVE-2024-52006) (specially-crafted repository URL and credential helpers). * See also [Clone2Leak: Your Git Credentials Belong To Us](https://flatt.tech/research/posts/clone2leak-your-git-credentials-belong-to-us/) by RyotaK (@ryotkak), a security engineer at GMO Flatt Security Inc. * Adam Johnson’s book “Boost Your Git DX” @@ -215,13 +215,13 @@ __Light reading__ [How to split off an older copy of a file while preserving git line history](https://devblogs.microsoft.com/oldnewthing/20230728-00/?p=108498) appeared in [Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/). * [Edit commit message with git reword (`git commit --fixup:reword=`)](https://www.brandonpugh.com/til/git/edit-commit-message-with-reword/) - in Brandon Pugh's TILs: Today I learned... (2024) + in Brandon Pugh's TILs: Today I learned... (2024). * [How I use git worktrees](https://notes.billmill.org/blog/2024/03/How_I_use_git_worktrees.html) (with the help of custom [worktree](https://github.com/llimllib/personal_code/blob/daab9eb1/homedir/.local/bin/worktree#L1) script) by Bill Mill on their blog (2024). * See also [How I Use Git Worktrees](https://matklad.github.io/2024/07/25/git-worktrees.html) by Alex Kladov (matklad) on his GitHub Pages-based blog, - mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/) + mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/). * [Git Trailers](https://alchemists.io/articles/git_trailers) by Brooke Kuhlmann was mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/), but was since then updated. From 6864bb72e3df92324677e038ba74802ad8fd3cd3 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 7 Feb 2025 13:03:32 +0530 Subject: [PATCH 095/336] SoC-2025: mention 3 as the maximum students we could pick --- SoC-2025-Ideas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index d742e1e74..567092944 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -22,7 +22,7 @@ page though. ### Note about limit of project selection Kindly note that considering the bandwidth of available mentors, the -Git project would only mentor up to 2 contributors this year. +Git project would only mentor up to 3 contributors this year. This is not a hard and fast rule. It may change if more community members are willing to mentor in the coming days. For instance, this may happen when From 4cc9e44e9fdc6beff19ce290bd3dbde162355174 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 11 Feb 2025 10:44:19 +0530 Subject: [PATCH 096/336] SoC-2025: convey that we prefer ref consolidation work --- SoC-2025-Ideas.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index d742e1e74..d99515e47 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -153,6 +153,11 @@ See: - +**Note**: While both ideas are valuable, we prioritize the 'Consolidate ref-related +functionality into git-refs' proposal. If we receive applications for both +projects, preference will be given to applications focusing on the git-refs +consolidation work. + _Expected Project Size_: 175 hours or 350 hours _Difficulty_: Medium From e756f3915d8984cb51356b6353b82748fcf27cd1 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 11 Feb 2025 23:19:08 +0530 Subject: [PATCH 097/336] SoC-2025-Ideas: minor sentence tweak as suggested by Patrick Co-authored-by: Patrick Steinhardt --- SoC-2025-Ideas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index d99515e47..0ba5f56de 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -154,7 +154,7 @@ See: - **Note**: While both ideas are valuable, we prioritize the 'Consolidate ref-related -functionality into git-refs' proposal. If we receive applications for both +functionality into git-refs' proposal over support for reftables in "dumb" HTTP transport. If we receive applications for both projects, preference will be given to applications focusing on the git-refs consolidation work. From b679cea8be7ca64d1d3408a508de20be71a4d573 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 16 Feb 2025 19:19:39 +0530 Subject: [PATCH 098/336] SoC-2025: mention Ghanshyam as a possible mentor --- SoC-2025-Ideas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index 5fd85e53f..de4064eef 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -120,7 +120,7 @@ _Possible mentors_: * Patrick Steinhardt < > * Karthik Nayak < > - +* Ghanshyam Thakkar < > ### Implement support for reftables in "dumb" HTTP transport From 869eef61a45415538dbd9e5cb7875d9f3692a0d5 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 23 Feb 2025 23:01:24 +0530 Subject: [PATCH 099/336] SoC-2025: include Ghanshyam as potential mentor in other projects As per https://public-inbox.org/git/D7UTMXEUFQS8.15HJN6CTDM16S@gmail.com/ --- SoC-2025-Ideas.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/SoC-2025-Ideas.md b/SoC-2025-Ideas.md index de4064eef..fac121ab4 100644 --- a/SoC-2025-Ideas.md +++ b/SoC-2025-Ideas.md @@ -58,6 +58,7 @@ _Possible mentors_: * Patrick Steinhardt < > * Jialuo She < > * Christian Couder < > +* Ghanshyam Thakkar < > ### Refactoring in order to reduce Git's global state @@ -88,6 +89,7 @@ _Possible mentors_: * Karthik Nayak < > * Jialuo She < > * Christian Couder < > +* Ghanshyam Thakkar < > ### Machine-Readable Repository Information Query Tool @@ -122,6 +124,7 @@ _Possible mentors_: * Karthik Nayak < > * Ghanshyam Thakkar < > + ### Implement support for reftables in "dumb" HTTP transport Fetching Git repositories uses one of two major protocols: From ff5486ecf6b929b1fb4a4326a525842aa61ba104 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 27 Feb 2025 12:03:46 +0100 Subject: [PATCH 100/336] rn-120: add releases --- rev_news/drafts/edition-120.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 027c55710..2a39c79d7 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -49,6 +49,28 @@ __Git tools and sites__ ## Releases ++ Git [2.49.0-rc0](https://public-inbox.org/git/xmqqzfi8bljk.fsf@gitster.g/) ++ Git for Windows [2.49.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.49.0-rc0.windows.1), +[2.48.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.48.1.windows.1) ++ GitHub Enterprise [3.16.0](https://help.github.com/enterprise-server@3.16/admin/release-notes#3.16.0), +[3.15.3](https://help.github.com/enterprise-server@3.15/admin/release-notes#3.15.3), +[3.14.8](https://help.github.com/enterprise-server@3.14/admin/release-notes#3.14.8), +[3.13.11](https://help.github.com/enterprise-server@3.13/admin/release-notes#3.13.11), +[3.12.15](https://help.github.com/enterprise-server@3.12/admin/release-notes#3.12.15) ++ GitLab [17.9.1, 17.8.4, 17.7.6](https://about.gitlab.com/releases/2025/02/26/patch-release-gitlab-17-9-1-released/), +[17.9](https://about.gitlab.com/releases/2025/02/20/gitlab-17-9-released/), +[17.8.2, 17.7.4, 17.6.5](https://about.gitlab.com/releases/2025/02/12/patch-release-gitlab-17-8-2-released/) ++ GitKraken [10.7.0](https://help.gitkraken.com/gitkraken-client/current/), +[10.6.3](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.4.17](https://desktop.github.com/release-notes/), +[3.4.16](https://desktop.github.com/release-notes/) ++ Sourcetree [4.2.11](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.11.html) ++ tig [2.5.12](https://github.com/jonas/tig/releases/tag/tig-2.5.12), +[2.5.11](https://github.com/jonas/tig/releases/tag/tig-2.5.11) ++ Garden [2.1.0](https://github.com/garden-rs/garden/releases/tag/v2.1.0) ++ Git Cola [4.12.0](https://github.com/git-cola/git-cola/releases/tag/v4.12.0) ++ GitButler [0.14.8](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.8), +[0.14.7](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.7) ## Credits From 8275178588167fd844aa85306daae8250d13cbe6 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 27 Feb 2025 12:04:23 +0100 Subject: [PATCH 101/336] rn-120: remove redundant year --- rev_news/drafts/edition-120.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 2a39c79d7..94360920f 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -13,7 +13,7 @@ Welcome to the 120th edition of [Git Rev News](https://git.github.io/rev_news/re 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 January 2025 and February 2025. +This edition covers what happened during the months of January and February 2025. ## Discussions From 99cf196f040c33f50478ab0101cfb2d6448766af Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Thu, 27 Feb 2025 17:20:55 +0000 Subject: [PATCH 102/336] rn-120: Add Tower 12.5 for Mac release --- rev_news/drafts/edition-120.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 94360920f..59d4d1efa 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -71,6 +71,7 @@ __Git tools and sites__ + Git Cola [4.12.0](https://github.com/git-cola/git-cola/releases/tag/v4.12.0) + GitButler [0.14.8](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.8), [0.14.7](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.7) ++ Tower for Mac [12.5, 12.5.1, 12.5.2](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) — [Release blog post](https://www.git-tower.com/blog/tower-mac-125/) ## Credits From 844156e55cd6b1f948e2d814456deebeb050ad31 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 27 Feb 2025 23:58:05 +0530 Subject: [PATCH 103/336] rn-120: include interview with Chris Torek --- rev_news/drafts/edition-120.md | 119 ++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 94360920f..c3ccbcde3 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -29,9 +29,122 @@ This edition covers what happened during the months of January and February 2025 ### Support --> - + +## Community Spotlight: Chris Torek + +_[Chris Torek](https://stackoverflow.com/users/1256452/torek) has been a prolific +contributor to the Git topic on Stack Overflow. This edition features an interview +with him. This a continuation of our initiative to interview community contributors +ouitside of our mailing list. Our first interview was [with VonC in edition 106](https://git.github.io/rev_news/2023/12/31/edition-106/#community-spotlight-vonc)_. + + +* **Who are you and what do you do?** + + "Who am I" is way too complicated! 🙂 What I do ... well, I'm now + retired, and you'd think that would give me more time to answer things + like this. + + I used to do a lot of embedded systems programming, and a lot of + internal company education at times (about programming languages, + various hardware functions and limitations, software tools, and such). + That's what led me to [answering StackOverflow questions](https://stackoverflow.com/users/1256452/torek?tab=summary). + +* **What would you name your most important contribution to Git?** + + I haven't put much into Git itself. I fixed a minor issue with + case-insensitive rename once, and something that was annoying me about + `git diff` applied to merge commits [[ref](https://public-inbox.org/git/pull.804.v4.git.git.1591978801.gitgitgadget@gmail.com/)]. + +* **What was your motivation behind answering questions about Git on + Stack Overflow?** + + Here, well, I got roped into explaining Git to a group that was moving + from Mercurial. I found existing descriptions to be lacking. + Eventually that particular job went away but the question-answering + persisted, until I got sufficiently annoyed at StackOverflow itself + (for various reasons) to take a break that continues to this day. + +* **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'm not entirely sure. There are a few big issues today, such as + dealing with OS irregularities (the fact that Windows can't name a + file `aux.h` for instance is a trivial example of the overall problem; + very long file names, case and UTF-8 encoding sensitivities are + another example of the same underlying issue); the ongoing + [transition from SHA-1 to SHA-256](https://git-scm.com/docs/hash-function-transition) + (which works now but there's no cross-compatibility); a number + of minor but sometimes important niggles with merging; support + for extremely large code bases, including submodules and other + ideas (Microsoft's Git VFS). I have no ideas for *how* to + achieve this but a better way to "see" history would, + I think, be a huge improvement. + + One other thing that might be particularly good is an equivalent of + [Mercurial's `evolve` extension](https://www.mercurial-scm.org/doc/evolution/). + But even Mercurial's was never mainstreamed; this is very hard to + get right (whatever "right" means). + +* **If you could remove something from Git without worrying about backwards + compatibility, what would it be?** + + I'm not convinced anything needs to be _removed_, but it would + simplify things a lot if we didn't need SHA-1 compatibility, if + SHA-256 magically just worked and everything were converted over. (And + looking at [VonC's reply](https://git.github.io/rev_news/2023/12/31/edition-106/#community-spotlight-vonc) + I agree that `switch`+`restore` is a much better + split than the old `checkout`.) And, although people like it for + convenience, it might be OK if we all had to use separate + `fetch`-then-(whatever is needed) steps: see below. + +* **What is your favorite Git-related tool/library, outside of Git itself?** + + I don't think I have one. I've used [gitk](https://git-scm.com/docs/gitk) + for history browsing, and if it were somehow improved (see the list of + items above) it might be particularly useful. + +* **What is one of your most favourite features of Git?** + + Speed. Having used the previous generations of version control (and + waited, and waited...), there's nothing quite like doing an update and + having it take only seconds. The distributed nature is also pretty + crucial, though it has its pluses and minuses. + +* **Could you brief a bit about one of your most memorable experience with Git?** + + Hah, the most memorable one was probably one of the worst, back in the + days of Git 1.5 or so. Back then, an initial `git pull` wasn't always + careful about a pre-populated working tree. I had it destroy a week's + worth of code once. Ever since then I've separated pull into fetch + followed by merge-or-rebase. This is long since fixed, but it's + instructive to new users to know that `pull` is really two separate + steps. When I started, I didn't know that: the tutorial I read just + said to run `git pull`. + +* **What is your advice for people who want to start using Git? Where + and how should they start?** + + I'm not entirely fond of any of the introductions I've seen. I started + on a book once (between jobs) but stalled out when I went to work for + another startup. One of these days I plan to get back to it. + +* **There's a common conception that "Git is confusing". What are your + thoughts about the same?** + + There *are* confusing parts, but they are inherent to the issues that + occur with distributed repositories and independent development. The + only way to really understand this is to get a good grounding—hence + the idea of writing a book. + +* **If there’s one tip you would like to share with other Git + developers, what would it be?** + + For *developers* in particular, they should probably have a look at + what surprises Git users. If something didn't work the way someone + expected it to, why? Was it an incorrect expectation (it probably was) + and if so, why did the user *have* that expectation in the first + place? + ## Other News From 3ade44c98461ed71bdd5e36d2b8eb492aae8dc2a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 28 Feb 2025 08:39:33 +0530 Subject: [PATCH 104/336] SoC-120: mention Git's selection in GSoC --- rev_news/drafts/edition-120.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index c3ccbcde3..13356b96f 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -150,6 +150,11 @@ ouitside of our mailing list. Our first interview was [with VonC in edition 106] __Various__ +- The Git project has been accepted as a [Mentor Organization](https://summerofcode.withgoogle.com/programs/2025/organizations/git) + for Google Summer of Code (GSoC) 2025. We can still add project ideas to our + [idea page](https://git.github.io/SoC-2025-Ideas/), and volunteers to (co-)mentor + are still welcome. Feel free to join the discussion in the [corresponding thread](http://public-inbox.org/git/6C29409D-691B-471F-B08C-83E14D35EE13@gmail.com/T/#mb087c1b0ed06fcbd56d4ffa320efbeb42fd4983f). + Also, feel free to spread the word about Git’s participation. __Light reading__ From 2dfd1adcd2742fdf99bec7765065a8132f43526f Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 28 Feb 2025 06:56:27 +0100 Subject: [PATCH 105/336] rn-120: add worktree article --- rev_news/drafts/edition-120.md | 110 ++++++++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index c3ccbcde3..7723f2948 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -21,9 +21,115 @@ This edition covers what happened during the months of January and February 2025 ### General --> - + ++ [[PATCH] worktree: detect from secondary worktree if main worktree is bare](https://lore.kernel.org/git/pull.1829.git.1731653548549.gitgitgadget@gmail.com/) + + Last November, Olga Pilipenco sent a patch to the mailing list + addressing an issue she encountered while working with multiple + [worktrees](https://git-scm.com/docs/git-worktree). + + Git worktrees allow developers to check out multiple branches from + the same repository simultaneously, each in its own working + directory. Unlike creating separate clones, worktrees share the same + object database and references, saving disk space and avoiding the + need to push and fetch between copies of the repository. They can be + very useful when working on multiple features in parallel or when + needing to make a quick fix while in the middle of other development + work. + + The issue happened when a repository had a main worktree that was + bare with `core.bare = true` in `config.worktree`. If a new + secondary worktree was created, then from that secondary worktree + the main worktree appeared as non-bare. This prevented users from + checking out or working with the default branch of the main worktree + (typically "main" or "master") in the secondary worktree. + + When `extensions.worktreeConfig` is enabled, each worktree has its + own configuration settings in a `config.worktree` file that can + override repository-wide settings in the common `config` file. This + allows different worktrees to have different configurations, but it + also means that settings from one worktree aren't automatically + visible to commands running in another worktree. + + Olga found that when inside the secondary worktree, the main + worktree's configuration wasn't initialized, and her patch fixed + that by loading the main worktree's `config.worktree` file only when + required. + + Unfortunately Olga's email fell through the cracks, receiving no + response. But last January she sent a + [version 2](https://lore.kernel.org/git/pull.1829.v2.git.1737063335673.gitgitgadget@gmail.com/) + of her patch. There was no code change compared to the first + version, but she added people in "Cc:", and she had rebased the + patch on top of the "maint" branch. + + This time Eric Sunshine replied. He acknowledged that this was a + real problem and noted that it had been documented in a "NEEDSWORK" + comment added in 2019 into the code that mentioned it. He then + attempted to rewrite the commit message of the patch in a way that + was "more idiomatic" to the project and that added more details to + help understand the problem. + + The suggested commit message especially mentioned that when + `extensions.worktreeConfig` is true, commands run in a secondary + worktree only consulted `$commondir/config` and + `$commondir/worktrees//config.worktree`. Thus they never saw + that the main worktree's `core.bare` setting was true in + `$commondir/config.worktree`. + + Eric also suggested removing some parts of Olga's commit message + that talked about other solutions she had considered, or that + repeated in which circumstances the problem appeared. Then there + were a number of small comments on the code part of the patch. + + Olga replied to Eric saying that the commit message he proposed was + "so much better" than the original one. She agreed with most of + Eric's suggestions and answered the few questions he asked. + + Eric replied explaining some technical details and making a few more + suggestions. + + Junio Hamano, the Git maintainer then replied to Eric thanking him + "for an easy-to-read review" and thanking Olga for working on this + issue. + + Eric and Olga further discussed technical improvements to the + patch. In the course of that discussion, Eric explained the + historical context related to using the "bare main worktree" + expression: + + > It's a historic "accident" that when worktree support was designed, + > the idea of linking worktrees to a bare repository was not considered. + > Support for using worktrees with a bare repository was added later. + > However, by that time, the term "main worktree" was already well + > established, with the very unfortunate result that even when there is + > no actual "main worktree" but only a bare repository with "linked + > worktrees" hanging off it, the repository itself is usually referred + > to as the "bare main worktree", which is an obvious misnomer; the + > repository is just a repository (i.e. the object database and other + > meta-information) and there is no actual main worktree. + + Olga then sent a + [version 3](https://lore.kernel.org/git/pull.1829.v3.git.1738346881907.gitgitgadget@gmail.com/) + of her patch. It used the commit message suggested by Eric, and + implemented his suggestions. + + Junio reviewed this new version of the patch and had a single + question about the code that decided when it was necessary to read + the main worktree's `config.worktree` file. Olga and Junio further + discussed how to make it clearer what that code was doing, and + eventually agreed on adding a four line long comment on top of it. + + Olga then sent a + [version 4](https://lore.kernel.org/git/pull.1829.v4.git.1738737014194.gitgitgadget@gmail.com/) + of her patch which only added that four line long comment. + + The patch was later merged into the 'master' branch, so the next + 2.49 version of Git that should be released in a few weeks will + finally resolve a long-standing issue and significantly enhance the + usability of Git worktrees for developers working with bare + repositories. __Git tools and sites__ ++ [JJ (Jujutsu) Cheat Sheet](https://justinpombrio.net/2025/02/11/jj-cheat-sheet.html) + by Justin Pombrio. + + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/), a Git-compatible version control system, + written in Rust, was first mentioned in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). ++ [Beej's Guide to Git](https://beej.us/guide/bggit/). ++ [Gookme](https://lmaxence.github.io/gookme/) is simple and easy-to-use, + yet powerful and language agnostic git hook manager for [monorepos](https://monorepo.tools/). + Successor of Mookme. Written in Go, under MIT license. + ## Releases From f160b0a00644f151f38ffc45e5021255f6f51298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sun, 2 Mar 2025 04:28:48 +0100 Subject: [PATCH 109/336] rn-120: Add 2 links from @bpugh --- rev_news/drafts/edition-120.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index af513436f..28db0fc1a 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -274,6 +274,8 @@ __Light reading__ by Scott Chacon on GitButler Blog. + See also [Popular git config options](https://jvns.ca/blog/2024/02/16/popular-git-config-options/) by Julia Evans on her blog, which was mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). ++ [How to do patch-based review with git range-diff](https://blog.gitbutler.com/interdiff-review-with-git-range-diff/) + by Scott Chacon on GitButler Blog. + [Markdown's Big Brother: Say Hello to AsciiDoc](https://www.git-tower.com/blog/asciidoc-quick-guide) by Marvin Blome on Git-Tower Blog. + Another similar file format for textual data and technical documentation @@ -288,6 +290,8 @@ __Light reading__ with `includeIf`, a short post by Matteo Pampana on Medium\.com. + [Why Some Source Code Files Shouldn’t Be Managed via Git-Based Version Control](https://www.itsecurityguru.org/2025/01/27/why-some-source-code-files-shouldnt-be-managed-via-git-based-version-control/) on IT Security Guru. ++ [Git Stash Without the Branch Name](https://www.brandonpugh.com/blog/git-stash-without-the-branch-name/) + post by Brandon Pugh. + [Microsoft Engineers Highlight Git Repository Bloat Flaw](https://devops.com/microsoft-engineers-highlight-git-repository-bloat-flaw/) by Adrian Bridgwater on DevOps\.com blog (2024). From 9159464ad71710ca7da08db83d8d1751fe0e011f Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 2 Mar 2025 12:56:27 +0100 Subject: [PATCH 110/336] rn-120: add Chris Torek among the helpers --- rev_news/drafts/edition-120.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 28db0fc1a..5bb869de5 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -345,4 +345,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Chris Torek. From f0801caedb82a5bebfa317468342bdf83bf84e76 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 2 Mar 2025 12:58:24 +0100 Subject: [PATCH 111/336] rn-120: add Brandon Pugh among the helpers --- rev_news/drafts/edition-120.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 5bb869de5..85522b7ea 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -345,4 +345,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Chris Torek. +with help from Chris Torek and Brandon Pugh. From e17790f8e625a70d747790b9729dab7492f358b4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 2 Mar 2025 12:59:05 +0100 Subject: [PATCH 112/336] =?UTF-8?q?rn-120:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rev_news/drafts/edition-120.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 85522b7ea..2b799f4a2 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -345,4 +345,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Chris Torek and Brandon Pugh. +with help from Chris Torek, Štěpán Němec and Brandon Pugh. From c92de65793c4930b8e4a338d6c9f22ab33a00fd0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 2 Mar 2025 13:00:23 +0100 Subject: [PATCH 113/336] rn-120: add Bruno Brito among the helpers --- rev_news/drafts/edition-120.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-120.md b/rev_news/drafts/edition-120.md index 2b799f4a2..81721d679 100644 --- a/rev_news/drafts/edition-120.md +++ b/rev_news/drafts/edition-120.md @@ -345,4 +345,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Chris Torek, Štěpán Němec and Brandon Pugh. +with help from Chris Torek, Štěpán Němec, Bruno Brito +and Brandon Pugh. From 7a768e5c96813c11786b07a2d588ca4fb9424079 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 2 Mar 2025 13:02:17 +0100 Subject: [PATCH 114/336] Publish rn-120 in _posts/ --- .../edition-120.md => _posts/2025-02-28-edition-120.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-120.md => _posts/2025-02-28-edition-120.markdown (100%) diff --git a/rev_news/drafts/edition-120.md b/_posts/2025-02-28-edition-120.markdown similarity index 100% rename from rev_news/drafts/edition-120.md rename to _posts/2025-02-28-edition-120.markdown From 06dade27cfffae49a47298c2406f40ae966c673d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 2 Mar 2025 13:02:17 +0100 Subject: [PATCH 115/336] Add draft for rn-121 --- rev_news/drafts/edition-121.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-121.md diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md new file mode 100644 index 000000000..2cc724afc --- /dev/null +++ b/rev_news/drafts/edition-121.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 121 (March 31st, 2025) +layout: default +date: 2025-03-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 121 (March 31st, 2025) + +Welcome to the 121st 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 February 2025 and March 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 72bd95c2b7dededa821ed78cbe4ec1b2b1a125b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sun, 2 Mar 2025 15:38:02 +0100 Subject: [PATCH 116/336] rn-120: Fix formatting error --- _posts/2025-02-28-edition-120.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-02-28-edition-120.markdown b/_posts/2025-02-28-edition-120.markdown index 81721d679..7e0a12e98 100644 --- a/_posts/2025-02-28-edition-120.markdown +++ b/_posts/2025-02-28-edition-120.markdown @@ -261,7 +261,7 @@ __Various__ [idea page](https://git.github.io/SoC-2025-Ideas/), and volunteers to (co-)mentor are still welcome. Feel free to join the discussion in the [corresponding thread](http://public-inbox.org/git/6C29409D-691B-471F-B08C-83E14D35EE13@gmail.com/T/#mb087c1b0ed06fcbd56d4ffa320efbeb42fd4983f). Also, feel free to spread the word about Git’s participation. -+ [GitHub - Repositories – Updated insight views (General Availability)(https://github.blog/changelog/2025-02-25-repositories-updated-insight-views-general-availability/) ++ [GitHub - Repositories – Updated insight views (General Availability)](https://github.blog/changelog/2025-02-25-repositories-updated-insight-views-general-availability/) in GitHub Changelog. From 993959817f60083b19374ce9a474b58082998293 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 2 Mar 2025 16:45:18 +0100 Subject: [PATCH 117/336] Tiny fixes, part 2. --- _posts/2025-02-28-edition-120.markdown | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_posts/2025-02-28-edition-120.markdown b/_posts/2025-02-28-edition-120.markdown index 7e0a12e98..cea9555b9 100644 --- a/_posts/2025-02-28-edition-120.markdown +++ b/_posts/2025-02-28-edition-120.markdown @@ -272,9 +272,9 @@ __Light reading__ Post by Scott Chacon on GitButler Blog. + [How Core Git Developers Configure Git](https://blog.gitbutler.com/how-git-core-devs-configure-git/) by Scott Chacon on GitButler Blog. - + See also [Popular git config options](https://jvns.ca/blog/2024/02/16/popular-git-config-options/) + + See also [Popular `git config` options](https://jvns.ca/blog/2024/02/16/popular-git-config-options/) by Julia Evans on her blog, which was mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). -+ [How to do patch-based review with git range-diff](https://blog.gitbutler.com/interdiff-review-with-git-range-diff/) ++ [How to do patch-based review with `git range-diff`](https://blog.gitbutler.com/interdiff-review-with-git-range-diff/) by Scott Chacon on GitButler Blog. + [Markdown's Big Brother: Say Hello to AsciiDoc](https://www.git-tower.com/blog/asciidoc-quick-guide) by Marvin Blome on Git-Tower Blog. @@ -307,8 +307,8 @@ __Git tools and sites__ + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/), a Git-compatible version control system, written in Rust, was first mentioned in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). + [Beej's Guide to Git](https://beej.us/guide/bggit/). -+ [Gookme](https://lmaxence.github.io/gookme/) is simple and easy-to-use, - yet powerful and language agnostic git hook manager for [monorepos](https://monorepo.tools/). ++ [Gookme](https://lmaxence.github.io/gookme/) is a simple and easy-to-use, + yet powerful and language agnostic Git hook manager for [monorepos](https://monorepo.tools/). Successor of Mookme. Written in Go, under MIT license. From 86bfe15aaa0af225d8401051876cd6e3a92efa51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Mon, 3 Mar 2025 15:52:29 +0100 Subject: [PATCH 118/336] rn-120: fix a typo --- _posts/2025-02-28-edition-120.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-02-28-edition-120.markdown b/_posts/2025-02-28-edition-120.markdown index cea9555b9..8ad9194cd 100644 --- a/_posts/2025-02-28-edition-120.markdown +++ b/_posts/2025-02-28-edition-120.markdown @@ -281,7 +281,7 @@ __Light reading__ + Another similar file format for textual data and technical documentation is [reStructuredText](https://docutils.sourceforge.io/rst.html) (RST, ReST, or reST). It is used, among others, by the Python programming language community, - and is is part of the Docutils project of the Python Doc-SIG. + and is part of the Docutils project of the Python Doc-SIG. + [Understanding the Trunk-Based Development Workflow](https://www.git-tower.com/blog/trunk-based-development) by Bruno Brito on Git-Tower Blog (2024). + See also the site, From da7c38b05735193428dbb1b52587676f963b6e6b Mon Sep 17 00:00:00 2001 From: Lucas Seiki Oshiro Date: Wed, 5 Mar 2025 11:09:40 -0300 Subject: [PATCH 119/336] Microproject Info: replace [Mentoring][PATCH] by [Mentoring PATCH] --- General-Microproject-Information.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 8d0a51429..67e00e590 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -39,7 +39,7 @@ well using the Git development process. It is *expected* that what you send will need several rounds of reviews and discussions. If you are not sure at all about a patch you -can put "[GSoC][RFC/PATCH]" or "[Outreachy][RFC/PATCH]", depending on +can put "[GSoC RFC/PATCH]" or "[Outreachy RFC/PATCH]", depending on the mentoring program you are applying for, at the beginning of its subject. @@ -140,8 +140,8 @@ the following steps: [submitGit](https://submitgit.herokuapp.com/). When you submit your patch, please mention that you plan to apply - for the GSoC or Outreachy. You can use "[GSoC][PATCH ...]" or - "[Outreachy][PATCH ...]" in the subject of the emails you send for + for the GSoC or Outreachy. You can use "[GSoC PATCH ...]" or + "[Outreachy PATCH ...]" in the subject of the emails you send for that purpose. This will ensure that we take special care not to overlook your application among the large pile of others. @@ -173,7 +173,7 @@ rewriting a small amount of code, your patch should change only "foo.c" and "foo.h". If you change a test file, the title of your patch (after the -"[GSoC][PATCH ...]" or "[Outreachy][PATCH ...]" part) should start +"[GSoC PATCH ...]" or "[Outreachy PATCH ...]" part) should start with "tXXXX: " where tXXXX is the start of the filename of the test script you change. If you change "foo.c" or "foo.h", the title of your patch should probably start with "foo: ". From 25903cc9e13763629bf61dd51cf603486abbd320 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 14 Mar 2025 16:40:45 +0100 Subject: [PATCH 120/336] Hacking-Git: remove mention of the Review Club --- Hacking-Git.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index a89ff8e1f..62fd4f231 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -80,7 +80,7 @@ suggest improvements. Thanks! * [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) list the status of various development topics. -* [Git's release calendar](https://tinyurl.com/gitCal) shows the planned release cycles, the maintainer's planned offline time, the Review Club meetings and possibly other events. +* [Git's release calendar](https://tinyurl.com/gitCal) shows the planned release cycles, the maintainer's planned offline time, and possibly other events. * [Git Rev News](https://git.github.io/rev_news/archive/) newsletter. From 37cdd88e87b3ce9a709886604ab9bb3e2c093ea2 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 14 Mar 2025 16:48:04 +0100 Subject: [PATCH 121/336] Hacking-Git: add an entry to build with Meson --- Hacking-Git.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index 62fd4f231..f553e86d8 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -18,7 +18,9 @@ suggest improvements. Thanks! ## Building Git -* ["`INSTALL`"](https://github.com/git/git/blob/master/INSTALL) +* ["`INSTALL`"](https://github.com/git/git/blob/master/INSTALL) to build using [Make](https://www.gnu.org/software/make/). + +* ["`meson.build`"](https://github.com/git/git/blob/master/meson.build) to build using [Meson](https://mesonbuild.com/). * ["Installing from Source"](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git#_installing_from_source) in the Pro Git book From af98455d7b0d0f61e8602315dd53a078da7e8510 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 15 Mar 2025 17:23:56 +0530 Subject: [PATCH 122/336] rn-121: include interview with Peter Krefting --- rev_news/drafts/edition-121.md | 57 ++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index 2cc724afc..956aaf179 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -29,9 +29,60 @@ This edition covers what happened during the months of February 2025 and March 2 ### Support --> - +## Developer Spotlight: Peter Krefting + +* **Who are you and what do you do?** + + My name is Peter Krefting and I am a software engineer. Hailing from Sweden, + I moved to Norway for my first job, at Opera Software, mostly working on + internals such as Unicode support and internal libraries. I ended up staying + in Norway and am currently working for a small company providing monitoring + equipment for digital TV. + +* **What are you doing on the Git project these days, and why?** + + My answer to these two are the same, I am the maintainer of the + [Swedish translation of Git](https://github.com/git-l10n/git-po/blob/master/po/sv.po). + I like having software running in my own language, and sometimes + you have to take matters in your own hands. + +* **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 think [`git gui`](https://git-scm.com/docs/git-gui) and + [gitk](https://git-scm.com/docs/gitk) could need some extra love, + these are my daily drivers, in addition to the command line. + +* **Is there something that developers could do to ease the life of + translators?** + + My main gripe is using library function names as verbs, + like "cannot fsync". That's hard to read even in the original + language, even for a C developer like myself. + +* **What is your favorite Git-related tool/library, outside of + Git itself?** + + I like simple and clean interfaces, so using [cgit](https://wiki.archlinux.org/title/Cgit) + to visualize history on a web server is very nice. + +* **What is your toolbox for interacting with the mailing list and for + development of Git?** + + I mostly just read the mailing list, and only a small percentage of the + posts to it; the localization is handled through [GitHub pull requests](https://github.com/git-l10n/git-po/pulls?q=is%3Apr), + so that's where that work happens. The few patches I have sent to the + mailing list have been very manual, using `git format-patch` and + the [Alpine mail client](https://alpineapp.email/). + +* **What is your advice for people who want to start Git development? + Where and how should they start?** + + Find some small part you want to improve, and work on that. Git is a + fairly complex piece of software, implemented in several different + languages, making it hard to get an overview. I most definitely do not, + even if I have read (and translated) most of the user-visible strings. + ## Other News From 5253a9d63cf934e049a5b06fc355be8a31520af8 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 15 Mar 2025 17:30:09 +0530 Subject: [PATCH 123/336] rn-121: correct monospaces in some places --- rev_news/drafts/edition-121.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index 956aaf179..aa58a7f82 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -50,14 +50,14 @@ This edition covers what happened during the months of February 2025 and March 2 something in Git for a full year, what would it be?** I think [`git gui`](https://git-scm.com/docs/git-gui) and - [gitk](https://git-scm.com/docs/gitk) could need some extra love, + [`gitk`](https://git-scm.com/docs/gitk) could need some extra love, these are my daily drivers, in addition to the command line. * **Is there something that developers could do to ease the life of translators?** My main gripe is using library function names as verbs, - like "cannot fsync". That's hard to read even in the original + like `cannot fsync`. That's hard to read even in the original language, even for a C developer like myself. * **What is your favorite Git-related tool/library, outside of From 51ce1c182415c00a973df4e9473bfafbd37b97e9 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 19 Mar 2025 16:54:37 +0100 Subject: [PATCH 124/336] Replace outdated links to Git for Windows' wiki Git for Windows' wiki pages were migrated in https://github.com/git-for-windows/git-for-windows.github.io/pull/59. --- Hacking-Git.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index f553e86d8..9320fd893 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -56,7 +56,7 @@ suggest improvements. Thanks! * ["`SubmittingPatches`"](https://git-scm.com/docs/SubmittingPatches/) -* [Git for Windows' "Good commits"](https://github.com/git-for-windows/git/wiki/Good-commits) +* [Git for Windows' "Good commits"](https://gitforwindows.org/good-commits) ## Process related tools and sites @@ -108,7 +108,7 @@ suggest improvements. Thanks! ## Debugging -* [Git for Windows' Debugging Git](https://github.com/git-for-windows/git/wiki/Debugging-Git) +* [Git for Windows' Debugging Git](https://gitforwindows.org/debugging-git) * [Launching GDB explanations in CodingGuidelines](https://github.com/git/git/blob/v2.27.0/Documentation/CodingGuidelines#L441-L445) From f3800bf60962e2cd9f59bac3263bb82a3b002ca8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 22 Mar 2025 12:23:34 +0100 Subject: [PATCH 125/336] rn-91: fix bad date in filename --- ...2-09-31-edition-91.markdown => 2022-09-30-edition-91.markdown} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2022-09-31-edition-91.markdown => 2022-09-30-edition-91.markdown} (100%) diff --git a/_posts/2022-09-31-edition-91.markdown b/_posts/2022-09-30-edition-91.markdown similarity index 100% rename from _posts/2022-09-31-edition-91.markdown rename to _posts/2022-09-30-edition-91.markdown From ea4a0d939d22e87480bdcda22413b47de5d8169d Mon Sep 17 00:00:00 2001 From: Karthik Nayak Date: Mon, 24 Mar 2025 15:16:17 +0100 Subject: [PATCH 126/336] microprojects: add notes for the 2025 microproject list From an ongoing discussion on the mailing list [1], it would be nice to add some notes to the 'Modernize a test script' microproject. Let's do that. [1]: https://lore.kernel.org/all/CAPig+cRm+sc+Rk-4SuQ5CrPeZLG2Nzz9B7+6OZxCq7tV5mzmBA@mail.gmail.com/ --- SoC-2025-Microprojects.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SoC-2025-Microprojects.md b/SoC-2025-Microprojects.md index 82d725166..67be0f91c 100644 --- a/SoC-2025-Microprojects.md +++ b/SoC-2025-Microprojects.md @@ -206,3 +206,8 @@ There should be only one kind of change per commit. For example if one of your commits indents test bodies with TABs, instead of spaces, then this should be the only kind of change in this commit. +#### Notes +- only work on t/t????-*.sh scripts. +- pick just one script (so as to avoid exhausting the pool for other candidates). +- only convert `test -[def]` instances which semantically are assertions + (i.e. used as part of a &&-chain). From 7c222eec935512b2dd63c2a5e72351910280bd1e Mon Sep 17 00:00:00 2001 From: Karthik Nayak Date: Tue, 25 Mar 2025 09:55:19 +0100 Subject: [PATCH 127/336] microprojects: clarify last note in modernization test scripts The last note in the modernization test scripts is a little vague. Clarify it to be more clear about which modernization point it is referring to from the ones in the quoted email. --- SoC-2025-Microprojects.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/SoC-2025-Microprojects.md b/SoC-2025-Microprojects.md index 67be0f91c..d382dbf69 100644 --- a/SoC-2025-Microprojects.md +++ b/SoC-2025-Microprojects.md @@ -207,7 +207,8 @@ of your commits indents test bodies with TABs, instead of spaces, then this should be the only kind of change in this commit. #### Notes -- only work on t/t????-*.sh scripts. +- only work on `t/t????-*.sh` scripts. - pick just one script (so as to avoid exhausting the pool for other candidates). -- only convert `test -[def]` instances which semantically are assertions - (i.e. used as part of a &&-chain). +- When converting `test -[def]` to use `test_path_exists()` and cousins + only convert instances which semantically are assertions (i.e. used as part + of a &&-chain). From 63f785c1710a4abbe9c8c0a4735259675cbd3ab0 Mon Sep 17 00:00:00 2001 From: ayu-ch Date: Thu, 27 Mar 2025 18:30:19 +0530 Subject: [PATCH 128/336] GSoC-participants: add GSoC 2024 participants to the list With GSoC 2025 approaching, adding GSoC 2024 participants will help new contributors understand their journey, making it easier for them to navigate the program and the project. Signed-off-by: ayu-ch --- GSoC-Participants.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/GSoC-Participants.md b/GSoC-Participants.md index 275c46c2b..df82c0b85 100644 --- a/GSoC-Participants.md +++ b/GSoC-Participants.md @@ -8,6 +8,17 @@ to Git via GSoC. +### 2024 + +1. Jialuo She [ [project](https://summerofcode.withgoogle.com/archive/2024/projects/ukm4PTEF) ] [ [final report](https://luolibrary.com/2024/08/25/GSoC-Final-Report/) ] [ [blog](https://luolibrary.com/) ] +2. Ghanshyam Thakkar [ [project](https://summerofcode.withgoogle.com/archive/2024/projects/e9C4rhrv) ] [ [final report](https://spectre10.github.io/posts/gsoc_final_report/) ] [ [blog](https://spectre10.github.io/) ] +3. Chandra Pratap [ [project](https://summerofcode.withgoogle.com/archive/2024/projects/tlh611d7) ] [ [final report](https://chand-ra.github.io/2024/08/24/GSoC-Final-Report.html) ] [ [blog](https://chand-ra.github.io/) ] + +#### References + +- [GSoC archive](https://summerofcode.withgoogle.com/archive/2024/organizations/git) +- [Rev News article](https://git.github.io/rev_news/2024/05/31/edition-111/) + ### 2023 1. Shuqi Liang [ [project](https://summerofcode.withgoogle.com/archive/2023/projects/Rkbc1Abe) ] [ [final report](https://cheskaqiqi.github.io/2023/08/22/Final/) ] [ [blog](https://cheskaqiqi.github.io/tags/GSoC/) ] From 3f596ae95b8115a967e9a99f3cd0a91bf9ab254e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 30 Mar 2025 10:42:51 +0200 Subject: [PATCH 129/336] rn-121: add releases --- rev_news/drafts/edition-121.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index aa58a7f82..483509e2f 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -100,6 +100,31 @@ __Git tools and sites__ ## Releases ++ Git [2.49.0](https://public-inbox.org/git/xmqqfrjfilc8.fsf@gitster.g/), +[2.49.0-rc2](https://public-inbox.org/git/xmqq34fk958s.fsf@gitster.g/), +[2.49.0-rc1](https://public-inbox.org/git/xmqqjz94r8p0.fsf@gitster.g/) ++ Git for Windows [2.49.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.49.0.windows.1), +[2.49.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.49.0-rc2.windows.1), +[2.49.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.49.0-rc1.windows.1) ++ GitLab [17.10.1, 17.9.3, 17.8.6](https://about.gitlab.com/releases/2025/03/26/patch-release-gitlab-17-10-1-released/), +[17.10](https://about.gitlab.com/releases/2025/03/20/gitlab-17-10-released/), +[17.9.2, 17.8.5, 17.7.7](https://about.gitlab.com/releases/2025/03/12/patch-release-gitlab-17-9-2-released/) ++ GitHub Enterprise [3.16.1](https://help.github.com/enterprise-server@3.16/admin/release-notes#3.16.1), +[3.15.5](https://help.github.com/enterprise-server@3.15/admin/release-notes#3.15.5), +[3.14.10](https://help.github.com/enterprise-server@3.14/admin/release-notes#3.14.10), +[3.13.13](https://help.github.com/enterprise-server@3.13/admin/release-notes#3.13.13), +[3.12.17](https://help.github.com/enterprise-server@3.12/admin/release-notes#3.12.17), +[3.16.0](https://help.github.com/enterprise-server@3.16/admin/release-notes#3.16.0), +[3.15.4](https://help.github.com/enterprise-server@3.15/admin/release-notes#3.15.4), +[3.14.9](https://help.github.com/enterprise-server@3.14/admin/release-notes#3.14.9), +[3.13.12](https://help.github.com/enterprise-server@3.13/admin/release-notes#3.13.12), +[3.12.16](https://help.github.com/enterprise-server@3.12/admin/release-notes#3.12.16) ++ GitKraken [10.8.0](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.4.18](https://desktop.github.com/release-notes/) ++ git-credential-azure [0.3.1](https://github.com/hickford/git-credential-azure/releases/tag/v0.3.1) ++ git-credential-oauth [0.15.0](https://github.com/hickford/git-credential-oauth/releases/tag/v0.15.0) ++ GitButler [0.14.14](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.14), +[0.14.13](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.13) ## Credits From 4b1f05cf91d7ffd7f7ab9f152db105f992d688da Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 30 Mar 2025 11:30:08 +0200 Subject: [PATCH 130/336] rn-121: add Outreachy internship article --- rev_news/drafts/edition-121.md | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index 483509e2f..7831ec696 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -17,9 +17,24 @@ This edition covers what happened during the months of February 2025 and March 2 ## Discussions - + +* [Git participated in the December 2024 Outreachy round](https://www.outreachy.org/alums/2024-12/) + + All the Outreachy interns have successfully completed their + internship: + + - Seyi Kuforiji worked on the "Convert unit tests to use the clar + testing framework" project, mentored by Patrick Steinhardt and + Phillip Wood. See + [his completion email](https://lore.kernel.org/git/CAGedMtcLRjr0GVNYmUU_tacrA0aRvOCYFGyOy0FACTBL=X3cwA@mail.gmail.com/) + and + [his retrospect blog post](https://seyi-kuforiji-902b48.gitlab.io/posts/a-retrospect-on-new-test-conversions). + + - Usman Akinyemi worked on the "Finish adding a 'os-version' + capability to Git protocol v2" project, mentored by Christian + Couder. See + [his completion blog post](https://uniqueusman.hashnode.dev/my-outreachy-internship-experience-at-git). __Git tools and sites__ ++ [git-who](https://github.com/sinclairtarget/git-who) is a command-line tool for finding + the people responsible for entire components or subsystems in a codebase. + You can think of `git-who` sort of like `git blame` but for file trees rather than individual files. + Written in Go, under MIT license. ++ [chrondb](https://chrondb.moclojer.com/) ([repo](https://github.com/moclojer/chrondb)) + is a chronological key/value database, + where storing data is based on database-shaped `git` (core) architecture and Lucene for indexing. + Written in Clojure, uses MIT license. ++ [Calendar.txt](https://terokarvinen.com/2021/calendar-txt/) is a solution + to keep your calendar in a plain text file. + One of it's advantages is that it is versionable: because it's plain text, you can keep it in git. + You can also easily take diff of calendar files, as it's one day one line. + + See also [Todo.txt](http://todotxt.org/) to keep your TODO list in a plain text file, + and tools like [Taskwarrior](https://taskwarrior.org/), and + [Plain Text Accounting (PTA)](https://plaintextaccounting.org/). ++ [YSK there are open-source (gamified) tutorials to learn git](https://programming.dev/post/26285997) + post provides list of some tutorials and interactive learning tools, like + + [Oh My Git!](https://ohmygit.org/), an open source game about learning Git, + first mentioned in [Git Rev News Edition #72](https://git.github.io/rev_news/2021/02/27/edition-72/). + + [Learn Git Branching](http://learngitbranching.js.org/), visual and interactive way to learn Git on the web, + first mentioned in [Git Rev News Edition #30](https://git.github.io/rev_news/2017/08/16/edition-30/). + + [Git Gud: Master Git Through Play](https://www.gitmastery.me/), a modern website + to learn Git commands and concepts through an interactive game. + + [Git+ Coach](https://github.com/vishal2376/git-coach), a free education app + designed to help users learn Git and its commands. Written in Kotlin, for Android. + + [Git-it](https://github.com/jlord/git-it-electron) is a desktop (Mac, Windows and Linux) Electron app + that teaches you how to use Git and GitHub on the command line. + First mentioned in [Git Rev News Edition #7](https://git.github.io/rev_news/2015/09/09/edition-7/) ++ [BeanHub](https://beanhub.io/) is a modern accounting book app + based on the most popular open source version control system Git + and text-based double entry accounting book software [Beancount](https://beancount.github.io/docs/index.html). + [Mostly open-sourced](https://beanhub.io/open-source/). See also the following posts by Fang-Pen Lin: + + [My Beancount books are 95% automatic after 3 years](https://fangpenlin.com/posts/2024/12/30/my-beancount-books-are-95-percent-automatic/). + + [How BeanHub works part 1: the danger of processing Beancount data with sandbox](https://beanhub.io/blog/2024/04/23/how-beanhub-works-part1-sandboxing/). + + [How BeanHub works part 2: large-scale auditable Git repository system based on container layers](https://beanhub.io/blog/2024/06/26/how-beanhub-works-part2-layer-based-git-repos/). + + ## Releases From 25d11a279dd301f36cad1d0d3bccfbb63ae847ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 1 Apr 2025 09:02:37 +0200 Subject: [PATCH 150/336] rn-121: Add note to link about "commit 0" --- rev_news/drafts/edition-121.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index f8bfcf0fb..1c0f54f6b 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -310,7 +310,12 @@ __Light reading__ by Kissaki on programming\.dev Lemmy instance.
[Lemmy](https://join-lemmy.org/docs/index.html) is self-hosted, federated social link aggregation and discussion forum, somewhat similar to Reddit. - + + Note that there are tools like [git-vain](https://git.anna.lgbt/anna/git-vain) + and [git-vanity-sha](https://github.com/mattbaker/git-vanity-sha), + most recently listed in [Git Rev News Edition #103](https://git.github.io/rev_news/2023/09/30/edition-103/), + which can be used to make SHA-1 hash of commit start with specific pattern, like `000000`, + by manipulating commit date or commit message. + + ++ [What Git Clone REALLY Does (and why it matters)](https://www.youtube.com/watch?v=zigbUJHBsL4) + on The Modern Coder YouTube channel, 3:16 minutes long. + It's made by @JackLot who created the [LearnGit.io](https://learngit.io) resource, + which site was mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). ++ [Git Interview Part 1: Easy | Ep. 8 Bits and Booze](https://www.youtube.com/watch?v=SdSllNeQuVc) [29:09], and
+ [Git Interview Part 2: Hard | Ep. 9 Bits and Booze](https://www.youtube.com/watch?v=FbW9wlve8sI) [17:45],
+ on GitButler YouTube channel. Join Nico as he (mock) interviews Scott [Chacon] about Git. + __Git tools and sites__ @@ -382,7 +389,6 @@ __Git tools and sites__ + [My Beancount books are 95% automatic after 3 years](https://fangpenlin.com/posts/2024/12/30/my-beancount-books-are-95-percent-automatic/). + [How BeanHub works part 1: the danger of processing Beancount data with sandbox](https://beanhub.io/blog/2024/04/23/how-beanhub-works-part1-sandboxing/). + [How BeanHub works part 2: large-scale auditable Git repository system based on container layers](https://beanhub.io/blog/2024/06/26/how-beanhub-works-part2-layer-based-git-repos/). - ## Releases From 221a761bee4e1daf54581ac727c4a049e3fa503f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 1 Apr 2025 12:47:06 +0200 Subject: [PATCH 160/336] rn-121: Add link to a article about Gerrit --- rev_news/drafts/edition-121.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index 80e645990..7a0f095d1 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -272,6 +272,12 @@ __Light reading__ because it was easier to justify its adoption for the rest of the team. + You can find a definition of "monorepo" and a list of various tools on the [Monorepo.tools](https://monorepo.tools/) site, which was first mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [Gerrit Code Review: A How-To Guide for new users!](https://gitenterprise.me/2025/03/10/gerrit-code-review-a-how-to-guide-for-new-users/) + by Daniele Sassoli on GerritForge Blog. See also: + + [How GitHub taught the world code review the wrong way](https://medium.com/@danielesassoli/how-github-taught-the-world-code-reviews-the-wrong-way-f840a072f5be) + by Daniele Sassoli (2024) on his Medium-based blog. + + [Pull requests / Collaborate with pull requests / Getting started / Helping others review your changes](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/getting-started/helping-others-review-your-changes) + on GitHub Docs. + [TIL: Hugo's GitInfo](https://blog.erethon.com/log/2025-03-03-hugo-git-info/) by Dionysis Grigoropoulos, about the [GitInfo](https://gohugo.io/methods/page/gitinfo/) method of [Hugo](https://gohugo.io/), the static site generator From 439cefe0f48aaf715e05ff19aeff9e15f903d646 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 1 Apr 2025 15:20:44 +0200 Subject: [PATCH 161/336] Supplied a few tiny punctuation fixes and rephrased one blog post description; please scrutinize. --- rev_news/drafts/edition-121.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index 7a0f095d1..61312b8fc 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -234,7 +234,7 @@ __Various__ + [Highlights from Git 2.49](https://github.blog/open-source/git/highlights-from-git-2-49/) by Taylor Blau on GitHub Blog. Mentioned items include faster packing with name-hash v2, backfilling historical blobs in partial clones, building Git with zlib-ng, - and libgit-sys and libgit Rust crates. + and the libgit-sys and libgit Rust crates. __Light reading__ @@ -242,7 +242,7 @@ __Light reading__ + [Going down the rabbit hole of Git's new bundle-uri](https://blog.gitbutler.com/going-down-the-rabbit-hole-of-gits-new-bundle-uri/) by Scott Chacon on GitButler blog.
The [`bundle-uri`](https://git-scm.com/docs/bundle-uri) was mentioned in passing in [Git Rev News Edition #95](https://git.github.io/rev_news/2023/01/31/edition-95/) - (in _"Developer Spotlight"_), and in [Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/) + (in _"Developer Spotlight"_) and in [Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/) (in _"Git tools and sites"_, when mentioning [git-bundle-server](https://github.com/git-ecosystem/git-bundle-server)). + [No Longer My Favorite Git Commit](https://mtlynch.io/no-longer-my-favorite-git-commit/) by Michael Lynch on his blog, talks about how one could _improve_ the commit message @@ -267,7 +267,8 @@ __Light reading__ by Mohammad Sajid Anwar (MANWAR) on The Weekly Challenge blog. The blog post shows how to use `git bisect` on a detailed example (in Perl). + [Python monorepo with uv and pex](https://chrismati.cz/posts/uv-pex-monorepo/) - by Christoph Pröschel on his blog. The solution of using regular Python tooling + by Christoph Pröschel on his blog. The article discusses the benefits of a + lightweight solution built with regular Python tooling over, for example, the [Pants](https://www.pantsbuild.org/) build tool, because it was easier to justify its adoption for the rest of the team. + You can find a definition of "monorepo" and a list of various tools on the [Monorepo.tools](https://monorepo.tools/) site, @@ -353,9 +354,9 @@ __Easy watching__ on The Modern Coder YouTube channel, 3:16 minutes long. It's made by @JackLot who created the [LearnGit.io](https://learngit.io) resource, which site was mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). -+ [Git Interview Part 1: Easy | Ep. 8 Bits and Booze](https://www.youtube.com/watch?v=SdSllNeQuVc) [29:09], and
- [Git Interview Part 2: Hard | Ep. 9 Bits and Booze](https://www.youtube.com/watch?v=FbW9wlve8sI) [17:45],
- on GitButler YouTube channel. Join Nico as he (mock) interviews Scott [Chacon] about Git. ++ [Git Interview Part 1: Easy | Ep. 8 Bits and Booze](https://www.youtube.com/watch?v=SdSllNeQuVc) [29:09] and
+ [Git Interview Part 2: Hard | Ep. 9 Bits and Booze](https://www.youtube.com/watch?v=FbW9wlve8sI) [17:45]
+ on the GitButler YouTube channel. Join Nico as he (mock) interviews Scott [Chacon] about Git. __Git tools and sites__ @@ -373,7 +374,7 @@ __Git tools and sites__ One of its advantages is that it is versionable: because it's plain text, you can keep it in Git. You can also easily take diffs of calendar files, as it's one day one line. + See also [Todo.txt](http://todotxt.org/) to keep your TODO list in a plain text file, - and tools like [Taskwarrior](https://taskwarrior.org/), and + and tools like [Taskwarrior](https://taskwarrior.org/) and [Plain Text Accounting (PTA)](https://plaintextaccounting.org/). + [YSK there are open-source (gamified) tutorials to learn git](https://programming.dev/post/26285997) provides a list of some tutorials and interactive learning tools, including: @@ -387,7 +388,7 @@ __Git tools and sites__ designed to help users learn Git and its commands. Written in Kotlin, for Android. + [Git-it](https://github.com/jlord/git-it-electron) is a desktop (Mac, Windows and Linux) Electron app that teaches you how to use Git and GitHub on the command line. - First mentioned in [Git Rev News Edition #7](https://git.github.io/rev_news/2015/09/09/edition-7/) + First mentioned in [Git Rev News Edition #7](https://git.github.io/rev_news/2015/09/09/edition-7/). + [BeanHub](https://beanhub.io/) is a modern accounting book app based on the most popular open source version control system Git and the text-based double entry accounting book software [Beancount](https://beancount.github.io/docs/index.html). From bd69d16d467e6103eda89f98d18fdda9eca4623b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 1 Apr 2025 22:28:35 +0200 Subject: [PATCH 162/336] rn-121: add text statistics for articles --- rev_news/drafts/edition-121.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rev_news/drafts/edition-121.md b/rev_news/drafts/edition-121.md index 61312b8fc..5aa1edc05 100644 --- a/rev_news/drafts/edition-121.md +++ b/rev_news/drafts/edition-121.md @@ -94,6 +94,24 @@ This edition covers what happened during the months of February and March 2025. - Reviews: 0.66 - Support: 0.57 + Text Statistics: + + - Total words: 100,434 + - Total lines: 14,090 + - Total paragraphs: 3,097 + + Average per article: + + - Words: 395.4 + - Lines: 55.5 + - Paragraphs: 12.2 + + Total words per section: + + - General: 29,220 words + - Reviews: 35,912 words + - Support: 35,302 words + + Among those long articles, 16 articles were written by people outside the editor team. Big thanks to them! The top 3 is: From 164c78b1e3e7376de05e8a1b90e928d348782e04 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 1 Apr 2025 22:33:37 +0200 Subject: [PATCH 163/336] Publish rn-121 in _posts/ --- .../edition-121.md => _posts/2025-03-31-edition-121.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-121.md => _posts/2025-03-31-edition-121.markdown (100%) diff --git a/rev_news/drafts/edition-121.md b/_posts/2025-03-31-edition-121.markdown similarity index 100% rename from rev_news/drafts/edition-121.md rename to _posts/2025-03-31-edition-121.markdown From cf82030e9e531f979b7cada74c2cd5bdcab4a7be Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 1 Apr 2025 22:33:37 +0200 Subject: [PATCH 164/336] Add draft for rn-122 --- rev_news/drafts/edition-122.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-122.md diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md new file mode 100644 index 000000000..5c7c50e26 --- /dev/null +++ b/rev_news/drafts/edition-122.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 122 (April 30th, 2025) +layout: default +date: 2025-04-30 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 122 (April 30th, 2025) + +Welcome to the 122nd 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 March 2025 and April 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 fb1299f7fd6ac7b77e10f15fcc56b52727fd12e1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 2 Apr 2025 15:02:38 +0200 Subject: [PATCH 165/336] rn-121: fix 'Light reading'/'Easy watching' issue --- _posts/2025-03-31-edition-121.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-03-31-edition-121.markdown b/_posts/2025-03-31-edition-121.markdown index 5aa1edc05..c0691b936 100644 --- a/_posts/2025-03-31-edition-121.markdown +++ b/_posts/2025-03-31-edition-121.markdown @@ -153,7 +153,7 @@ This edition covers what happened during the months of February and March 2025. with 635 links; around 7.06% of entries mention previous editions. - 20 entries in "Events" over 12 editions with 39 links - - 15 entries in "Light reading" over 12 editions + - 15 entries in "Easy watching" over 12 editions with 31 links; of those, 3 entries mention previous editions. There were quite a few one-off names of sub-lists, like From 6bb8a161edcc47c47d33e42a937bd22dc9e16c80 Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Wed, 2 Apr 2025 13:59:09 -0500 Subject: [PATCH 166/336] Update type in Michael Lynch's name in edition #121 --- _posts/2025-03-31-edition-121.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-03-31-edition-121.markdown b/_posts/2025-03-31-edition-121.markdown index c0691b936..d96634924 100644 --- a/_posts/2025-03-31-edition-121.markdown +++ b/_posts/2025-03-31-edition-121.markdown @@ -270,7 +270,7 @@ __Light reading__ + The article mentions the [How to Write Useful Commit Messages](https://refactoringenglish.com/chapters/commit-messages/) guide by Michael Lynch, one of the sample chapters for his prospective book, _"Refactoring English: Effective writing for software developers"_. - + Another post by Michael Lunch, [How to Make Your Code Reviewer Fall in Love with You](https://mtlynch.io/code-review-love/), + + Another post by Michael Lynch, [How to Make Your Code Reviewer Fall in Love with You](https://mtlynch.io/code-review-love/), was mentioned in [Git Rev News Edition #70](https://git.github.io/rev_news/2020/12/26/edition-70/). + [19000 curl commits](https://daniel.haxx.se/blog/2025/03/14/19000-curl-commits/) by Daniel Stenberg on his blog, presenting some statistics about those commits. From 0c1dde26394dfa9701969582084492eee9a03e78 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 6 Apr 2025 15:33:04 +0200 Subject: [PATCH 167/336] Final tiny spelling fix. --- _posts/2025-03-31-edition-121.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2025-03-31-edition-121.markdown b/_posts/2025-03-31-edition-121.markdown index d96634924..ce754e063 100644 --- a/_posts/2025-03-31-edition-121.markdown +++ b/_posts/2025-03-31-edition-121.markdown @@ -336,7 +336,7 @@ __Light reading__ + [Using Git Delta with Magit](https://scripter.co/using-git-delta-with-magit/) by Kaushal Modi (2022) on A Scripter's Notes. + [Delta](https://github.com/dandavison/delta) is a highly configurable command line utility - that makes the git diffs look better, while also syntax-highlighting the code in the diffs. + that makes the Git diffs look better, while also syntax-highlighting the code in the diffs. First mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/). + [Magit](https://magit.vc/) is a popular Emacs interface to Git, first mentioned (in passing) in [Git Rev News Edition #6](https://git.github.io/rev_news/2015/08/05/edition-6/). From 32645eb3d41743ccd4aca75dbd426867ae673d47 Mon Sep 17 00:00:00 2001 From: ayu-ch Date: Mon, 7 Apr 2025 13:30:34 +0530 Subject: [PATCH 168/336] Rename references from *.txt to *.adoc in documentation paths. Since the documentation in git is changed from *.txt to *.adoc format. Update references to reflect that change. Signed-off-by: ayu-ch --- Hacking-Git.md | 4 ++-- SoC-2019-Ideas.md | 2 +- SoC-2020-Ideas.md | 2 +- SoC-2024-Ideas.md | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index 9320fd893..c8e9fef2b 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -38,7 +38,7 @@ suggest improvements. Thanks! * ["My First Contribution"](https://git-scm.com/docs/MyFirstContribution) -* ["My First Object Walk"](https://github.com/git/git/blob/master/Documentation/MyFirstObjectWalk.txt) +* ["My First Object Walk"](https://github.com/git/git/blob/master/Documentation/MyFirstObjectWalk.adoc) * [Matheus' tutorial](https://matheustavares.gitlab.io/posts/first-steps-contributing-to-git) @@ -102,7 +102,7 @@ suggest improvements. Thanks! * [`gitworkflows`](https://git-scm.com/docs/gitworkflows) manual page -* ["How to maintain Git"](https://github.com/git/git/blob/master/Documentation/howto/maintain-git.txt) +* ["How to maintain Git"](https://github.com/git/git/blob/master/Documentation/howto/maintain-git.adoc) * ["How the Creators of Git do Branching"](https://hackernoon.com/how-the-creators-of-git-do-branches-e6fcc57270fb), and the associated [gitworkflow](https://github.com/rocketraman/gitworkflow) repository diff --git a/SoC-2019-Ideas.md b/SoC-2019-Ideas.md index bdb85074b..da3b6c8f3 100644 --- a/SoC-2019-Ideas.md +++ b/SoC-2019-Ideas.md @@ -137,7 +137,7 @@ See discussion in: - Possible mentors: Christian Couder, Thomas Gummerer A number of Git commands, like `git log`, can show commit information -in a configurable way using ["pretty" formats](https://github.com/git/git/blob/master/Documentation/pretty-formats.txt). +in a configurable way using ["pretty" formats](https://github.com/git/git/blob/master/Documentation/pretty-formats.adoc). Such formats though don't yet support some features that users would like, for example to display a log like the following: diff --git a/SoC-2020-Ideas.md b/SoC-2020-Ideas.md index b6ea44d9c..ce6d43cd6 100644 --- a/SoC-2020-Ideas.md +++ b/SoC-2020-Ideas.md @@ -45,7 +45,7 @@ See discussion in: A number of Git commands, like `git log`, can show commit information in a configurable way using -["pretty" formats](https://github.com/git/git/blob/master/Documentation/pretty-formats.txt). +["pretty" formats](https://github.com/git/git/blob/master/Documentation/pretty-formats.adoc). Such formats though don't yet support some features that users would like, for example to display a log like the following: diff --git a/SoC-2024-Ideas.md b/SoC-2024-Ideas.md index 56cc38a44..041eba592 100644 --- a/SoC-2024-Ideas.md +++ b/SoC-2024-Ideas.md @@ -55,7 +55,7 @@ the reftable ones. - - - - - + - Expected Project Size: 175 hours or 350 hours @@ -77,7 +77,7 @@ the new framework. See: - this discussion - - + - - Expected Project Size: 175 hours or 350 hours From 3099fa012410c7b3c72155ab1d2669d28dbfac42 Mon Sep 17 00:00:00 2001 From: ayu-ch Date: Mon, 7 Apr 2025 16:31:22 +0530 Subject: [PATCH 169/336] Rename references from *.txt to *.adoc in Rev News editions. Since the documentation in git is changed from *.txt to *.adoc format. Update references in previous editions to reflect that change. Signed-off-by: ayu-ch --- _posts/2015-08-05-edition-6.markdown | 2 +- _posts/2017-12-20-edition-34.markdown | 2 +- _posts/2018-07-18-edition-41.markdown | 2 +- _posts/2018-08-22-edition-42.markdown | 2 +- _posts/2018-11-21-edition-45.markdown | 2 +- _posts/2019-06-28-edition-52.markdown | 4 ++-- _posts/2023-10-31-edition-104.markdown | 2 +- _posts/2024-04-30-edition-110.markdown | 2 +- _posts/2024-10-31-edition-116.markdown | 2 +- _posts/2024-12-31-edition-118.markdown | 2 +- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/_posts/2015-08-05-edition-6.markdown b/_posts/2015-08-05-edition-6.markdown index 867700219..29965bb76 100644 --- a/_posts/2015-08-05-edition-6.markdown +++ b/_posts/2015-08-05-edition-6.markdown @@ -25,7 +25,7 @@ Git 2.5 is out! The project maintainer, Junio C. Hamano, has [shared his thought He goes on to talk about some of his favourite new features included in the release, such as a new short hand `branch@{push}` that "denotes the remote-tracking branch that tracks the branch at the remote the branch would be pushed to", and a new option `--ws-error-highlight` that can be used with `git diff` and friends to show whitespace breakages in deleted and context lines. -Be sure to see the post for more on the new features, or checkout the [release notes in the source](https://github.com/git/git/blob/master/Documentation/RelNotes/2.5.0.txt) for all the nitty gritty details. +Be sure to see the post for more on the new features, or checkout the [release notes in the source](https://github.com/git/git/blob/master/Documentation/RelNotes/2.5.0.adoc) for all the nitty gritty details. ### Did you know? diff --git a/_posts/2017-12-20-edition-34.markdown b/_posts/2017-12-20-edition-34.markdown index ee4c0a919..acff8d432 100644 --- a/_posts/2017-12-20-edition-34.markdown +++ b/_posts/2017-12-20-edition-34.markdown @@ -310,7 +310,7 @@ __Various__ * [Git Essentials, 2nd Edition](https://www.packtpub.com/application-development/git-essentials-second-edition) * [Git: Version Control for Everyone](https://www.packtpub.com/application-development/git-version-control-everyone) (which was [reviewed](https://git-blame.blogspot.com/2013/02/git-version-control-for-everyone.html) by Junio C Hamano on his blog) * [Discussions on Hacker News](https://news.ycombinator.com/item?id=15819033) - about [the hash transition plan](https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.txt). + about [the hash transition plan](https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.adoc). * [Protecting code integrity with PGP](https://github.com/lfit/itpol/blob/master/protecting-code-integrity.md) (beta), part of Useful IT Policies project * [Effortlessly maintain a high quality change log with Git notes](https://harrow.io/blog/effortlessly-maintain-a-high-quality-change-log-with-little-known-git-tricks/) by Lee Hambley diff --git a/_posts/2018-07-18-edition-41.markdown b/_posts/2018-07-18-edition-41.markdown index 27b6b3bdd..a06aecaef 100644 --- a/_posts/2018-07-18-edition-41.markdown +++ b/_posts/2018-07-18-edition-41.markdown @@ -36,7 +36,7 @@ With Brian's latest patches Git would work using NewHash, including passing the test suite, though it would be incompatible with current Git. -As the [hash function transition plan](https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.txt) +As the [hash function transition plan](https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.adoc) tells that a Git using NewHash should be able to communicate through fetching and pushing with a Git using SHA-1, the next step is to implement such kind of communication and that's what Brian started to diff --git a/_posts/2018-08-22-edition-42.markdown b/_posts/2018-08-22-edition-42.markdown index 6b23618c5..a1c955e74 100644 --- a/_posts/2018-08-22-edition-42.markdown +++ b/_posts/2018-08-22-edition-42.markdown @@ -25,7 +25,7 @@ This edition covers what happened during the month of July 2018. discussed the state of NewHash work, i.e. the process of selecting Git's next-generation hash function. [This discussion has concluded](https://public-inbox.org/git/20180724190136.GA5@0f3cdde9c159/) with the selection of SHA-256. An -[update to `hash-function-transition.txt` to change `NewHash` to `SHA-256`](https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.txt) +[update to `hash-function-transition.txt` to change `NewHash` to `SHA-256`](https://github.com/git/git/blob/master/Documentation/technical/hash-function-transition.adoc) is queued in the `next` branch. @@ -48,7 +48,7 @@ __Git tools and sites__ ## Releases - ++ Tower for Mac [13.0 (BETA)](https://www.git-tower.com/beta) ([Release blog post](https://www.git-tower.com/blog/tower-mac-13/)) ## Credits From 3214a2e80927cdc501fb71fccf2fb0b92dabd519 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 29 Apr 2025 21:46:07 +0200 Subject: [PATCH 173/336] rn-122: add releases --- rev_news/drafts/edition-122.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 5c7c50e26..eea3b8efb 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -49,6 +49,23 @@ __Git tools and sites__ ## Releases ++ GitHub Enterprise [3.16.2](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.2), +[3.15.6](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.6), +[3.14.11](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.11), +[3.13.14](https://docs.github.com/enterprise-server@3.13/admin/release-notes#3.13.14) ++ GitLab [17.11.1, 17.10.5, 17.9.7](https://about.gitlab.com/releases/2025/04/23/patch-release-gitlab-17-11-1-released/), +[17.11](https://about.gitlab.com/releases/2025/04/17/gitlab-17-11-released/), +[17.10.4, 17.9.6, 17.8.7](https://about.gitlab.com/releases/2025/04/09/patch-release-gitlab-17-10-4-released/), +[17.10.3](https://about.gitlab.com/releases/2025/04/02/gitlab-17-10-3-released/), +[17.9.5](https://about.gitlab.com/releases/2025/04/02/gitlab-17-9-5-released/) ++ Gerrit Code Review [3.12.0-rc0](https://www.gerritcodereview.com/3.12.html#3120), +[3.12.0-rc1](https://www.gerritcodereview.com/3.12.html#3120), +[3.12.0-rc2](https://www.gerritcodereview.com/3.12.html#3120), +[3.12.0-rc3](https://www.gerritcodereview.com/3.12.html#3120), +[3.12.0-rc4](https://www.gerritcodereview.com/3.12.html#3120) ++ GitHub Desktop [3.4.19](https://desktop.github.com/release-notes/) ++ GitButler [0.14.19](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.19), +[0.14.18](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.18) ## Credits From e04bec710c80941755550b353700156419b11c6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 29 Apr 2025 23:44:23 -0400 Subject: [PATCH 174/336] rn-122: Add links to news, articles, videos, and tools --- rev_news/drafts/edition-122.md | 93 +++++++++++++++++++++++++++++++++- 1 file changed, 91 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index eea3b8efb..c94c1259f 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -37,15 +37,104 @@ This edition covers what happened during the months of March 2025 and April 2025 __Various__ +* [Git turns 20: A Q&A with Linus Torvalds](https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/) + by Taylor Blau on GitHub blog. +* [Celebrating Git's 20th anniversary with creator Linus Torvalds](https://about.gitlab.com/blog/2025/04/07/celebrating-gits-20th-anniversary-with-creator-linus-torvalds/) + by Patrick Steinhardt on GitLab blog. +* [Linus Torvalds built Git in 10 days - and never imagined it would last 20 years](https://www.zdnet.com/article/linus-torvalds-built-git-in-10-days-and-never-imagined-it-would-last-20-years/) + by Steven Vaughan-Nichols on ZDNet. +* [20 years of Git. Still weird, still wonderful.](https://blog.gitbutler.com/20-years-of-git/) + by Scott Chacon on Butler's Log (GitButler). +* [Journey through Git's 20-year history](https://about.gitlab.com/blog/2025/04/14/journey-through-gits-20-year-history/) + by Patrick Steinhardt on GitLab blog. +* [GitHub MCP Server is now available in public preview](https://github.blog/changelog/2025-04-04-github-mcp-server-public-preview/) + [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) + is an AI tool calling standard that give LLMs (Large Language Models) + a standardized way to call functions, look up data, and interact with the world. + __Light reading__ - + +* [Two decades of Git: A conversation with creator Linus Torvalds](https://www.youtube.com/watch?v=sCr_gb8rdEI) + video interview (YouTube, 41:49). + __Git tools and sites__ +* [Devlands](https://devlands.com/) is the game that creates immersive experience + to help learning Git. Created by Jacob Stopak, the author of [Git-Sim](https://github.com/initialcommit-com/git-sim) + tool to visualize Git commands directly in your own repo, which was first mentioned + in [Git Rev News Edition #95](https://git.github.io/rev_news/2023/01/31/edition-95/). + Described in [I struggled with Git, so I'm making a game to spare others the pain](https://initialcommit.com/blog/im-making-a-git-game) + article on Initial Commit Blog. +* [Git Game Show](https://justinpaulson.github.io/git_game_show/) is a text interface app + that transforms your project's Git commit history into a live, multiplayer trivia game. + One user hosts a session, other players join remotely, and the system rotates + through rounds of different question-based "mini-games," awarding points + and declaring a final winner. +* [dgit](https://manpages.debian.org/testing/dgit/dgit.1.en.html) is a tool that + allows you to treat the Debian archive as if it were a git repository. + Conversely, it allows Debian to publish the source of its packages as git branches, + in a format which is directly useable by ordinary people. + * Note that GitHub's Spokes system that stores multiple distributed copies + of Git repositories was once called DGit. See [Stretching Spokes](https://github.blog/engineering/infrastructure/stretching-spokes/) + article by Michael Haggerty on GitHub Blog mentioned in + [Git Rev News Edition #14](https://git.github.io/rev_news/2016/04/20/edition-14/). +* [Mega](https://github.com/web3infra-foundation/mega) + is an unofficial open source implementation of Google Piper (a proprietary, massive, + centralized version control system that Google uses internally to manage their vast codebase). + It is a monorepo & monolithic codebase management system that supports Git. + More information can be found in [Why Google Stores Billions of Lines of Code in a Single Repository](https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext). + Written in Rust and TypeScript. +* [Oshiro's git](https://github.com/lucasoshiro/oshit): VCS written in Haskell + that tries to be compatible with git. This is not safe to use, + and is only meant for learning how git works and how hard it is. +* [codeowner-filter](https://kertal.github.io/codeowner-filter/) is a simple web tool + that solves the problem of finding just the files your team owns based + on the contents of [CODEOWNERS](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) file. + It will generate search filters for VSCode, scope configration for IDEA IDEs, and a list. +* [CodeOwners Filter](https://github.com/akowalska622/codeowners-filter) is a Visual Studio Code extension + that gives you a visual representation of the CODEOWNERS file + and helps you generate glob include patterns for any code owner. +* [rebuilderd](https://github.com/kpcyrd/rebuilderd) + is a tool that monitors the package repository + of a Linux distribution and uses rebuilder backends + like archlinux-repro to verify the provided binary packages + can be reproduced from the given source code. + Written in Rust, under GPL license. +* [reproduce](https://github.com/vltpkg/reproduce) is an open-source tool + designed to independently verify whether a published npm package + can be faithfully rebuilt from its declared source. + It is described in [Reproducibility vs. Provenance: Trusting the JavaScript Supply Chain](https://blog.vlt.sh/blog/reproducibility) + blog post by Darcy Clarke. +* [Graft](https://graft.rs/) is an open-source transactional storage engine + designed for efficient data synchronization at the edge. + It is described in [Stop syncing everything](https://sqlsync.dev/posts/stop-syncing-everything/) + article by Carl Sverre, his [Storing small things in big places](https://www.youtube.com/watch?v=eRsD8uSAi0s1) + Vancouver Systems Talk (video on YouTube, 55:04), and + [Building a serverless database replica with Carl Sverre](https://www.youtube.com/watch?v=dJurdmhPLH411) + High Performance SQLite Talk (video on YouTube, 1:10:19). + Written in Rust. + ## Releases From e4600200c299bb3087205b437d4c03987872c153 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 30 Apr 2025 08:19:58 +0200 Subject: [PATCH 175/336] rn-122: add article about Git's 20th anniversary --- rev_news/drafts/edition-122.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index c94c1259f..06993f5e6 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -17,9 +17,18 @@ This edition covers what happened during the months of March 2025 and April 2025 ## Discussions - + +* [Let's celebrate Git's 20th anniversary this coming Monday!](https://lore.kernel.org/git/89757bec-4d7e-1d90-5697-44651c6128df@gmx.de/) + + Johannes Schindelin (alias Dscho) posted on the mailing list that + the oldest Git commit was performed on April 7th, 2005. So Monday + April 7th, 2025 was the 20th anniversary of Git! + + To celebrate this event, Dscho created + [a channel on Git's Discord, called `#20th-anniversary`](https://discord.gg/UcjvsNQR) + where everyone is welcome, especially to talk about their encounter + with Git. From 0a18c2cafd4e17cee43ca9594db26618da08af5a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 30 Apr 2025 09:11:45 +0200 Subject: [PATCH 177/336] rn-122: mention the CFP close date --- rev_news/drafts/edition-122.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 04fe590bd..a719bd82d 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -36,9 +36,9 @@ This edition covers what happened during the months of March 2025 and April 2025 conference on September 29-30 at GitHub HQ in San Francisco along with a Contributor's Summit on September 30. - Registration and a Call for Proposals are open. Requests for - financial assistance with travel costs can be sent to the Git PLC at - . + Registration and a Call for Proposals, which closes on May 13th, are + open. Requests for financial assistance with travel costs can be + sent to the Git PLC at . From 1a1236f4c06e0be79413d74efd71ee1576148f13 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Thu, 1 May 2025 18:16:31 +0200 Subject: [PATCH 179/336] Supplied some tiny corrections and rephrasings. --- rev_news/drafts/edition-122.md | 43 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 180fddca2..6ee380793 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -13,7 +13,7 @@ Welcome to the 122nd edition of [Git Rev News](https://git.github.io/rev_news/re 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 March 2025 and April 2025. +This edition covers what happened during the months of March and April 2025. ## Discussions @@ -42,7 +42,7 @@ This edition covers what happened during the months of March 2025 and April 2025 * [Patch (apply) vs. Pull](https://lore.kernel.org/git/1119284365.3926.15.camel@localhost.localdomain/) - To celebrate Git's 20th anniversary in our own way, let's talk about + To celebrate Git's 20th anniversary in our own way let's talk about a discussion on the Git mailing list that happened nearly 20 years ago. @@ -64,7 +64,7 @@ This edition covers what happened during the months of March 2025 and April 2025 based on a common history. Junio Hamano, who would later become the Git maintainer, then - replied to Darrin acknowledging that emailed patches are essentially + replied to Darrin acknowledging that emailed patches were essentially "out of band" communications. Merges could still work if the same patch had been applied independently. Even if that wasn't ideal, it was "manageable". @@ -88,7 +88,7 @@ This edition covers what happened during the months of March 2025 and April 2025 Daniel suggested integrating functionality similar to StGit into Git to help with applying patches and bridging the gap between the patch-based workflow and Git's commit-based model in general, even - though he thought that commits are "fundamentally resistant to + though he thought that commits were "fundamentally resistant to cherry-picking". Catalin over the course of the discussion provided specific details @@ -204,7 +204,7 @@ __Various__ by Scott Chacon on Butler's Log (GitButler). * [Journey through Git's 20-year history](https://about.gitlab.com/blog/2025/04/14/journey-through-gits-20-year-history/) by Patrick Steinhardt on GitLab blog. -* [GitHub MCP Server is now available in public preview](https://github.blog/changelog/2025-04-04-github-mcp-server-public-preview/) +* [GitHub MCP Server is now available in public preview](https://github.blog/changelog/2025-04-04-github-mcp-server-public-preview/). [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) is an AI tool calling standard that give LLMs (Large Language Models) a standardized way to call functions, look up data, and interact with the world. @@ -215,16 +215,17 @@ __Light reading__ * [Verifying tricky git rebases with git range-diff](https://andrewlock.net/verifiying-tricky-git-rebases-with-range-diffs/) by Andrew Lock on his .NET Escapades blog. * [Mirroring my git repositories](https://dustri.org/b/mirroring-my-git-repositories.html) - using [cgit](https://git.zx2c4.com/cgit/about/) for the interface, and nginx as a web server. + using [cgit](https://git.zx2c4.com/cgit/about/) for the interface and nginx as a web server. By Julien (jvoisin) Voisin on their7 blog. * [Mirroring my Repositories from GitHub to GitLab](https://cleberg.net/blog/git-mirror.html), - including both public and private repositories on GitLab Fre tier. + including both public and private repositories on GitLab Free tier. By Christian Cleberg on his blog. * [Documentation as Code with AsciiDoctor, GitLab CI, and GitLab Pages](https://jensknipper.de/blog/gitlab-ci-pages-asciidoc-documentation-as-code/) by Jens Knipper on his personal blog. * [Afraid to Git](https://dammit.nl/afraid-to-git.html): - a rant by Michiel Scholten about why because of misbehaving AI scrapers - he is not putting his Gitea instance (his Git server) on the Internet. + a rant by Michiel Scholten on his dammIT blog, explaining how misbehaving AI scrapers + cause him not to put his Gitea instance (his Git server) on the Internet, + and force others - like [Linux' kernel.org](https://git.kernel.org/) - to use tools like [Anubis](https://github.com/TecharoHQ/anubis). * [Fedora change aims for 99% package reproducibility](https://lwn.net/Articles/1014979/) by Joe Brockmeier on LWN\.net. @@ -238,7 +239,7 @@ __Easy watching__ __Git tools and sites__ * [Devlands](https://devlands.com/) is the game that creates immersive experience - to help learning Git. Created by Jacob Stopak, the author of [Git-Sim](https://github.com/initialcommit-com/git-sim) + to help learning Git. Created by Jacob Stopak, the author of the [Git-Sim](https://github.com/initialcommit-com/git-sim) tool to visualize Git commands directly in your own repo, which was first mentioned in [Git Rev News Edition #95](https://git.github.io/rev_news/2023/01/31/edition-95/). Described in [I struggled with Git, so I'm making a game to spare others the pain](https://initialcommit.com/blog/im-making-a-git-game) @@ -249,11 +250,11 @@ __Git tools and sites__ through rounds of different question-based "mini-games," awarding points and declaring a final winner. * [dgit](https://manpages.debian.org/testing/dgit/dgit.1.en.html) is a tool that - allows you to treat the Debian archive as if it were a git repository. - Conversely, it allows Debian to publish the source of its packages as git branches, + allows you to treat the Debian archive as if it was a Git repository. + Conversely, it allows Debian to publish the source of its packages as Git branches, in a format which is directly useable by ordinary people. * Note that GitHub's Spokes system that stores multiple distributed copies - of Git repositories was once called DGit. See [Stretching Spokes](https://github.blog/engineering/infrastructure/stretching-spokes/) + of Git repositories was once called DGit. See the [Stretching Spokes](https://github.blog/engineering/infrastructure/stretching-spokes/) article by Michael Haggerty on GitHub Blog mentioned in [Git Rev News Edition #14](https://git.github.io/rev_news/2016/04/20/edition-14/). * [Mega](https://github.com/web3infra-foundation/mega) @@ -262,13 +263,13 @@ __Git tools and sites__ It is a monorepo & monolithic codebase management system that supports Git. More information can be found in [Why Google Stores Billions of Lines of Code in a Single Repository](https://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext). Written in Rust and TypeScript. -* [Oshiro's git](https://github.com/lucasoshiro/oshit): VCS written in Haskell - that tries to be compatible with git. This is not safe to use, - and is only meant for learning how git works and how hard it is. +* [Oshit aka Oshiro's git](https://github.com/lucasoshiro/oshit): VCS written in Haskell + that tries to be compatible with Git. This is not safe to use, + and is only meant for learning how Git works and how hard it is. * [codeowner-filter](https://kertal.github.io/codeowner-filter/) is a simple web tool that solves the problem of finding just the files your team owns based on the contents of [CODEOWNERS](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners) file. - It will generate search filters for VSCode, scope configration for IDEA IDEs, and a list. + It will generate search filters for VSCode, scope configuration for IDEA IDEs, and a list. * [CodeOwners Filter](https://github.com/akowalska622/codeowners-filter) is a Visual Studio Code extension that gives you a visual representation of the CODEOWNERS file and helps you generate glob include patterns for any code owner. @@ -281,15 +282,15 @@ __Git tools and sites__ * [reproduce](https://github.com/vltpkg/reproduce) is an open-source tool designed to independently verify whether a published npm package can be faithfully rebuilt from its declared source. - It is described in [Reproducibility vs. Provenance: Trusting the JavaScript Supply Chain](https://blog.vlt.sh/blog/reproducibility) + It is described in the [Reproducibility vs. Provenance: Trusting the JavaScript Supply Chain](https://blog.vlt.sh/blog/reproducibility) blog post by Darcy Clarke. * [Graft](https://graft.rs/) is an open-source transactional storage engine designed for efficient data synchronization at the edge. - It is described in [Stop syncing everything](https://sqlsync.dev/posts/stop-syncing-everything/) + It is described in the [Stop syncing everything](https://sqlsync.dev/posts/stop-syncing-everything/) article by Carl Sverre, his [Storing small things in big places](https://www.youtube.com/watch?v=eRsD8uSAi0s1) - Vancouver Systems Talk (video on YouTube, 55:04), and + Vancouver Systems talk (video on YouTube, 55:04), and his [Building a serverless database replica with Carl Sverre](https://www.youtube.com/watch?v=dJurdmhPLH411) - High Performance SQLite Talk (video on YouTube, 1:10:19). + High Performance SQLite talk (video on YouTube, 1:10:19). Written in Rust. From 5a56a91f5af9d732ec1197777f7a3be343fe0942 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 2 May 2025 00:00:02 +0530 Subject: [PATCH 180/336] rn-122: include anniversary q&a with Junio C Hamano This section is not complete yet. I am yet to expand it and add the community interview answers. --- rev_news/drafts/edition-122.md | 101 ++++++++++++++++++++++++++++++++- 1 file changed, 98 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index d3227faf4..830828d1c 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -186,9 +186,104 @@ This edition covers what happened during the months of March and April 2025. ### Support --> - +## Community interview + +_Editor note: For Git's 20th anniversary, we are doing an exclusive collaborative +community interview and curating answers from various community members. Also, +there's a short Q&A with our zealous, inclusive and tireless maintainer that +follows below._ + +TODO + +### Short Q&A with our maintainer, Junio C Hamano + +- **Looking back over ~20 years of maintaining Git, what has been the + most surprising or unexpected evolution in the project — technically + or community-wise?** + + Technically, one of the things I found surprising is how many lines + from Linus's original version still survive in today's codebase. The + [initial version of Git](https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290) + was 1244 lines spread across 11 files, which is miniscule compared + to 300+ thousands of lines in 4600+ files in v2.49.0, but it is not + fair to say Linus's original genius is less than 0.3% of what we have. + If you try running `git blame` in reverse, you'll see that about 10% + of lines we have in our tree came from the original version Linus + released 20 years ago. You can check out a + [little script called "Linus"](https://git.kernel.org/pub/scm/git/git.git/tree/Linus?h=todo) + out of my "todo" branch and run it to see for yourself. + + Community-wise, there weren't many things that surprised me. I + expected a bit more developers who are interested in the core part of + system to stick around, say for more than 10 years, and I hoped that + some of them would be from younger generations who have never seen any + version control system other than Git, but how many among the active + contributors we see on the list every week fall into that category? We + have long-timers who are respected in the community, but we want to + grow that pool by say 5 every year or so, some of them ready to stick + around for another 10 years. In [a recent interview](https://github.blog/open-source/git/git-turns-20-a-qa-with-linus-torvalds/), + Linus said he wanted somebody with good taste who sticks around, and + I do believe it is essential to have a sufficient number of long-timers + who can guide new folks into the community. + + So that is a bit of surprise that makes me a little sad, but at the + same time, I think what is happening is that a development community + of an extremely popular and successful system that is mature with + friendly atmosphere has attracted many aspiring new folks, they + scratch their own itches and have fun, but then they find more + interesting things to do and go back to be happy end-users, which is + totally expected and natural thing. + +- **What are your thoughts about AI-assisted development tools in the + context of Git? Do you see a place for Git itself to become more + "intelligent"?** + + I've kept saying that + + is one of the most important design discussion in the early days of + Git. In that article, Linus outlines how his "ideal" SCM tool would + let you follow the historyz of a single function in today's codebase + backwards, notice that at certain revision the function appeared, but + the tool finds five functions disappeared in the same revision, all + looking very similar to the function we are interested in that was + added there, and the tool can explain that the commit consolidated + duplicated reimplementations done in various subdirectories into a + single common function and adjusted the existing callers of them to + the SCM user (if you want to learn more details, go to the original + and read it twice, I'll wait). + + We can do `git log -S` repeatedly to drill + down the history to find the revision that introduced that new + (possibly consolidated) function. In fact, the `-S` feature + was invented exactly for the purpose of serving as the first step of + Linus's "ideal" SCM tool described in the article. But "finding + similar existing (and possibly getting lost) code in the same or + possibly nearby revisions" have been nebulous. I do not think anybody + in the Git circle tried it yet. I wonder, after 20 years, perhaps we + can feed a project's codebase to LLMs and let them figure out such a + fact? + +- **What's your boldest prediction about how version control might look in + another 20 years?** + + I do not even foresee what software development in 20 years would look + like. I am not an insight kind of person. + +- **What advice would you give to someone who might one day step into your + role as Git maintainer?** + + Be original. I didn't aim to duplicate the style Linus ran his tree + during the first four months of the project. My successor does not + have to duplicate my style of running the project, either. Having said + that, personally I would like to see more distribution of + responsibility. The maintainer may play a role of the final arbiter, + but it would be great if we can come up with a mechanism to allow list + participants to bear more of the burden of picking and choosing good + direction to go, deciding if a particular change is worth doing or the + are better ways to do the same thing, etc. I've been trying to nudge + the list discussions in that direction for the past few years, but + without much success, I think. + ## Other News From 0f012acfb174c70d2f4e08400e4c31f7c9e9b54a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 2 May 2025 10:46:23 +0530 Subject: [PATCH 181/336] rn-122: include answers from various community members --- rev_news/drafts/edition-122.md | 340 ++++++++++++++++++++++++++++++++- 1 file changed, 336 insertions(+), 4 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 830828d1c..a82d1592f 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -189,11 +189,343 @@ This edition covers what happened during the months of March and April 2025. ## Community interview _Editor note: For Git's 20th anniversary, we are doing an exclusive collaborative -community interview and curating answers from various community members. Also, -there's a short Q&A with our zealous, inclusive and tireless maintainer that -follows below._ +community interview and curating answers of various community members. Also, +there's a [short Q&A](#short-qa-with-our-maintainer-junio-c-hamano) with our +zealous, inclusive and tireless maintainer that follows below._ + + +- **What's your favorite Git trick or workflow that you wish more people + knew about?** + + [_Thalia Rose_][thalia]: For rebase-heavy workflows, `git range-diff` is incredibly + useful. To compare against upstream, use `git range-diff @{u}...@`, + and to compare against the previous HEAD, use `git range-diff @{1}...@`. + + [_Lucas Seiki Oshiro_][seiki]: Everything related to code archaeology + (`git grep`, `git log -S/-G`, `git log -L` and `git bisect`). Those are + my primary debugging tools and every time I explained them to other + people they find them mind-blowing and useful. + And they also started loving it :-) + + [_Elijah Newren_][elijah]: [`range-diff`][range-diff]. The ideas behind + it ought to be the basis for code review, IMO. Commits should be the + unit of review (including commit messages as a fundamental and primary + thing to be reviewed), and a series of commits should be the unit of + merging. I dislike most code review tools, because they get one or + both of those things wrong. Getting both of those things right naturally + leads to `range-diff` or something like it being a very important part + of the workflow, at a minimum for detecting which commits in a series + are unmodified and which have been updated and need to be further reviewed. + + +- **What was your worst Git disaster, and how did you recover from it?** + + [_Thalia Rose_][thalia]: When I was first starting with Git, I wanted to make a repo + to preserve my first coding project when I was twelve, a bunch of VBS scripts. + I had assumed that Git maintained file modification timestamps, so I deleted + the originals because they were now redundant. I now no longer know exactly + when I wrote them and have been careful about timestamps ever since. + + [_Luca Milanesio_][luca]: I suspect to be one of the worst offenders :-) [ [ref](https://www.infoq.com/news/2013/11/use-the-force) ] + + Thankfully I was using Gerrit Code Review and the replication plugin: + the refs were not lost but just rewind and we could reset all the + correct SHA1s for all of them. + + [_Lucas Seiki Oshiro_][seiki]: I don't remember something that I did, + but I remember a simple and curious disaster: our deploy workflows + stopped working, only leaving a message like "cannot fetch + ambiguous reference `master`". I decided to investigate what happened + and I found out that someone by mistake (I don't know how) created a + tag called `master` and pushed it to GitHub. By the time we used the + `master` branch for deploy, and the workflows didn't know if they + should use the `master` branch or tag. GitHub didn't have a feature + for deleting tags through the web interface, so we thought + "what should we do?". + + The solution was to run `git push origin :refs/tags/master`. Simple, + but not obvious. A classic case where it only required a screw to be + turned, but all the hard work was to find which screw should be turned. + + [_Elijah Newren_][elijah]: + My worst Git-related disaster wasn't with Git directly but with our + Git hosting software we used at a prior job, Gerrit. 'twas a + "startup" that was still forming good practices. We had both a + production and a staging instance. The staging instance was seeded + with a copy of production data so we could do scale testing...but that + seeding process was a multi-step manual thing; it hadn't been + automated. One step was, as best I recall, "drop database gerrit", + followed by loading the production copy of the mysql database (this + was long before [NoteDB][notedb] arrived). And as many readers + probably have guessed by now, I was on the wrong host one day when + I ran that command. + + The actual git repositories were still intact, but the review metadata + was toast. Luckily, we had a backup from about 7 hours earlier, so we + could recover the older review metadata and with some hackery fix the + mysql metadata mismatch with the newer repository contents. And since + Gerrit emailed folks comments from reviews as they were posted, we + could tell people to look at their emails for the pieces we couldn't + recover. + + It was a really long night trying to fix things. Some folks told me + they thought I was going to throw up just looking at me. But I + learned how wonderful it was to be at a company with blameless + post-mortems, and I appreciated the many folks who reached out to tell + me stories of mistakes they had made. They were more interested in + whether we learned our lesson and put processes into place to prevent + repeats, and I definitely did both. + + I did, of course, also get some good-natured ribbing, such as people + saying I got to play the part of little Bobby Tables once (see + [this xkcd comic][bobby-tables] if you don't know that reference). + I kindly reminded them that I didn't drop a table -- I dropped the whole + database (plus, it wasn't injection, it was just running a command in + the wrong location). Also, one of my colleagues helpfully modified + the prompt on production to be red and bold, "This is PROD Gerrit", + and the prompt on staging to be green, "This is staging Gerrit; it's + okay to drop database here!" The prompts ended up not mattering since + I automated the process, and made sure the process just error'ed out + if run on prod instead of staging. But the prompt persisted for many + years anyway, because I thought it was a hilarious way to poke fun at + my blunder. + + +- **If you could go back in time and change one design decision in Git, + what would it be?** + + [_Luca Milanesio_][luca]: Use SHA-256 straight away, as it was + published 24 years ago and already existed at the time Git was designed. + + [_Lucas Seiki Oshiro_][seiki]: Perhaps writing a more abstract CLI. After + studying Git a little more deeper it makes sense for me, but I would group + the functionality into more high-level subcommands and would make the flags + and options more consistent across the subcommands. + + For example, Docker CLI have all the image operations under + `docker image` and all the network operations under `docker network`. + If I want to delete an image, I use `docker image rm`, if I want to + delete a network, I use `docker network rm`, and so on. I would make + Git CLI work based on that idea, for example: + + - `git branch add my_branch` + - `git branch delete my_branch` + - `git branch list` + - `git remote add my_remote ...` + - `git remote delete my_remote` + - `git remote list` + - `git tag add my_tag` + - `git tag delete my_tag` + - `git tag list` + + With some shorter alias, just like Docker has `docker rmi` and + `docker rm`. + + [_Elijah Newren_][elijah]: The index. For a few reasons. + + 1. Performance. + 1. The index is pervasive throughout the codebase, and while it works + great for small repositories, it means that many operations are O(size + of repository) instead of O(size of changes). [sparse indices][sparse-index] + help, but the code has to be carefully audited for sparse indices to + work with each codepath, and even then there tends to be a fallback of + just-load-everything-anyway because the data structure doesn't lend + nicely to just expanding a little more. + + 2. An under-appreciated aspect of the performance improvements that + came from our new merge strategy, [`merge-ort`][merge-ort], were due + to dispensing with the index as the primary data structure. The index + had two problems: + 1. first of all it meant loading every path in the repository, + which would have prevented ort's optimization to avoid recursing into + subtrees when unnecessary (an optimization that often made merges e.g. + 50x faster). Sparse indices didn't exist back then, but even if they + had we would have had to complicate them significantly in order to + have their sparseness be determined by renames and the intersection of + modified paths on the two sides of history instead of having + sparseness determined by user-defined path rules; I think that'd have + been much more complicated than just dispensing with the index as the + data structure, but we didn't even have sparse indices back then + anyway. + + 2. Second, the use of the index as done in the old merge strategy, + `merge-recursive`, resulted in O(N^2) behavior since entries (including + conflicted higher order stages) had to be inserted in sorted order. + Deleting entries didn't have the same O(N^2) problem due to some + tricks to queue the deletion for later, but attempting to do the same + for insertions was far from straightforward and I believe would have + required making some other data structure primary and then forming the + index at the end. (Note that the primary data structure used, whatever + it is, cannot just have a list of things to insert, it also needs to + be checked for various properties intermingled with insertions...and + those sometimes relied on the fact that the index was sorted for quick + lookups.)

+ (Note that a tree-structured index rather than a linear index would + resolve these problems. But retrofitting the entire codebase is + probably never going to happen...) + + 2. Cognitive Complexity.
The funny thing is, although I say this, + I use the index all the time. I use `git add -p` a lot. I very much + need to slice and dice my changes into different commits, and tend to + have dirty changes that I don't want pushed.

+ But slicing and dicing before things are committed, as opposed to + being able to slice and dice after, is a choice that adds a lot of + complexity to the user interface and does so even for users who aren't + interested in slicing and dicing commits. We don't have a + sufficiently flexible set of tooling for slicing and dicing commits + after-the-fact within git to switch to a post-commit-slice-and-dice + workflow even today, but I suspect that some of the ideas from [JJ][jujutsu] + would or could be much better than the methods I use today in git to + slice and dice commits. + + +- **Which Git feature or improvement over the past 20 years do you think + had the biggest impact on your workflow?** + + [_Lucas Seiki Oshiro_][seiki]: Sorry, but I can't answer. I am from a + generation that started programming when Git was already the de facto + VCS so I can't compare a world that has it with a world that doesn't have. + + [_Elijah Newren_][elijah]: Speed. + + Being able to instantly switch branches (in smaller repos, sure, but + CVS and SVN couldn't pull it off even in small repos) was a game + changer. + + +- **What Git problem that existed 10 years ago has been most + successfully solved?** + + [_Lucas Seiki Oshiro_][seiki]: Sorry again, but 10 years ago I was only + starting to use Git and when I started to use more complex features they + already were there. + + [_Elijah Newren_][elijah]: Merging and rebasing with lots of renames + (and generally merging without a worktree or index). I'm obviously + a bit biased on this point, but that doesn't mean I'm wrong. ;-) + It used to be awful and works great now. + + Relatedly, merging without a worktree or index was problematic; you + had to either use an alternative merge strategy with limited + capabilities, or use something other than git (e.g. [libgit2][libgit2]). + But now git handles it well with its default merge strategy. + + +- **Which Git commands or workflows do you think are still misunderstood + or underutilized today?** + + [_Lucas Seiki Oshiro_][seiki]: I think [squash merges][squash-merge] and + [submodules][submodule] are really misunderstood, yet they are the opposite + of being underutilized. Sadly I saw several people using them in daily basis, + based on the wrong idea of what they are and then using them incorrectly. + + + What I think it is underutilized is the full power of commits of being + a good source of documentation and good resource for, again, performing + code archaeology that may help understanding what the code does and + debugging it. Several developers treat the commits as just checkpoints. + + [_Elijah Newren_][elijah]: `range-diff` is very under-utilized, but I + already discussed that above. + + +- **What's one Git based project, tool, or extension you think deserves + more recognition from the community?** + + [_Lucas Seiki Oshiro_][seiki]: Perhaps it would be better to leave this + question for other less known tools. But if you want an answer, I think: + + - [Delta](https://github.com/dandavison/delta) is a really cool to + format the diff-related outputs; + + - [Kworkflow](https://kworkflow.org/) is a powerful tool for + contributing to the Linux kernel source code (I should also + try it for contributing to the Git source code); + + - Merge drivers in general. `diff3` works in most cases but it is + only based on pure diffs, without performing deeper operations based + on the file format they are merging. + + +- **What Git feature or capability surprised you most when you first + discovered it?** + + [_Lucas Seiki Oshiro_][seiki]: As you may have noticed, I'm really + a fan of Git archaeology :-), so I would say all that I mentioned + in the first answer (i.e., `git grep`, `git log -S/-G`, `git log -L` + and `git bisect`). But my favorite is still [bisect][bisect]. + It's an egg of Columbus and everyone that I have shown it to + was equally amazed by it! + + +- **What's your boldest prediction about how version control might look + in another 20 years?** + + [_Lucas Seiki Oshiro_][seiki]: I still see Git as the dominant VCS + in the future, but I think more Git-based VCSs (like [Jujutsu][jujutsu] + will arise. Just like we have today programming languages built on top + of the stack of the other languages (e.g. Clojure, Kotlin and Scala on + JVM, TypeScript on JS), networking protocols written on top of other + protocols (e.g. QUIC on UDP, gRPC on HTTP) and so on. + + The Git core is simple, flexible, transparent and powerful and there's + still room for people using it directly in several creative ways. Once + I saw [a project using it as a backend for a NoSQL database][git-backend-nosql], + who knows how many use cases we still have for it. + + [_Elijah Newren_][elijah]: I'm more interested in what storms might be + brewing along that path, and what we might be able to do to avoid them. + In particular, some questions and observations in that area: + + * With monorepos growing ever larger, do we have hard-to-workaround-or-fix + design decisions that pose scaling challenges? e.g. + * the index data structure + * per-directory .gitignore files, per-directory .gitattribute files, etc. + * ...or do the prominent Git forges have hard-to-workaround-or-fix + design decisions that'll give Git a reputation for not scaling? e.g. + * making refs/pull/NNN/merge a public ref and excessively + implicitly updating it + * Will we face a crisis of interest? e.g. + * `git` is currently written in C. Even if that's not a liability + already, coupled with "decades" I think it is. Young developers + probably don't want to learn C, and older ones who already know C + may worry about C becoming a Fortran or Cobol. + * Companies employing Git developers think "git already won" and + redeploy those engineers on other problems + * Will the combination of issues above result in folks who want improvements + deciding their best bet is not improving Git but in creating/funding + an alternative? Will that snowball? + +
+ To me, the entry of new projects like [JJ][jujutsu] and [sapling][sapling] + suggest the above are real concerns already rather than just theoretical. + Both projects have compelling things that git lacks. I like the friendly + competition, and the JJ and sapling developers are awesome to talk to + at Git Merge conferences. But there is a risk that this friendly + competition mirrors that of Git and Mercurial from years past, and + that Git at some future point down the road ends up on the other side + of that history and gets largely displaced by the alternatives. I'd + rather not see that happen, but I sometimes wonder if we're taking + enough measures to avoid marching towards such an outcome. + + +[thalia]: https://discord.com/channels/1042895022950994071/1361310935427584213/1361316878819131452 +[luca]: https://public-inbox.org/git/04A328E9-1146-4D4A-84E7-456FFEB66A5A@gmail.com/ +[seiki]: https://public-inbox.org/git/AE27429C-97B1-4226-8F30-5B635A050498@gmail.com/ +[elijah]: https://public-inbox.org/git/CABPp-BH2yH4iJ28Bo7Q=uryu68LLk7a0Tvb2SzAbAiHK8QpRug@mail.gmail.com/ +[squash-merge]: https://git-scm.com/docs/git-merge#Documentation/git-merge.txt---squash +[submodule]: https://git-scm.com/docs/git-submodule +[bisect]: https://git-scm.com/docs/git-bisect +[range-diff]: https://git-scm.com/docs/git-range-diff +[sparse-index]: https://git-scm.com/docs/sparse-index +[merge-ort]: https://git-scm.com/docs/merge-strategies#Documentation/merge-strategies.txt-ort +[jujutsu]: https://github.com/jj-vcs/jj?tab=readme-ov-file#introduction +[git-backend-nosql]: https://www.kenneth-truyers.net/2016/10/13/git-nosql-database +[notedb]: https://www.gerritcodereview.com/notedb.html +[bobby-tables]: https://xkcd.com/327/ +[libgit2]: https://libgit2.org/ +[sapling]: https://sapling-scm.com/ -TODO ### Short Q&A with our maintainer, Junio C Hamano From a490ab658f8a2a5a40d45e26f841939a48a2c399 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 2 May 2025 10:46:32 +0530 Subject: [PATCH 182/336] rn-122: minor grammatical and typo corrections to Junio's answers --- rev_news/drafts/edition-122.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index a82d1592f..91ce4a025 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -574,7 +574,7 @@ zealous, inclusive and tireless maintainer that follows below._ is one of the most important design discussion in the early days of Git. In that article, Linus outlines how his "ideal" SCM tool would - let you follow the historyz of a single function in today's codebase + let you follow the history of a single function in today's codebase backwards, notice that at certain revision the function appeared, but the tool finds five functions disappeared in the same revision, all looking very similar to the function we are interested in that was @@ -611,10 +611,10 @@ zealous, inclusive and tireless maintainer that follows below._ responsibility. The maintainer may play a role of the final arbiter, but it would be great if we can come up with a mechanism to allow list participants to bear more of the burden of picking and choosing good - direction to go, deciding if a particular change is worth doing or the - are better ways to do the same thing, etc. I've been trying to nudge - the list discussions in that direction for the past few years, but - without much success, I think. + direction to go, deciding if a particular change is worth doing or + are there better ways to do the same thing, etc. I've been trying to + nudge the list discussions in that direction for the past few years, + but without much success, I think. ## Other News From 6fb1b49b3c6b24ab1430a6e40123f9846d1eb2fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Fri, 2 May 2025 10:05:20 +0200 Subject: [PATCH 183/336] rn-122: minor copy edit --- rev_news/drafts/edition-122.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 91ce4a025..65ea3c4de 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -79,7 +79,7 @@ This edition covers what happened during the months of March and April 2025. as a series of commits, and wondered if that would still allow cherry-picking patches. - Then Daniel Barkalow and Catalin Marinas chimed into the discussion + Then Daniel Barkalow and Catalin Marinas chimed in to talk about [StGit (Stacked Git)](https://stacked-git.github.io/) which helps manage Git commits as a stack of patches. Catalin Marinas was the creator of StGit, which seems to still be developed @@ -154,7 +154,7 @@ This edition covers what happened during the months of March and April 2025. Daniel and Linus continued to discuss practical ways to identify and manage patches across repositories. Linus proposed hashing the - actual changes in a patch, ignoring line numbers and whitespaces, + actual changes in a patch, ignoring line numbers and whitespace, rather than relying on explicit IDs or commit metadata. He implemented this idea in the form of a `git-patch-id` and tested it on the Linux kernel repository where it found 15 duplicate patches @@ -420,7 +420,7 @@ zealous, inclusive and tireless maintainer that follows below._ based on the wrong idea of what they are and then using them incorrectly. - What I think it is underutilized is the full power of commits of being + What I think is underutilized is the full power of commits being a good source of documentation and good resource for, again, performing code archaeology that may help understanding what the code does and debugging it. Several developers treat the commits as just checkpoints. @@ -435,8 +435,8 @@ zealous, inclusive and tireless maintainer that follows below._ [_Lucas Seiki Oshiro_][seiki]: Perhaps it would be better to leave this question for other less known tools. But if you want an answer, I think: - - [Delta](https://github.com/dandavison/delta) is a really cool to - format the diff-related outputs; + - [Delta](https://github.com/dandavison/delta) is a really cool tool + for formatting the diff-related outputs; - [Kworkflow](https://kworkflow.org/) is a powerful tool for contributing to the Linux kernel source code (I should also @@ -633,7 +633,7 @@ __Various__ by Patrick Steinhardt on GitLab blog. * [GitHub MCP Server is now available in public preview](https://github.blog/changelog/2025-04-04-github-mcp-server-public-preview/). [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) - is an AI tool calling standard that give LLMs (Large Language Models) + is an AI tool calling standard that gives LLMs (Large Language Models) a standardized way to call functions, look up data, and interact with the world. @@ -643,7 +643,7 @@ __Light reading__ by Andrew Lock on his .NET Escapades blog. * [Mirroring my git repositories](https://dustri.org/b/mirroring-my-git-repositories.html) using [cgit](https://git.zx2c4.com/cgit/about/) for the interface and nginx as a web server. - By Julien (jvoisin) Voisin on their7 blog. + By Julien (jvoisin) Voisin on their blog. * [Mirroring my Repositories from GitHub to GitLab](https://cleberg.net/blog/git-mirror.html), including both public and private repositories on GitLab Free tier. By Christian Cleberg on his blog. From aa8780558a57262be2838bf6f80c4ec2a174b12c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:30:05 +0200 Subject: [PATCH 184/336] =?UTF-8?q?rn-122:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rev_news/drafts/edition-122.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 65ea3c4de..e0fc726a4 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -751,4 +751,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito. +with help from Bruno Brito and Štěpán Němec. From 55354769a184da9de585159393ca96ee0ac3a674 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:31:09 +0200 Subject: [PATCH 185/336] rn-122: add Junio Hamano among the helpers --- rev_news/drafts/edition-122.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index e0fc726a4..07dd1419e 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -751,4 +751,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito and Štěpán Němec. +with help from Junio Hamano, Bruno Brito and Štěpán Němec. From 3018e6467e34203a575b81037af1374ece4f8c6e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:32:56 +0200 Subject: [PATCH 186/336] rn-122: add Lucas Seiki Oshiro among the helpers --- rev_news/drafts/edition-122.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 07dd1419e..17f0183ae 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -751,4 +751,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Junio Hamano, Bruno Brito and Štěpán Němec. +with help from Junio Hamano, Lucas Seiki Oshiro, +Bruno Brito and Štěpán Němec. From d65603d5d248a2c261d94e53fd67a692b058cc1a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:33:59 +0200 Subject: [PATCH 187/336] rn-122: add Elijah Newren among the helpers --- rev_news/drafts/edition-122.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 17f0183ae..c5ff524a0 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -752,4 +752,4 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Junio Hamano, Lucas Seiki Oshiro, -Bruno Brito and Štěpán Němec. +Elijah Newren, Bruno Brito and Štěpán Němec. From e073b23d5b1e88cb9162bb7fc8a009e1974cb523 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:35:16 +0200 Subject: [PATCH 188/336] rn-122: add Thalia Rose among the helpers --- rev_news/drafts/edition-122.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index c5ff524a0..9b211c51d 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -752,4 +752,4 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Junio Hamano, Lucas Seiki Oshiro, -Elijah Newren, Bruno Brito and Štěpán Němec. +Thalia Rose, Elijah Newren, Bruno Brito and Štěpán Němec. From 5dc96627086a63d04aefe0b7a13cd1f15949ed88 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:36:31 +0200 Subject: [PATCH 189/336] rn-122: add Luca Milanesio among the helpers --- rev_news/drafts/edition-122.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 9b211c51d..437ee8960 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -752,4 +752,5 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Junio Hamano, Lucas Seiki Oshiro, -Thalia Rose, Elijah Newren, Bruno Brito and Štěpán Němec. +Luca Milanesio, Thalia Rose, Elijah Newren, +Bruno Brito and Štěpán Němec. From 47c4e9768232694ee7f6b7e2bb282c4471f9082f Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:38:44 +0200 Subject: [PATCH 190/336] rn-122: add Toon Claes among the helpers --- rev_news/drafts/edition-122.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 437ee8960..8b5803aab 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -753,4 +753,4 @@ Markus Jansen <> and Kaartic Sivaraam <> with help from Junio Hamano, Lucas Seiki Oshiro, Luca Milanesio, Thalia Rose, Elijah Newren, -Bruno Brito and Štěpán Němec. +Toon Claes, Bruno Brito and Štěpán Němec. From 6f8f2da4b4903a0a91329ce2f6e0760e79a98f59 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:39:47 +0200 Subject: [PATCH 191/336] rn-122: add Lee Reilly among the helpers --- rev_news/drafts/edition-122.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-122.md b/rev_news/drafts/edition-122.md index 8b5803aab..98ace1084 100644 --- a/rev_news/drafts/edition-122.md +++ b/rev_news/drafts/edition-122.md @@ -753,4 +753,4 @@ Markus Jansen <> and Kaartic Sivaraam <> with help from Junio Hamano, Lucas Seiki Oshiro, Luca Milanesio, Thalia Rose, Elijah Newren, -Toon Claes, Bruno Brito and Štěpán Němec. +Toon Claes, Lee Reilly, Bruno Brito and Štěpán Němec. From a08a01d87eed82f1f890c0c33b7647eef5adb655 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:42:51 +0200 Subject: [PATCH 192/336] Publish rn-122 in _posts/ --- .../edition-122.md => _posts/2025-04-30-edition-122.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-122.md => _posts/2025-04-30-edition-122.markdown (100%) diff --git a/rev_news/drafts/edition-122.md b/_posts/2025-04-30-edition-122.markdown similarity index 100% rename from rev_news/drafts/edition-122.md rename to _posts/2025-04-30-edition-122.markdown From 6f696bd5a1d59af76c783727c1ee7323a89db0c5 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 May 2025 10:42:51 +0200 Subject: [PATCH 193/336] Add draft for rn-123 --- rev_news/drafts/edition-123.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-123.md diff --git a/rev_news/drafts/edition-123.md b/rev_news/drafts/edition-123.md new file mode 100644 index 000000000..ee42dedcd --- /dev/null +++ b/rev_news/drafts/edition-123.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 123 (May 31st, 2025) +layout: default +date: 2025-05-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 123 (May 31st, 2025) + +Welcome to the 123rd 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 April 2025 and May 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 777f3f400de00a17ce6811d3ac7f07c6eb6e121e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 May 2025 09:40:53 +0200 Subject: [PATCH 194/336] rn-123: add releases --- rev_news/drafts/edition-123.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/rev_news/drafts/edition-123.md b/rev_news/drafts/edition-123.md index ee42dedcd..5d3b52824 100644 --- a/rev_news/drafts/edition-123.md +++ b/rev_news/drafts/edition-123.md @@ -49,6 +49,30 @@ __Git tools and sites__ ## Releases ++ Git [2.50.0-rc0](https://public-inbox.org/git/xmqqzfewsml1.fsf@gitster.g/) ++ GitLab [18.0.1, 17.11.3, 17.10.7](https://about.gitlab.com/releases/2025/05/21/patch-release-gitlab-18-0-1-released/), +[18.0](https://about.gitlab.com/releases/2025/05/15/gitlab-18-0-released/), +[17.11.2, 17.10.6, 17.9.8](https://about.gitlab.com/releases/2025/05/07/patch-release-gitlab-17-11-2-released/) ++ Gerrit Code Review [3.10.6](https://www.gerritcodereview.com/3.10.html#3106), +[3.11.3](https://www.gerritcodereview.com/3.11.html#3113), +[3.12.0-rc5](https://www.gerritcodereview.com/3.12.html#3120), +[3.12.0-rc6](https://www.gerritcodereview.com/3.12.html#3120), +[3.12.0](https://www.gerritcodereview.com/3.12.html#3120), +[3.9.11](https://www.gerritcodereview.com/3.9.html#3911) ++ GitHub Enterprise [3.16.3](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.3), +[3.15.7](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.7), +[3.14.12](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.12), +[3.13.15](https://docs.github.com/enterprise-server@3.13/admin/release-notes#3.13.15), +[3.17.0](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.0) ++ GitKraken [11.1.1](https://help.gitkraken.com/gitkraken-client/current/), +[11.1.0](https://help.gitkraken.com/gitkraken-client/current/), +[11.0.0](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.4.20](https://desktop.github.com/release-notes/) ++ Garden [2.2.0](https://github.com/garden-rs/garden/releases/tag/v2.2.0) ++ Git Cola [4.13.0](https://github.com/git-cola/git-cola/releases/tag/v4.13.0) ++ GitButler [0.14.26](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.26), +[0.14.25](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.14.25) ++ git-credential-oauth [0.15.1](https://github.com/hickford/git-credential-oauth/releases/tag/v0.15.1) ## Credits From af1b66d6cd95530d44c4b3a1f5825ed7d28caf8e Mon Sep 17 00:00:00 2001 From: Patrick Steinhardt Date: Fri, 30 May 2025 10:09:46 +0200 Subject: [PATCH 195/336] microprojects: drop project to fix sign comparison warnings As it turns out, fixing sign comparison warnings is very intricate in a lot of situations and has led to frustration on both the contributor's and reviewer's side. Drop the project. --- SoC-2025-Microprojects.md | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/SoC-2025-Microprojects.md b/SoC-2025-Microprojects.md index d382dbf69..5a5db49ea 100644 --- a/SoC-2025-Microprojects.md +++ b/SoC-2025-Microprojects.md @@ -12,39 +12,6 @@ There are some suggestions on how you can find some microprojects on your own in ## Ideas for microprojects -### Fix Sign Comparison Warnings in Git's Codebase - -Help improve Git's code quality by fixing sign comparison warnings in files that -currently disable these warnings. The goal is to remove instances of -`DISABLE_SIGN_COMPARE_WARNINGS` macro and fix the underlying issues properly. - -#### Steps to Complete -1. Find a C source file that contains `#define DISABLE_SIGN_COMPARE_WARNINGS` -2. Remove this #define -3. Build Git with `DEVELOPER=1` to enable compiler warnings. The `DEVLEOPER` - can be specified in your `config.mak` or as follows - - ```sh - make DEVELOPER=1 -j4 - ``` - -4. Fix all `-Wsign-compare` warnings that appear for that file: - - Pay attention to comparisons between signed and unsigned integers - - Modify variable types or add appropriate casts as needed - - Ensure the fixes don't change the code's behavior - -#### Notes -- Each file should be handled in a separate patch -- Follow Git's commit message conventions -- Test your changes thoroughly -- This is part of an ongoing effort to enable `-Wsign-compare` globally - -#### Related Patches -For context on why this is a crucial improvement to Git's codebase, checkout -[this e-mail](https://public-inbox.org/git/20241206-pks-sign-compare-v4-0-0344c6dfb219@pks.im/) -by Patrick Steinhardt. - - ### Modernize Test Path Checking in Git's Test Suite Help improve Git's test suite by converting old-style path checks to use modern From 8089e231d92ca441a7440a93b267b89a90ef360b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 31 May 2025 17:02:22 +0200 Subject: [PATCH 196/336] rn-123: add --no-hooks article --- rev_news/drafts/edition-123.md | 104 ++++++++++++++++++++++++++++++++- 1 file changed, 102 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-123.md b/rev_news/drafts/edition-123.md index 5d3b52824..e0b3a05a4 100644 --- a/rev_news/drafts/edition-123.md +++ b/rev_news/drafts/edition-123.md @@ -21,9 +21,109 @@ This edition covers what happened during the months of April 2025 and May 2025. ### General --> - + +* [[PATCH] git: add --no-hooks global option](https://lore.kernel.org/git/pull.1899.git.1743719888430.gitgitgadget@gmail.com/) + + Derrick Stolee, who prefers to be called just Stolee, sent a patch + to the mailing list that added a new `--no-hooks` global option, and + an equivalent `GIT_HOOKS` environment variable, to Git. The goal was + to allow users to disable all Git hooks during command execution. + + This could be useful for expert users who would want to bypass + pre-commit hooks when they have poor performance or perform useless + checks. + + Switching between enabled and disabled hooks and other workarounds, + like setting `core.hooksPath` to a "bogus path" did not look + convenient and very safe. + + brian m. carlson, who spell their name using only lowercase letters, + replied to Stolee acknowledging the need for this functionality as + some Jenkins users already set `core.hooksPath` to `/dev/null` for + security reasons. They warned that disabling hooks could break + [Git LFS](https://git-lfs.com/) in a way that is "less noticeable + and detectable" than the current `/dev/null` approach. + + They agreed that certain hooks like pre-commit hooks should be + optional, for example to make it easy to commit some + work-in-progress that doesn't meet standards, but saw fewer reasons + to bypass hooks that could be important for repository integrity. + + Stolee agreed that some hooks are important for integrity, but said + his intention was on the side of optional hooks. + + Phillip Wood also replied to Stolee's initial email noting that + there is already `git commit --no-verify` which bypasses the + pre-commit and commit-msg hooks. He argued that hooks so slow that + users want to bypass them are self-defeating and that the solution + should be to fix the hook's performance rather than make it easier + to skip. About setting `core.hooksPath` to `/dev/null`, he asked why + it could be unsafe. In general he said he wasn't convinced that + `--no-hooks` was a good idea, and later asked for "a clearer + motivation" to better understand its usefulness. + + Stolee agreed that setting `core.hooksPath` to `/dev/null` was safe, + and said he had forgotten that could be used instead of a bogus + path. + + Junio Hamano, the Git maintainer, then replied to Phillip thanking + him for pushing back on the idea, and saying that there should be a + "compelling reason" to justify applying a change. + + Also instead of implementing options to disable hooks or + configuration in some user facing "porcelain" commands, Junio + advocated for cleaning up and refactoring these commands into new + stable "plumbing" commands designed to be easily used in scripts. + + Lucas Seiki Oshiro in the meantime replied to Phillip. Lucas had + noticed that using `/dev/null` to disable hooks wasn't mentioned in + the documentation of `core.hooksPath` even though it was tested in a + test script. He asked if Stolee's patch should therefore be turned + into a documentation patch. + + brian agreed with Lucas that documenting how to disable hooks was a + good idea even if the `--no-hooks` option wasn't implemented. + + D. Ben Knoble also replied to Stolee's initial patch. He supported + the addition of the `--no-hooks` option, sharing his own + frustrations with poorly performing or difficult-to-manage hooks. He + described how a tool re-enables hooks after every `npm install` + leading him to overuse `--no-verify`, which he considered a worse + situation. He believed there should be a safe and sane way to + disable optional client-side hooks and felt that a `--no-hooks` + option would be useful, potentially encouraging better practices + like moving certain checks to server-side hooks. + + Stolee then replied to Junio thanking him for deciding about this + and saying he would follow up with a version 2 of his patch that + would only document that setting `core.hooksPath` to `/dev/null` was + the supported mechanism to disable hooks. + + In [the version 2 of his patch](https://lore.kernel.org/git/pull.1899.v2.git.1744818135435.gitgitgadget@gmail.com/) + indeed Stolee only updated the documentation of the `core.hooksPath` + configuration option, adding the following small paragraph: + + > You can also disable all hooks entirely by setting `core.hooksPath` + > to `/dev/null`. This is usually only advisable for expert users and + > on a per-command basis using configuration parameters of the form + > `git -c core.hooksPath=/dev/null ...`. + + Lucas replied to that new patch. He suggested rewording the + documentation to focus on non-expert users rather than + experts. Stolee disagreed, explaining he intentionally targeted + expert users as a "there be dragons here" warning about the risks of + disabling hooks. + + brian supported Stolee's approach, agreeing that this feature should + be presented as expert-only due to the potential for data loss (like + missing Git LFS uploads). He appreciated Stolee's gracious pivot + from code changes to documentation. + + Junio also thanked Stolee for gracefully changing direction and + ensuring no loose ends were left after abandoning the original + approach. __Git tools and sites__ ++ [A modern theme for cgit](https://yingtongli.me/blog/2025/05/16/cgit.html) + by Lee Yingtong Li on Inane Observations blog. + Source code for described themed fork of cgit is available + at . + ## Releases From 3125af376a746da367051f1dadf0dc1b10b6149b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 2 Jun 2025 16:23:59 +0200 Subject: [PATCH 200/336] rn-123: add GSoC 2025 article --- rev_news/drafts/edition-123.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-123.md b/rev_news/drafts/edition-123.md index dac024057..e65a1fa64 100644 --- a/rev_news/drafts/edition-123.md +++ b/rev_news/drafts/edition-123.md @@ -17,10 +17,31 @@ This edition covers what happened during the months of April and May 2025. ## Discussions - +* [[GSoC] Welcoming our 2025 contributors and thanking our applicants](https://lore.kernel.org/git/A2C60325-F96A-49FC-8910-035BFC209EB5@gmail.com/) + + The Git project was accepted in the + [Google Summer of Code (GSoC)](https://summerofcode.withgoogle.com/) + this year again, and 3 applicants were selected: + + - Meet Soni will work on + [the "Consolidate ref-related functionality into git-refs" project](https://summerofcode.withgoogle.com/programs/2025/projects/xVrT5e2q) + mentored by Patrick Steinhardt and Jialuo She. See Meet's + [blog](https://inosmeet.github.io/posts/) and + [repository](https://github.com/inosmeet/git) for more. + + - Lucas Seiki Oshiro will work on + [the "Machine-Readable Repository Information Query Tool" project](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl) + mentored by Karthik Nayak and Patrick + Steinhardt. See Lucas' [blog](https://lucasoshiro.github.io/en/) + and [repository](https://github.com/lucasoshiro/git) for more. + + - Ayush Chandekar will work on + [the "Refactoring in order to reduce Git’s global state" project](https://summerofcode.withgoogle.com/programs/2025/projects/no7dVMeG) + mentored by Christian Couder and Ghanshyam Thakkar. See Ayush's + [blog](https://ayu-ch.github.io/archive.html) and + [repository](https://github.com/ayu-ch/git) for more. ### Reviews From 9283a5c104b05e70cc17971e932cdbc253e74e81 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 2 Jun 2025 16:25:46 +0200 Subject: [PATCH 201/336] Publish rn-123 in _posts/ --- .../edition-123.md => _posts/2025-05-31-edition-123.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-123.md => _posts/2025-05-31-edition-123.markdown (100%) diff --git a/rev_news/drafts/edition-123.md b/_posts/2025-05-31-edition-123.markdown similarity index 100% rename from rev_news/drafts/edition-123.md rename to _posts/2025-05-31-edition-123.markdown From 30c03ac1f917307b400375b043197c4b07e9a757 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 2 Jun 2025 16:25:46 +0200 Subject: [PATCH 202/336] Add draft for rn-124 --- rev_news/drafts/edition-124.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-124.md diff --git a/rev_news/drafts/edition-124.md b/rev_news/drafts/edition-124.md new file mode 100644 index 000000000..06388e788 --- /dev/null +++ b/rev_news/drafts/edition-124.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 124 (June 30th, 2025) +layout: default +date: 2025-06-30 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 124 (June 30th, 2025) + +Welcome to the 124th 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 May 2025 and June 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 38541e3b0362820856afc693bac7a128c666b448 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 2 Jun 2025 16:49:27 +0200 Subject: [PATCH 203/336] rn-123: remove 'with help from XXX' --- _posts/2025-05-31-edition-123.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_posts/2025-05-31-edition-123.markdown b/_posts/2025-05-31-edition-123.markdown index e65a1fa64..06a76a5bc 100644 --- a/_posts/2025-05-31-edition-123.markdown +++ b/_posts/2025-05-31-edition-123.markdown @@ -243,5 +243,4 @@ This edition of Git Rev News was curated by Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and -Kaartic Sivaraam <> -with help from XXX. +Kaartic Sivaraam <>. From 3b94193a7adc46d23072a87fb90eb7629c1e3548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 2 Jun 2025 18:02:06 +0200 Subject: [PATCH 204/336] rn-123: Add more links --- _posts/2025-05-31-edition-123.markdown | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/_posts/2025-05-31-edition-123.markdown b/_posts/2025-05-31-edition-123.markdown index 06a76a5bc..5d4b4d95d 100644 --- a/_posts/2025-05-31-edition-123.markdown +++ b/_posts/2025-05-31-edition-123.markdown @@ -195,7 +195,15 @@ __Light reading__ by Arnold Noronha on Screenshotbot Blog. + [Fixing SSH Conflicts: Using a Separate SSH Key for GitHub](https://dev.to/hastycodea/fixing-ssh-conflicts-using-a-separate-ssh-key-for-github-4in1) by Hastycode Andreh on DEV\.to. - One trick to add is the use of `url..insteadOf`. + One trick to add is the possible use of `url..insteadOf`. ++ [The reductionist theory or rethinking of .gitignore bloat](https://dev.to/iegik/the-reductionist-theory-or-rethinking-of-gitignore-bloat-4gfo) + by Arturs Jansons on DEV\.to. + Mentions [gitignore.io](https://www.gitignore.io/), + first mentioned in passing in [Git Rev News Edition #6](https://git.github.io/rev_news/2015/08/05/edition-6/), + then linked to (with new final URL) in [Git Rev News Edition #94](https://git.github.io/rev_news/2022/12/31/edition-94/), + and [github/gitignore](https://github.com/github/gitignore) - which was + first mentioned in passing in [Git Rev News Edition #21](https://git.github.io/rev_news/2016/11/16/edition-21/), + then also linked to in [Edition #94](https://git.github.io/rev_news/2022/12/31/edition-94/), __Light reading__ From 4ae99895649e3a0bd45211017d19218eef8e3b5c Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Mon, 2 Jun 2025 20:55:49 +0200 Subject: [PATCH 206/336] Tiny corrections and rephrasings, part 2. --- _posts/2025-05-31-edition-123.markdown | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/_posts/2025-05-31-edition-123.markdown b/_posts/2025-05-31-edition-123.markdown index 1f9b361af..96e3cd14c 100644 --- a/_posts/2025-05-31-edition-123.markdown +++ b/_posts/2025-05-31-edition-123.markdown @@ -29,13 +29,13 @@ This edition covers what happened during the months of April and May 2025. [the "Consolidate ref-related functionality into git-refs" project](https://summerofcode.withgoogle.com/programs/2025/projects/xVrT5e2q) mentored by Patrick Steinhardt and Jialuo She. See Meet's [blog](https://inosmeet.github.io/posts/) and - [repository](https://github.com/inosmeet/git) for more. + [repository](https://github.com/inosmeet/git) for more. - Lucas Seiki Oshiro will work on [the "Machine-Readable Repository Information Query Tool" project](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl) - mentored by Karthik Nayak and Patrick - Steinhardt. See Lucas' [blog](https://lucasoshiro.github.io/en/) - and [repository](https://github.com/lucasoshiro/git) for more. + mentored by Karthik Nayak and Patrick + Steinhardt. See Lucas's [blog](https://lucasoshiro.github.io/en/) + and [repository](https://github.com/lucasoshiro/git) for more. - Ayush Chandekar will work on [the "Refactoring in order to reduce Git’s global state" project](https://summerofcode.withgoogle.com/programs/2025/projects/no7dVMeG) @@ -45,7 +45,7 @@ This edition covers what happened during the months of April and May 2025. ### Reviews -* [[PATCH] git: add --no-hooks global option](https://lore.kernel.org/git/pull.1899.git.1743719888430.gitgitgadget@gmail.com/) +* [[PATCH] git: add `--no-hooks` global option](https://lore.kernel.org/git/pull.1899.git.1743719888430.gitgitgadget@gmail.com/) Derrick Stolee, who prefers to be called just Stolee, sent a patch to the mailing list that added a new `--no-hooks` global option and @@ -170,16 +170,16 @@ __Light reading__ + [Git aliases](https://heitorpb.github.io/bla/git-aliases/) by Heitor de Bittencourt on Heitor's Log blog, which includes comparison with shell aliases, - and is only missing the trick to set git completion for `!` alias. + and is only missing the trick to set `git` completion for the `!` alias. + [Pushing a whole stack of branches with a single Git command](https://andrewlock.net/pushing-a-whole-stack-of-branches-with-a-single-git-command/) (with the help of git aliases) - by Andrew Lock on .NET Escapades + by Andrew Lock on .NET Escapades. + [Tally All Git Trailers in a Repository](https://calebhearth.com/tally-git-trailers.page), with a list of interesting and useful trailers _(with many links)_, by Caleb Hearth on his blog. + [You can use Git to version control your notes, and here’s how I do it](https://www.xda-developers.com/you-can-use-git-to-version-control-your-notes/) by Ayush Pande on XDA Developers - (with Joplin as an example of note-taking application one can use with Git). + (with Joplin as an example of a note-taking application one can use with Git). + [A Short Guide on Git for Vibe Coders](https://anfalmushtaq.com/articles/a-short-guide-on-git-for-vibe-coders) by Anfal Mushtaq on his blog. + [Version Control To The Max](https://hackaday.com/2025/05/14/version-control-to-the-max/) @@ -187,11 +187,11 @@ __Light reading__ about backing up the entire development environment (with QEMU or VirtualBox or VMWare). + [Converting a Git repo from tabs to spaces](https://eev.ee/blog/2016/06/04/converting-a-git-repo-from-tabs-to-spaces/) - with the help of "filter" gitattribute and `expand` tool (part of the _coreutils_), + with the help of the "filter" gitattribute and the `expand` tool (part of the _coreutils_), by Eevee on Fuzzy Notepad blog (2016). + [How the GitHub CLI can now enable triangular workflows](https://github.blog/open-source/git/how-the-github-cli-can-now-enable-triangular-workflows/) by Tyler McGoffin on GitHub Blog. -+ [Using git-upload-pack for a simpler CI integration](https://blog.screenshotbot.io/2025/05/09/using-git-upload-pack-for-a-simpler-ci-integration/), ++ [Using `git-upload-pack` for a simpler CI integration](https://blog.screenshotbot.io/2025/05/09/using-git-upload-pack-for-a-simpler-ci-integration/), on how Screenshotbot can now extract commit graph data from remote repositories (assuming one has SSH access to their Git repositories), by Arnold Noronha on Screenshotbot Blog. @@ -216,16 +216,16 @@ __Git tools and sites__ + [A modern theme for cgit](https://yingtongli.me/blog/2025/05/16/cgit.html) by Lee Yingtong Li on Inane Observations blog. - Source code for described themed fork of [cgit](https://git.zx2c4.com/cgit/tree/README) + The source code for this themed fork of [cgit](https://git.zx2c4.com/cgit/tree/README) is available at . Under GPL v2 license. + [AutoGit-o-Matic](https://github.com/FPGArtktic/AutoGit-o-Matic) is a Bash script that automates Git operations across multiple repositories. It helps you pull or fetch updates from multiple repositories with a single command (with dry-run capability), - and scan directories for Git repositories automatically; - it logs operations in both TXT and JSON formats, - and is configurable via INI file. + scans directories for Git repositories automatically, + logs operations in both TXT and JSON formats, + and is configurable via an INI file. Under GPL-3.0 license. + [StatsCat](https://github.com/z1cheng/statscat) is a CLI tool to get per-author and per-directory statistics of all your Git repositories. From 0c8e09583e31e76de3e0386976cb538d0a9ee321 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Tue, 24 Jun 2025 13:57:09 +0100 Subject: [PATCH 207/336] rn-124: Add new Tower releases + Light Reading --- rev_news/drafts/edition-124.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-124.md b/rev_news/drafts/edition-124.md index 06388e788..5dd37c0fc 100644 --- a/rev_news/drafts/edition-124.md +++ b/rev_news/drafts/edition-124.md @@ -39,6 +39,7 @@ __Various__ __Light reading__ ++ [How to Install Gitea (with SQLite3 and HTTPS!) on a VPS](https://www.git-tower.com/blog/how-to-install-gitea) - +## Community Spotlight: Luca Milanesi + +_Luca Milanesio is long standing contributor to both JGit and Gerrit +Code Review, an open-source veteran who's been accelerating Git +workflows for 30+ years—from founding GerritHub.io to pioneering +AI-powered repository optimization research._ + +_This is a continuation of our initiative to interview community +contributors outside of our mailing list. Our previous interviews +were with [VonC in edition 106][vonc] and [Chris Torek in edition 120][torek]._ + +- **Who are you and what do you do?** + + My name is Luca Milanesio, and I am the CEO of GerritForge Inc., + a company I founded 6 years ago, which is fully dedicated to the + development and support of Git and the Gerrit Code Review ecosystem + for medium and large enterprises around the globe. + + I am a passionate Open-Source contributor, and I have helped many + projects grow over my 30+ years of software development career, + including Jenkins, JGit, GitBlit, Swagger/Open-API, Kibana, Avro, + and Gerrit Code Review. + + I am a maintainer and release manager of Gerrit Code Review and a + member of its Engineering Steering Committee and committer of the + JGit project. + + I introduced GerritHub.io 11 years ago, a free Gerrit Code Review + service for all public and private projects on GitHub. It has over + 50k subscribers and is currently used by over 300 organisations and + open-source projects worldwide. + + My latest work is research about using AI, specifically reinforcement + learning, to dynamically understand and learn how Git repository metrics + evolve and execute actions to improve their performance by up to 100x. + The research has been selected for the 50th edition of the [IEEE/ACM + International Conference on Software Engineering in Ottawa (CA)][3]. + +- **What would you name your most important contribution to the Git ecosystem?** + + I have introduced a multi-site replication plugin between the Git + repositories managed by JGit and Gerrit Code Review [[ref][1]]. + + Google introduced the multi-site replication concept in JGit from + the very beginning in 2012, [with the introduction of DFS][2], a + multi-site distributed storage mechanism for Git. Although DFS was + a completely abstract interface layer that could have been + implemented on top of any distributed storage, in practice, it was + effectively implemented and used only by Google in its internal + implementation of JGit. + + In the meantime, the rest of the Open-Source community was left with + the traditional filesystem-based implementation and its extensions + to work effectively and efficiently with a shared filesystem (e.g., NFS). + I started using the NFS implementation of JGit on GerritHub.io and + contributed many patches and improvements over the years. Still, I + was soon hit with all the quirks and limitations of the NFS protocol + in trying to mock the “illusion” of a POSIX filesystem over a network + protocol, including locking, stale file handles, and caching + inconsistencies. After working for 4 years on the NFS implementation + of JGit on GerritHub.io on a shared filesystem, I forked the + [high-availability plugin project][4] and started the + [multi-site project][1], which has now entered its 6th year of adoption. + + Thanks to the multi-site support, anyone worldwide can use Git + replication across Gerrit primary nodes without fearing a + split-brain disaster, as it [historically happened years ago][5] + on a large-scale Git service. + +- **With over 30 years in software development, how have you seen version + control systems evolve, and what makes Git stand out in this evolution?** +` + I started using RCS on my Unix box for tracking the local version of files + and avoiding bad surprises, and since then I’ve seen so many so-called + revolutions of the version control that promised “the moon” but ended up + creating yet another commercial silos. To name a few, consider + [Rational ClearCase][clearcase] and [Perforce][perforce], and the legacy + they have made for the software industry. + + In my experience, version control is the foundation of any Software + Development Life Cycle (SDLC for short) and should always be thought of + as an evolving technology: I don’t believe that Git is here to stay + forever as-is, even though it would be difficult to imagine an + Open-Source project starting today not using Git as version control. + + But if you roll back to the year 2000s, you could have swapped Microsoft + with VA Software and Git with Subversion, and asked the same question: + _`“What version control and hosting site should a new Open-Source project + use?”_ I believe the answer would differ significantly from the one you + have today [[ref][6]]. + + What makes Git different from its predecessors is its adoption in + large Open-Source projects unlikely to be discontinued any time soon, + such as Linux and the Android OS project. With the advent of IoT and + the extensive adoption of Android OS everywhere, from appliances to + aerospace and automotive, Git version control has become responsible + for powering the SDLC of most devices we use daily. + + A second factor that has brought Git to the world stage as the future + of VCS is its ability to abstract from any vendor bias and be truly + driven by only its user base: software developers. Git was invented + by Linus Torvalds because he needed it, not because a company X wanted + to disrupt the market of the existing version control system Y to + achieve goal Z. + + A third factor is the growth of other Git-compatible version control + systems, such as [JJ (aka Jujutsu)][7]. Git is, first of all, a data + format for versioned directories and BLOBs and a protocol on how this + data can be safely transferred between peers: no implementation-specific + quirks, no vendor lock-ins, no silos, just data and protocol. + This has led other developers, like [Martin Von Zweigbergk][martinvonz] + (Senior Software Engineer @Google), to create version control systems + on top of it, assuring interoperability with the existing code and + innovation simultaneously. + + This is unprecedented and unique in the history of VCSs I have seen + in my whole 30+ career as a Software Developer. Do I believe that + Git will continue to exist in its current form in 25 years from + now? No, I believe it will be very different in the future, but + its foundations will remain the same, and I see many more + evolutions similar to Martin’s JJ project. + +- **You've been working on comparing Git reftable implementations + with JGit alternatives. Could you walk us through what motivated + this research and preview any interesting findings you've + discovered?** + + Being the Gerrit Code Review release manager comes with many + responsibilities, including verifying that whatever we release + is production-ready and always better than what has ever been + released. That also includes, first and foremost, the Git + performance, following Shawn Pearce’s (Gerrit Code Review + project founder, R.I.P.) mantra, “performance is a feature.” + + We have been working in Q1 of 2025 to release and certify + [Gerrit v3.12][gerrit-3.12], which includes the latest and + greatest of JGit’s implementation of reftable, which was + available since 2019 but not used in Gerrit because of the + lack of support from the C Git project. Some parts of Gerrit + use the “C Git” implementation for some scripting side + and replication; therefore, a Git repository with reftable + would not have been compatible with Gerrit until Git v2.45, + which was [released last year][8]. + + In February 2024, at the time of the release of reftable + support in Git v2.45, I was busy with my AI research work + for [optimising Git performance][3], and I immediately + thought that it was the right time to put JGit and C Git + implementation of reftable in the arena and see how they + interoperate and perform during heavy workload. + + The first finding was that reftable has an entirely different + philosophy from any other ref storage used before by Git. + Loose refs and packed refs are both based on the concept of + file-level locking and caching. Both C Git and JGit ensure + that every update is atomic by carefully creating and releasing + ref-level or packed-refs-level lock files and using atomic + filesystem updates to ensure that the concurrency of reads + and updates does not impact the normal functionality of + in-flight operations. JGit has a “wait for lock” mechanism + where the in-flight operation would wait for the lock file + to be released before acquiring the resource, with an exponential + backoff mechanism on packed-refs, whilst C Git just fails the + operation with a lock failure. + + Reftable is different because it is designed to be highly + scalable and performant, compared to loose refs or packed-refs. + To prioritise performance and low latency, reftable decides + to give up thread safety and locking altogether, relying on an + optimistic locking pattern. In a nutshell, whilst packed-refs + blocks the file and waits until it is released, reftable allows + multiple users to access the same data on disk and refer + directly without locking. The operation is always safe because, + unlike packed-refs and loose-refs, the reftable files are always + immutable and therefore safe to be shared concurrently without + any locks. + + What’s the catch? The concurrent updates of the same refs by + two different threads or processes will want to update the + list of reftables simultaneously. Whoever manages to perform + the update is gaining the “logical lock” and will cause any + other concurrent threads or processes to fail the whole + transaction they may have prepared. + + Why is this different from loose-refs and packed-refs? The + client interaction and compensation behaviour with a reftable + needs to be substantially different: if with loose-refs or + packed-refs the client was retrying the operation, or just + waiting in case of JGit, with reftable the client should + abort the whole logical operation, destroy the current + snapshot of the reftable read in memory, and restart the + whole transaction from scratch. + + The issue here is that the reftable is simply configured + as a storage format for the refs, and the higher layers + are currently unprepared to manage the difference in + behaviour. This is currently causing trouble in the + JGit world, with [some initial issues reported][9] at the + API level, like the lack of “auto-refresh” and even more + problematic [stability problems reported on Gerrit Code Review][10] + when using reftable from concurrent threads. + + The $1M question about reftable is, *"Is it ready for mainstream + use in production?”* My answer is obviously a bold yes, but with + a very important caveat: whoever is using reftable should be aware + of what it is and how it should be used, and cannot be simply used + blindly, assuming that it works exactly as a loose-ref or + packed-refs. Reftable is ready, Git and Gerrit Code Review aren’t + ready yet to leverage it and I am sure they will soon be adjusted + to get the best use of it. + +- **What's your approach to load testing Git repositories \- which + tools work best, what key metrics should organizations monitor, + and what are some interesting findings from your research in + this area?** + + At GerritForge, we’ve been investing a lot of time and effort + in testing and improving the performance of Git repositories, + as demonstrated by the recent research paper published on the + use of AI to improve repository performance 100x times. + + Over the years, we have developed much experience, successfully + using the [Gatling framework][11] and extending it to support + the [Git protocol over HTTPS and SSH][12]. The use of Gatling + is great because it allows us to create very comprehensive + scenarios using a DSL (domain-specific language), which is + high-level and can replicate real-life user behaviour. + Replicating real-life traffic is paramount when testing a Git + repository performance because it allows creating future volumes + in terms of length of delta-chains, number and distribution of + refs, and number of packfiles / loose objects, that reflect the + project lifecycle. + + Another key aspect of generating a workload against a Git repository + is scaling up the clients and making their requests parametric enough + to avoid different requests locking each other. With Gatling, you + have the concept of “user sessions” where different logical users + can have dynamic variables used in the Git requests that can be used + for making the operation independent (e.g., branch name fragments, + or tags) and avoiding them from failing or ending up in a deadlock. + + As part of [our research work][3], I managed to recreate 10 years + of Git traffic generated by hundreds of users and execute it in + just 12 hours, thanks to Gatling and the Git-Gatling plugin. + + An interesting finding from the research and experiments is that + over 95% of the CPU time is spent in serving git-upload-pack + commands (not really a surprise though), of which 90% of it is + spent in [the “search-for-reuse” phase][13]. + + A second interesting finding is that the presence of a bitmap, + single or multi-pack, is not a guarantee of fast and effective + Git operations: the quality of the bitmap also matters a lot. + A bad bitmap could be so detrimental that removing it could + make the Git repository much faster, which may sound + counterintuitive. + +- **Based on your testing, what improvements do you think are most + needed in Git's core implementation?** + + I believe that the Git GC process needs a full revamp: the way + it is designed today isn’t suitable for large repositories. I + have presented a simple “role play” demo of what could happen + to a large mono-repo when you are trying to resolve a production + slowdown [running a Git GC][14]: in my imaginary scenario, a + large team of developers is pushing a lot of changes to get the + latest features through on their product’s mono-repo, not unlike + what happens when a large developer conference is approaching + and company ABC wants to launch a new version of their product DEF. + The operation raises the main metrics of the repository and makes + the “search-for-reuse” phase explode, causing the complete blockage + of the CI/CD pipeline. The Git SCM Manager knows what to do … and + runs a Git GC, causing even more damage than the original problem. + + I believe Git GC needs to be redesigned from the ground up. + Instead of being a simple sequence of operations, it needs to be + much more intelligent and adaptive to perform the right operation + at the right time. This could also be *“do nothing”* as the CPU + load is too high or the volatility of the repository is diverging. + +- **How do you see the relationship between Git and JGit evolving + in the future?** + + I believe Git and JGit have a wonderful symbiosis of ideas and + code: many popular features in JGit ended up innovating and + inspiring similar implementations in Git (e.g., bitmap, + ref-table, just to name a couple). Also, the other way around + is happening, with the implementation of MIDX in JGit recently + merged, thanks to the collaboration of GerritForge and Google. + + I like Git because it makes the language absolutely irrelevant + to the implementation: extending Git doesn’t mean you have to + write C code, and you can always start a brand new Git functionality + in a language XYZ in the future. Git is all about data and protocol + specification, not language, code, or operating system. + + I believe that should remain the case, and I am looking forward to + new languages implementing and innovating on Git, like the recent + [Gitoxide project][15], a pure-native implementation in Rust. + +- **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 may repeat myself, but I would redesign the Git GC command from + the ground up. + +- **If you could remove something from Git without worrying about + backwards compatibility, what would it be?** + + Well, I would get rid of SHA-1 altogether immediately, forget + about the legacy, and force everyone to use SHA-256 … but + change requires time. + +- **What is one of your most favourite features of Git?** + + I thank all the Git developers every single day for the + interactive rebase. I use it as my bread and butter every + morning. + +- **What is your favorite Git-related tool/library, outside of Git itself?** + + I am shamelessly admitting that I love Git command line and + I do not feel I need anything else as a tool or library to + interact with it. Many people find it confusing, and I agree + that some syntax could be misleading. Nevertheless, it is worth + using it, proposing changes, and improving how it works and is + perceived by the developers. + + A tool that requires other tools is a symptom of a problem. + +- **Could you brief a bit about one of your most memorable experience + with Git?** + + As you haven’t mentioned if the experience should be positive or + negative, I always mention the world-stage attention I got from + force-pushing hundreds of Git repositories on the Jenkins CI + organisation [over 12 years ago][16]. It was bad and good at + the same time, because despite the panic caused in hundreds of + Jenkins CI projects, it demonstrated that force pushing isn’t + a destructive operation, and all the BLOBs were easily recovered, + and the refs pointed again to the expected SHA1. + + Also, my unfortunate mistake highlighted the resilience of the + Git repository model, where there isn’t a “single source of truth” + and GitHub’s repository is just “one of the repositories peers” + around the globe. You can always recover from any type of damage + with Git, at least from what I’ve seen in my 15 years of + contributing and using it with real-life large-scale repositories + and customers. + +- **What is your advice for people who want to start using Git? + Where and how should they start?** + + This could have been a valid question 15 years ago, when Git was + still “quite recent” and not widely adopted yet. Nowadays, Git is + taught at school and universities and has become the de facto + standard of any Open-Source project around the globe. I was also + pleasantly surprised to learn that my 10-year-old son was + introduced to Git by his Computer Science teacher at primary school. + +- **There's a common conception that "Git is confusing". What are your + thoughts about the same?** + + I believe the most confusing part of Git is the working copy and the + staging area. That’s the reason why [JJ][7] gets rid of it altogether + and introduces the concept of “unnamed” commit. That’s genius from + Martin Von Zweigbergk, if you think about it: you just stage files + because you’d like to create a commit. So the stage is the + “next commit you’re about to write”, therefore the unnamed commit. + +- **If there’s one tip you would like to share with other users of Git, + what would it be?** + + Never use an IDE to manage your Git repository and commits: always + stay in control of what happens and learn something every day by using + the Git command line. + +- **If there’s one tip you would like to share with other Git developers, + what would it be?** + + I am not currently contributing to C Git, so my tip would be more for + JGit developers instead. I would love to see more end-to-end JGit + features and protocols testing using tools like [Gatling][11] + and the [Git-Gatling plugin][12]. + +- **Anything else that you'd like to share with us?** + + In the future, I’d like to see Git become just one standard feature + of each operating system: anyone should version a file on their + system, regardless of whether that file is source code, a document, + a video, or a drawing. Maybe it is not a random event that the father + of Linux is also the creator of the Git version control system, + isn’t it? + + Thanks for allowing me to share my experience with Git and my history + of being a JGit contributor and committer. + +[vonc]: https://git.github.io/rev_news/2023/12/31/edition-106/#community-spotlight-vonc +[torek]: https://git.github.io/rev_news/2025/02/28/edition-120/#community-spotlight-chris-torek +[clearcase]: https://en.wikipedia.org/wiki/IBM_DevOps_Code_ClearCase +[perforce]: https://www.perforce.com/ +[martinvonz]: https://github.com/martinvonz +[gerrit-3.12]: https://www.gerritcodereview.com/3.12.html +[1]: https://gerrit.googlesource.com/plugins/multi-site/+/refs/heads/master/DESIGN.md +[2]: https://review.gerrithub.io/c/eclipse-jgit/jgit/+/3930 +[3]: https://conf.researchr.org/home/icse-2025 +[4]: https://gerrit.googlesource.com/plugins/high-availability +[5]: https://github.blog/news-insights/company-news/oct21-post-incident-analysis/ +[6]: https://en.wikipedia.org/wiki/SourceForge +[7]: https://jj-vcs.github.io/jj/latest/ +[8]: https://github.com/git/git/blob/master/Documentation/RelNotes/2.45.0.adoc +[9]: https://github.com/eclipse-jgit/jgit/issues/102 +[10]: https://github.com/eclipse-jgit/jgit/issues/130 +[11]: https://gatling.io/ +[12]: https://docs.gatling.io/reference/script/third-parties/ +[13]: https://github.com/eclipse-jgit/jgit/blob/46d0d1b40b147e4282043a6c404947166c71be93/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/PackWriter.java#L1452 +[14]: https://youtu.be/xhxrGxvChU0?t=395 +[15]: https://github.com/GitoxideLabs/gitoxide +[16]: https://www.infoq.com/news/2013/11/use-the-force/ + ## Other News From 99683da70c90b6123ee50faadbc3b3970a887336 Mon Sep 17 00:00:00 2001 From: Luca Milanesio Date: Mon, 30 Jun 2025 13:54:10 +0100 Subject: [PATCH 211/336] Fix typo on Luca's name on edition-124.md Amend Luca Milanesio's name in the community spotlight and fix a small typo associated with it. --- rev_news/drafts/edition-124.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-124.md b/rev_news/drafts/edition-124.md index fa52f9d96..2d4cf7e28 100644 --- a/rev_news/drafts/edition-124.md +++ b/rev_news/drafts/edition-124.md @@ -29,9 +29,9 @@ This edition covers what happened during the months of May 2025 and June 2025. ### Support --> -## Community Spotlight: Luca Milanesi +## Community Spotlight: Luca Milanesio -_Luca Milanesio is long standing contributor to both JGit and Gerrit +_Luca Milanesio is a long standing contributor to both JGit and Gerrit Code Review, an open-source veteran who's been accelerating Git workflows for 30+ years—from founding GerritHub.io to pioneering AI-powered repository optimization research._ From 632c8b639f75a17407f6739522d270ff6387e8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 30 Jun 2025 17:32:15 +0200 Subject: [PATCH 212/336] rn-124: Add link to paper mentioned in interview --- rev_news/drafts/edition-124.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rev_news/drafts/edition-124.md b/rev_news/drafts/edition-124.md index 2d4cf7e28..de21249f2 100644 --- a/rev_news/drafts/edition-124.md +++ b/rev_news/drafts/edition-124.md @@ -462,6 +462,12 @@ __Light reading__ __Easy watching__ --> +__Scientific papers__ ++ Shane McIntosh, Luca Milanesio, Antonio Barone, Jacek Centkowski, Marcin Czech, Fabio Ponciroli: + _"Using Reinforcement Learning to Sustain the Performance of Version Control Repositories"_, + ICSE 2025: 47th International Conference on Software Engineering, + (preprint) + __Git tools and sites__ From bcdd79a89a90671726f5d3b66e7fb9573d8e2fa6 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 30 Jun 2025 18:21:11 +0200 Subject: [PATCH 213/336] rn-124: add stash and submodule article --- rev_news/drafts/edition-124.md | 57 ++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-124.md b/rev_news/drafts/edition-124.md index de21249f2..968fb340e 100644 --- a/rev_news/drafts/edition-124.md +++ b/rev_news/drafts/edition-124.md @@ -25,9 +25,62 @@ This edition covers what happened during the months of May 2025 and June 2025. ### Reviews --> - + +* [[BUG] git stash incorrectly showing submodule branch instead of superproject branch](https://lore.kernel.org/git/TO1PPF29324B4CE6D3518208073452C3C51CD97A@TO1PPF29324B4CE.CANPRD01.PROD.OUTLOOK.COM/) + + Stuart MacDonald sent a bug report to the mailing list. The report + described a workflow where people worked on a UI project that + included a hardware SDK as a submodule. Both the UI project (the + "superproject") and the SDK project (the submodule) had their own + branches. + + When using `git stash` on a bug fix branch on the superproject, + while the submodule was on a feature branch, it appeared that the + command `git stash list` output a message, like: + + `stash@{0}: On feature_sdk_foo: debugging` + + indicating the stash had been created on the submodule's branch + instead of the superproject's branch. The branch `feature_sdk_foo` + didn't even exist in the superproject. + + Stuart mentioned he thought this used to work correctly around 2021, + though he wasn't 100% certain. + + K Jayatheerth replied to Stuart confirming the bug happened on + different OSes, showing minimal steps to reproduce it, and saying it + was "one of the most interesting Git bugs" he had seen in a while. + + Jayatheerth came back later with + [a patch](https://lore.kernel.org/git/20250512164001.62065-1-jayatheerthkulkarni2005@gmail.com/) + that fixed the bug. It appeared that the branch name was obtained + via the `refs_resolve_ref_unsafe()` function, which returns a + pointer to a static buffer, but that static buffer was overwritten. + To fix this, the patch copied the branch name instead of pointing to + the static buffer. + + Stuart thanked Jayatheerth even though he couldn't rebuild Git with + the patch. + + Junio Hamano, the Git maintainer, replied to the patch with small + suggestions, while Eric Sunshine noted that the change should also + be accompanied by a new test. + + Jayatheerth replied to Eric and Junio saying he would fix the small + issues and add tests, which he later did in + [an updated patch](https://lore.kernel.org/git/20250608063537.233243-1-jayatheerthkulkarni2005@gmail.com/). + + René Scharfe reviewed the updated patch and suggested a number of + improvements to the code and the test. + + Jayatheerth then sent + [a v2 of his patch](https://lore.kernel.org/git/20250608144542.275836-1-jayatheerthkulkarni2005@gmail.com/) + which addressed René's comments. Junio reviewed it and suggested + further improvements. + + [The v3 patch from Jayatheerth](https://lore.kernel.org/git/20250611014204.24994-1-jayatheerthkulkarni2005@gmail.com/) + addressed Junio's comment and was merged. ## Community Spotlight: Luca Milanesio From 67463424a7cc45fb629ed55552ceccec3e9f587f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 30 Jun 2025 23:45:55 +0200 Subject: [PATCH 214/336] rn-124: Add links to various news, articles, and tools --- rev_news/drafts/edition-124.md | 116 ++++++++++++++++++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-124.md b/rev_news/drafts/edition-124.md index 968fb340e..e38bdb65d 100644 --- a/rev_news/drafts/edition-124.md +++ b/rev_news/drafts/edition-124.md @@ -506,10 +506,99 @@ were with [VonC in edition 106][vonc] and [Chris Torek in edition 120][torek]._ ## Other News __Various__ - ++ [[ANNOUNCE] Git v2.50.0](https://lore.kernel.org/git/xmqq1prj1umb.fsf@gitster.g/T/#u) + by Junio C Hamano on the Git mailing list. ++ [Highlights from Git 2.50](https://github.blog/open-source/git/highlights-from-git-2-50/) + by Taylor Blau on GitHub Blog.
+ Mentions + improvements for multiple cruft packs, including `git repack --combine-cruft-below-size` + (and improvements to it's `--max-cruft-size` option), + incremental multi-pack reachability bitmaps (highly experimental), + "ort" merge strategy replacing "recursive" strategy entirely, + various `git cat-file` improvements, `git maintenance` new tricks, and more. ++ [What’s new in Git 2.50.0?](https://about.gitlab.com/blog/what-s-new-in-git-2-50-0/) + by Justin Tobler on GitLab Blog.
+ Mentions + new [git-diff-pairs(1)](https://git-scm.com/docs/git-diff-pairs) command + which accepts "raw" formatted filepair info (from e.g. `git diff-tree`) + as input on stdin to determine exactly which patches to output, + batched reference updates with [git-update-ref(1)](https://git-scm.com/docs/git-update-ref) + and its new `--batch-updates` option + (which allows the updates to proceed even when one or more reference updates fails), + new `--filter` option for [git-cat-file(1)](https://git-scm.com/docs/git-cat-file), + improved performance when generating bundles with [git-bundle(1)](https://git-scm.com/docs/git-bundle) + (used by GitLab to generate repository backups + and also as part of the [bundle-URI](https://git-scm.com/docs/bundle-uri) mechanism), + and better bundle URI unbundling. __Light reading__ + [How to Install Gitea (with SQLite3 and HTTPS!) on a VPS](https://www.git-tower.com/blog/how-to-install-gitea) ++ [Reduce the load on GitLab Gitaly with bundle URI](https://about.gitlab.com/blog/reduce-the-load-on-gitlab-gitaly-with-bundle-uri/). + Discover what the bundle URI Git feature is, how it is integrated into Gitaly, + configuration best practices, and how GitLab users can benefit from it. + GitLab Blog post writen by Olivier Campeau. ++ [How we decreased GitLab repo backup times from 48 hours to 41 minutes](https://about.gitlab.com/blog/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes/) + by Karthik Nayak and Manuel Kraft on GitLab Blog. + Describes how GitLab team tracked a performance bottleneck in `git bundle create` + to a 15-year-old Git function and fixed it. ++ [Working with stacked branches in git (part 2)](https://andrewlock.net/working-with-stacked-branches-in-git-part-2/) + by Andrew Lock on his blog, \.NET Escapades, continues where + [Working with stacked branches](https://andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs/) left + (which was mentioned in [Git Rev News Edition #93](https://git.github.io/rev_news/2022/11/30/edition-93/)) ++ [Git: please stop squash merging!](https://lucasoshiro.github.io/posts-en/2024-04-08-please_dont_squash/) + and [Git: the danger of squash merging submodules](https://lucasoshiro.github.io/posts-en/2024-06-27-squash-submodule/) + by Lucas Seiki Oshiro on his GitHub Pages-powered personal blog. + + The first of those blog posts mentions + [Squash commits considered harmful](https://dev.to/wesen/squash-commits-considered-harmful-ob1) by Manuel Odendahl and + [Squash merges are evil](https://medium.com/bananatag-engineering-blog/squash-merges-are-evil-171f55139c51) by L. Holanda. + + See for example [Combining branches](https://programming.dev/pictrs/image/0fe7c7bd-b762-453f-bac7-ed2e34d44ba0.png) (PNG) + comic by Julia Evans (@b0rk) about differences between merge, rebase, and squash merge. ++ [Cleaning up gone branches](https://haacked.com/archive/2025/04/17/git-gone/) + by Phil Haack on his You've Been Haacked blog. + Describes how to delete all the branches that have been merged into the default branch, + even if the project uses Squash and Merge when merging PRs + (also known as squash merge). ++ [Part 7: Office Migration from Source Depot to Git, or how I learned to love DevEx](https://danielsada.tech/blog/carreer-part-7-how-office-moved-to-git-and-i-loved-devex/) + by Daniel Sada on his personal blog + (part of his [My career so far](https://danielsada.tech/series/my-career-so-far/) series). + + Nicely complements [Microsoft’s Performance Contributions to Git in 2017](https://devblogs.microsoft.com/devops/microsofts-performance-contributions-to-git-in-2017/) + by Derrick Stolee on Microsoft Dev Blogs, mentioned in + [Git Rev News Edition #40](https://git.github.io/rev_news/2018/06/20/edition-40/), + and other posts at . ++ [Git Branch Manager: a manager for git branches](https://daveschumaker.net/git-branch-manager-a-manager-for-git-branches/) + by Dave Schumaker on his blog, + describes how he created [Git Branch Manager](https://github.com/daveschumaker/gbm) + tool by "vibe coding" with Claude Code. The 'P.S.' part just kills it... ++ [no more gitmojis](https://kjelsrud.dev/blog/no-more-gitmojis/) + on Sids' blog; moving from [gitmojis](https://gitmoji.dev/) + to just using [conventional commits](https://conventionalcommits.org/). + + [Gitmoji](https://gitmoji.dev/) was first mentioned in [Git Rev News Edition #47](https://git.github.io/rev_news/2019/01/23/edition-47/), + though then under a [different URL](https://gitmoji.carloscuesta.me/) + (which now redirects to the current one). + + The similar [Emoji-Log](https://github.com/ahmadawais/Emoji-Log) commit log messages standard + was mentioned in [Git Rev News Edition #101](https://git.github.io/rev_news/2023/07/31/edition-101/). + + The [Conventional Commits](https://www.conventionalcommits.org/) specification + was first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/), + and in many editions since. ++ [`git diff --ignore-all-space` makes code review way easier](https://garrit.xyz/posts/2025-06-11-git-diff-ignore-all-space-makes-code-reviews-way-easier) + by Garrit Franke on Garrit's Notes blog; + a TIL (Today I've Learned) style post. ++ [Per-project git commit templates](https://tylercipriani.com/blog/2025/05/21/git-commits/) + by Tyler Cipriani on his blog. + Mentions in passing different commit guidelines used by various projects, like + [Conventional Commits](https://www.conventionalcommits.org/), + [Gitmoji](https://gitmoji.dev/), + [Problem/Solution format](https://zeromq.org/how-to-contribute/#write-good-commit-messages) used by ZeroMQ, and + [Acked-by:, Cc:, and Co-developed-by: trailers](https://docs.kernel.org/process/submitting-patches.html#when-to-use-acked-by-cc-and-co-developed-by) + used by Linux kernel. ++ [The history of change-packing tools at Microsoft (so far)](https://devblogs.microsoft.com/oldnewthing/20180122-00/) + by Raymond Chen on Microsoft Dev Blogs: The Old New Thing (2018).
+ Change-packing is a way to save whole changeset or commit to a single file, + to be able to save changes without committing them (like `git stash`), + or to get another developer’s opinion on code you’ve written (_buddy build_), etc. ++ [GIF: The Git Interchange Format](https://willhbr.net/2025/06/16/gif-the-git-interchange-format/) + by Will Richardson on his blog, + about how to cram a whole git repo (with history) into an animated GIF. + + + + + + + +## 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 0e0f2164ce96ffd80938bd74e0ae6f4b1809ef5e Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 13 Jul 2025 17:30:54 +0530 Subject: [PATCH 227/336] Hacking-Git: remove review club from the list of resources Ref: https://lore.kernel.org/git/CAFySSZBgG3QyqEXSs3t4LzGYw1VJrHPx4gomT0zSsWcvQLezAQ@mail.gmail.com/ --- Hacking-Git.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index c8e9fef2b..c43106897 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -88,10 +88,6 @@ suggest improvements. Thanks! * [Git Merge conference](https://git-merge.com/). -* [Review Club announces and discussions on the list](https://lore.kernel.org/git/?q=s%3A%22Review+Club%22). - -* [Review Club meeting notes](https://docs.google.com/document/d/14L8BAumGTpsXpjDY8VzZ4rRtpAjuGrFSRqn3stCuS_w) Google doc. - * [Discussions about Contributor(s) Summits on the list](https://lore.kernel.org/git/?q=s%3AContributor*+Summit) ## Branching workflow From 74d5ef9c5cb95e5daf69103e5d43208df864cf2a Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Wed, 23 Jul 2025 13:08:52 +0100 Subject: [PATCH 228/336] rn-125: Add new Tower releases --- rev_news/drafts/edition-125.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index 8a728308e..3a88672b8 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -48,7 +48,8 @@ __Git tools and sites__ ## Releases - +- Tower for Mac [13.1](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) +- Tower for Windows [9.1](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) - [YT video](https://youtu.be/4pNRUz0bNIU) ## Credits From 976f50c8c45246f2d4fbf881f634c26c88a9c9a6 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jul 2025 15:42:26 +0200 Subject: [PATCH 229/336] add a link to deepwiki.com/git/git --- Hacking-Git.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index c43106897..477c3252a 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -32,6 +32,8 @@ suggest improvements. Thanks! * [Fabien Sanglar's Git Source Code Review](https://fabiensanglard.net/git_code_review/architecture.php) +* [DeepWiki git/git, an AI generated introduction level overview](https://deepwiki.com/git/git) + * [Boost Your Programming Skills by Reading Git's Code](https://www.freecodecamp.org/news/boost-programming-skills-read-git-code/) ## Getting started hacking and contributing From 2cae9154fb8fd2f93b33784dc72e5542c54f088e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jul 2025 20:02:59 +0200 Subject: [PATCH 230/336] rn-125: add git-phoenix tool --- rev_news/drafts/edition-125.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index 3a88672b8..cff129335 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -46,6 +46,7 @@ __Easy watching__ __Git tools and sites__ +- [git-phoenix](https://github.com/yaitskov/git-phoenix) does repository recovery. ## Releases - Tower for Mac [13.1](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) From 14599936e099a3d8787ef11a392f203adbd2f791 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 26 Jul 2025 10:32:23 +0200 Subject: [PATCH 231/336] Hacking-Git: clarify acceptable content --- Hacking-Git.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index 477c3252a..7dd16d665 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -3,12 +3,15 @@ layout: default title: Hacking Git --- -The goal of this document is not to be a tutorial, but rather to -point to interesting material that has already been written. - -The goal is also not to list all the articles about Git or its -internals. There are a lot of good resources, including free -[books](http://git-scm.com/book/en/v2/), about that elsewhere. +The goal of this document is not to be a tutorial, but rather to point +to interesting material that has already been written. + +The goal is also not to list all the articles, tools or resources +about Git or its internals. There are a lot of good resources, +including [free books](http://git-scm.com/book/en/v2/), and the +[archive of our newsletter](https://git.github.io/rev_news/archive/), +about that elsewhere. So on this page we focus on what is the most +interesting for developers starting to work on Git. Contributions are welcome though! Please contact us on the Git Mailing list (at [git@vger.kernel.org](mailto:git@vger.kernel.org)) or open an From d32fb54069e32f0cbf1b09bb053351ad11633075 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 30 Jul 2025 11:48:36 +0200 Subject: [PATCH 232/336] rn-125: add Git Mini Summit mini article --- rev_news/drafts/edition-125.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index cff129335..4423ab731 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -17,9 +17,22 @@ This edition covers what happened during the months of June 2025 and July 2025. ## Discussions - + +* [[ANNOUNCE] Git Mini Summit at Open Source Summit Europe, Amsterdam, August 28th](https://lore.kernel.org/git/aGwHt9HCd86hVuKh@pks.im/) + + Patrick Steinhardt announced a Git Mini Summit co-located with the + [Open Source Summit Europe](https://events.linuxfoundation.org/open-source-summit-europe/) + in Amsterdam on August 28th 2025. + + There will be lightning talks and some time for people to + connect. For the lightning talks proposals should be sent to + Patrick, while the possibility to have remote talks is still + investigated. + + [Registration is open](https://events.linuxfoundation.org/open-source-summit-europe/features/co-located-events/#git-mini-summit-2025) + for only the Git Mini Summit and for the Open Source Summit Europe including the Git Mini Summit. + +* [[PATCH v4 0/3] send-email: add oauth2 support and fix outlook breaking threads](https://lore.kernel.org/git/PN3PR01MB9597A83D537E3AE96144227EB8BA2@PN3PR01MB9597.INDPRD01.PROD.OUTLOOK.COM/) + + Last April, Aditya Garg sent a patch series containing three main + changes to `git send-email`. He mentioned that he was sending the + email series using the very patches he is proposing, via Outlook. + + The first patch, which was a rebased version of + [an earlier patch by Julian Swagemakers](https://lore.kernel.org/git/20250125190131.48717-1-julian@swagemakers.org/) + added support for OAuth2 authentication, which started to be + required by Microsoft. Julian's patch unfortunately had been waiting + for review for over a year before Aditya picked it up. + + The second patch fixed thread breaking caused by Outlook's + proprietary Message-ID handling. + + The final patch added a new option for generating passwords, such as + OAuth2 tokens, via an external script. + + Junio Hamano, the Git maintainer, reviewed the three patches saying + he liked the commit messages, documentation and code comments even + though he suggested a few small style improvements to the code + style, and a number of grammar and formatting changes to the + documentation. + + He also asked for reviews from others as he said he was not familiar + with the `Authen::SASL` library. + + Aditya replied to Junio's review acknowledging the need for more + reviews and saying that OAuth2 was a significant and more secure + technology. He then took the initiative to Cc Greg Kroah-Hartman, + who wrote a precursor of `git send-email` for the Linux kernel. + + M Hickford also replied to Aditya expressing enthusiasm for the work + but wondering why the v4 version of the patch series was sent in a + new email thread rather than as a reply to the previous version. + + brian m. carlson commented on the second patch saying that replacing + message IDs like Outlook does is technically allowed by + standards. He raised concerns about hardcoding only two Outlook + server hostnames, and suggested adding configuration options for + Message-ID generation modes. + + Julian Swagemakers then pointed out that the goal of the third patch + could already be achieved using Git's existing custom credential + helper mechanism. Aditya confirmed this worked and said he was + unaware of this feature, which led to the decision to drop the third + patch. Recognizing that the existing feature was poorly + discoverable, the discussion led to improvements in Git's + documentation, adding clearer examples of using credential helpers + for OAuth2 tokens. + + Erik Huelsmann, the maintainer of the `Authen::SASL` Perl module, + joined the conversation after Aditya emailed him directly + referencing a GitHub issue about the lack of OAuth2 support in + `Authen::SASL`. In that issue Erik had + [commented that he would be happy to support XOAUTH2](https://github.com/gbarr/perl-authen-sasl/issues/18#issuecomment-2453040190), + but needed a patch and a way to test it. + + Aditya and Julian then worked together, with guidance from Erik, to + add the necessary XOAUTH2 and OAUTHBEARER support directly into + `Authen::SASL`. Shortly after, a new version of the `Authen::SASL` + module was officially released with this new functionality. This + successful collaboration meant the first patch in the series, which + was a workaround for the missing library support, was no longer + needed and was subsequently dropped. Instead the new version of + `Authen::SASL` started to benefit all Perl users. + + Greg Kroah-Hartman echoed what brian had suggested about using a + configurable solution in the second patch. Greg noted that the + initial approach would not cover company-hosted Outlook servers. + + That suggestion was then refined by Junio Hamano, who proposed a + concrete implementation for the new option by providing an example + patch. The final `--[no-]outlook-id-fix` option auto-detects known + Outlook servers but allows manual override for other deployments. + + After several iterations on its name and behavior, Aditya submitted + a final, simplified patch series (v6). It now contained only the + single, refined patch to fix Outlook thread breaking, with the other + two patches having been made obsolete by the `Authen::SASL` library + update and the use of existing Git features. + + Aditya's patch was merged and released as part of Git v2.50.0. - +## Developer Spotlight:Usman Akinyemi + +_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 Outreachy 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’m Usman Akinyemi, a final-year CS and AI student, and an open-source + contributor passionate about Linux, distributed systems, and developer + tools. I’ve contributed to core projects like Git, systemd, LLVM, and + LibreOffice. During [my Outreachy internship](https://uniqueusman.hashnode.dev/my-outreachy-internship-experience-at-git), + I improved Git’s v2 protocol by adding OS-level metadata for better + diagnostics and security. + + Currently, I’m a [Google Summer of Code contributor](https://summerofcode.withgoogle.com/programs/2025/projects/wBCitF8F) + building a containerized pipeline for medical imaging using Kaapana, + Kubernetes and Airflow. I am also currently working on creating a + new subtype for RISC-V assembly instructions through the + Linux Foundation’s LFX program. + + Outside code, I mentor new contributors, volunteer with DesignIT and + LEAD and CODE to teach digital skills, and organize a tech webinar for + Nigerian students. I’ll be [speaking at Git Merge 2025](https://git-merge.com/#usman-akinyemi), + sharing insights from my open-source journey. I believe in the power of + community, collaboration, and curiosity to build a career that crosses + borders. + +* **How did you initially become interested in contributing to Git, + and what motivated you to choose it as your Outreachy project?** + + Though I have been contributing to other projects before applying for + Outreachy (Dec 2024), I was just a user of the Git project. When it + comes to the Outreachy contribution period when I had to pick a + project, I picked both Git and LibreOffice. I picked Git as it is a + project I use every time, also the thought of contributing to a + project used by almost all the developers in the whole world was + definitely a dream coming true. To also maximize my getting selected + for Outreachy, I picked Git because it is written in C programming + which many other participants are always scared to pick (going for the + hard thing). The story did not end there as I got selected for both + LibreOffice and Git and I had to choose one as my Outreachy projects. + It was a hard decision but I picked it mainly because the Git + community is a community where it is so easy to communicate with other + team members, it is a community where I clearly know who is who and + what they do in the community. Also Git is more well recognised. + +* **How do you feel your contribution has impacted the Git community + or the broader open source ecosystem?** + + [My contribution](https://lore.kernel.org/git/20250215155130.1756934-1-usmanakinyemi202@gmail.com/) + makes a fundamental improvement to the Git v2 protocol by enabling + Git clients to share their operating system information via the user + agent string. This helps platforms like GitHub, GitLab, and others + gain visibility into which OS environments are interacting + with their servers. It significantly improves debugging, security + auditing, and telemetry, helping maintainers understand usage patterns + and tailor support or upgrade strategies accordingly. Since this + change is part of the core Git client, it means it is used by all Git + users. I’m proud to have contributed something with such + wide-reaching, foundational impact. + +* **Is there any aspect of Git that you now see differently after + having contributed to it?** + + Before contributing to Git, I saw it as a complex tool that "just + works". Although I knew Git was different from GitHub, I struggled to + clearly differentiate between the two. But after contributing, I could + clearly differentiate between the two and I now see Git as a carefully + designed software project with a strong emphasis on performance, + cross-platform compatibility, and community-driven development. + + I’ve come to appreciate the level of thought and care that goes into + every change, from writing clean patches and commit messages to + engaging in technical discussions and defending your design decisions. + + Contributing to Git isn’t also about hierarchical review; instead, + it’s a collaborative process where every contributor is expected to + take full ownership of their patches, understand the problem they are + trying to fix, the solution and explain their rationale clearly by + writing clean patches, commit messages and engaging in technical + discussions and defending your design decisions. In fact, there have + been moments when some of my contributions led to insights even long + time contributors hadn’t considered, including Junio Hamano. That + boosted my confidence not just in contributing to Git, but to other + software projects as well i.e I can get my patches accepted anywhere, + I just need to convince others that it actually solves a problem. + +* **How do you balance your contributions with other responsibilities + like work or school?** + + Seriously, it has not been easy, most of my contributions to all + open source projects have always been during college. But, I have sort + of made contributions to open source as one important aspect of my + life and also as a way to learn new technologies and also practice + whatever new skills I learnt. Contributing to projects millions of + people use is also definitely rewarding and satisfying. + +* **Can you share how Outreachy helped enhance your technical and + non-technical skills (like communication, project management, etc.)?** + + Technically, I have been able to improve my C programming and bash + scripting skills. Also reading and understanding very large codebases + like Git. Of course now, I can call myself an expert in using Git as a + tool itself. + + To contribute to Git, you must be able to communicate well as all the + Git workflows happen remotely and over mailing lists. Most of the time + in the Git community, it is not about the correctness of your code, it + is about how well you can communicate your rationale to the community + before your patches can be accepted. So, over time, as a Git + contributor, my communication skills in a technical environment have + really improved. + + I have also learnt to write clean code, organize my changes into well + formatted patches and write clear commit messages. + +* **What was your biggest takeaway or learning from Outreachy that + you now apply regularly in your work?** + + I’d say my biggest takeaway from Outreachy is learning how to write + clear, structured commit messages. Git commits, like those in the + Linux kernel, follow a thoughtful format: describe the current state, + the problem, and the fix. From reading most of the commit messages in + Git, you would have understood and been to visualize what the changes + will look like. It also makes it easy to track the changes to other + prerequisite commits. I have been using the Git commit messages format + in other projects and I really love it. + +* **What was the biggest challenge you faced during your contributions + to Git, and how did you overcome it?** + + I think the challenge which I initially faced is sending patches to + Git, not really a big challenge though as I was able to make my first + patch in a few days after joining the community. And the reason is + that Git does not use GitHub or GitLab, something someone would have + thought they will be using. Git uses a mailing list just like the + Linux kernel. While writing this, I remember that I had a challenge + retrieving patches from the mailing list as my project depends on some + patches that were sent by my mentor previously. I had to use `git am`, + something I never used before. Help from my mentor really helped + and reading through the the "[Hacking Git](https://git.github.io/Hacking-Git/)" + page. + +* **Have you thought about mentoring new GSoC / Outreachy students?** + + Yeah, I am planning to put in as a mentor for the coming Outreachy + period and hopefully for GSoC also. I will be starting as a co-mentor + though. + +* **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?** + + Smile, I will definitely say the Rustication of some parts of Git + which has been going on currently, I think one that has already been + integrated to Git is [libgit-rs](https://lore.kernel.org/git/cover.1738187176.git.steadmon@google.com/). + Rust seems to be a language that focuses more on safety/security + and safety/security in Git is very important. I am also a Rustacean + so I should be able to help hopefully if that happens. + +* **If you could remove something from Git without worrying about + backwards compatibility, what would it be?** + + I really do not have anything in mind for now. + +* **What upcoming features or changes in Git are you particularly + excited about?** + + I think it is one of the [GSoC projects by Lucas](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl). + I have been passively following the project. It is about introducing + a new Git sub-command (currently intended to be called `git repo-info`) + that will centralize data currently retrieved by `git rev-parse` in a + JSON format. + +* **What is your favorite Git-related tool/library, outside of Git + itself?** + + I think is GitHub and GitLab, if I have to choose one, I will say GitHub. + +* **What is your toolbox for interacting with the mailing list and for + development of Git?** + + I started with [GitGitGadget](https://gitgitgadget.github.io/) initially + just to get my patches to the mailing list faster but, along the line + I switched to `git send-email` and really, it is more flexible and easy + to use than I thought of it. For my machine, I basically use Arch Linux + and Neovim for my text editor. + +* **How do you envision your own involvement with Git or other open + source projects in the future?** + + As I said earlier, open source has really been part of my life and it + has really helped me a lot in improving my skills, meeting new people + and even making some few bucks through internships. After my + internship at Outreachy, I did send patches to the Git community and I + planned to keep doing that. After Outreachy, I have contributed to a + few other projects like RISCV and OSIPI (through GSoC). I currently + mentor people who want to start their open source journey and I plan + to do more of it. I planned to keep contributing to open source + projects and hopefully get a job in open source. + +* **What is your advice for people who want to start Git development? + Where and how should they start?** + + I have been in many open source projects and see how their workflows + are, I will definitely say Git is one of the easiest and most + interesting projects to contribute to. The community members are + really supportive. Seriously, it is one of the best open source + communities I have been to. The best place to start is going through + the "[Hacking Git](https://git.github.io/Hacking-Git/)" page. It has + all the information on how to start contributing and you can make + your first contribution to Git. You should generally start with a + microproject which aims to introduce you to the Git contribution + workflow. Everything can be found above. Making your first contribution + to Git is actually very much easier than you might have thought. + Also, do not be scared to ask for help, Git developers are always ready to render help. + +* **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?** + + Definitely, Outreachy and GSoC are very much interesting mentoring + programs to start your open source journey. They both really make it + easy to start contributing to open source. You get assigned to mentors + who are experts in open source and the organization. It is a way to get + skills you will never be able to get in your classroom and skills + needed to thrive and excel in the software engineering world. Apart + from skills, it is a way to have proof of work before graduation and + also gain global recognition. As I have said, Git is a well known and + recognized software project in the whole world, contributing to it is + an achievement on its own. + + _Shout session_ + + I would like to shout out to all Git contributors, you are doing a + great job! I would also like to shout out to my Outreachy mentor + Christian Couder, he was really supportive during my Outreachy + program! Thanks to the Git Rev teams also! + ## Other News From f7a1a4bf5d64af38adc167b2c5e7bd7cac1e04bd Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Fri, 1 Aug 2025 23:58:45 +0200 Subject: [PATCH 247/336] rn-125: provide a few tiny fixes and rephrasings --- rev_news/drafts/edition-125.md | 46 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index f24cd88e7..ed2ace0fa 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -22,10 +22,10 @@ This edition covers what happened during the months of June and July 2025. * 20 years ago: [Meet the new maintainer..](https://lore.kernel.org/git/Pine.LNX.4.58.0507262004320.3227@g5.osdl.org/) - On July 26 Jul 2005, so 20 years ago, Linus Torvalds announced on + On July 26 2005, so 20 years ago, Linus Torvalds announced on the mailing list that Junio Hamano accepted the maintainership of the Git project and that Junio "was the obvious choice". Linus said - he wasn't dropping Git but he just prefered working on it as a + he wasn't dropping Git but he just preferred working on it as a contributor. Junio replied with an [A note from the new GIT maintainer](https://lore.kernel.org/git/7vmzo8ss2l.fsf@assigned-by-dhcp.cox.net/) @@ -48,7 +48,7 @@ This edition covers what happened during the months of June and July 2025. investigated. [Registration is open](https://events.linuxfoundation.org/open-source-summit-europe/features/co-located-events/#git-mini-summit-2025) - for only the Git Mini Summit and for the Open Source Summit Europe including the Git Mini Summit. + for both the Git Mini Summit only and for the Open Source Summit Europe including the Git Mini Summit. ### Reviews @@ -57,11 +57,11 @@ This edition covers what happened during the months of June and July 2025. Last April, Aditya Garg sent a patch series containing three main changes to `git send-email`. He mentioned that he was sending the - email series using the very patches he is proposing, via Outlook. + email series using the very patches he was proposing, via Outlook. The first patch, which was a rebased version of [an earlier patch by Julian Swagemakers](https://lore.kernel.org/git/20250125190131.48717-1-julian@swagemakers.org/) - added support for OAuth2 authentication, which started to be + adding support for OAuth2 authentication, which started to be required by Microsoft. Julian's patch unfortunately had been waiting for review for over a year before Aditya picked it up. @@ -74,7 +74,7 @@ This edition covers what happened during the months of June and July 2025. Junio Hamano, the Git maintainer, reviewed the three patches saying he liked the commit messages, documentation and code comments even though he suggested a few small style improvements to the code - style, and a number of grammar and formatting changes to the + style plus a number of grammar and formatting changes to the documentation. He also asked for reviews from others as he said he was not familiar @@ -117,7 +117,7 @@ This edition covers what happened during the months of June and July 2025. module was officially released with this new functionality. This successful collaboration meant the first patch in the series, which was a workaround for the missing library support, was no longer - needed and was subsequently dropped. Instead the new version of + needed and was subsequently dropped. Instead, the new version of `Authen::SASL` started to benefit all Perl users. Greg Kroah-Hartman echoed what brian had suggested about using a @@ -145,7 +145,7 @@ This edition covers what happened during the months of June and July 2025. ### Support --> -## Developer Spotlight:Usman Akinyemi +## Developer Spotlight: Usman Akinyemi _Editor’s note: This edition features a retrospective interview with a contributor who contributed to Git through a mentoring program. We hope @@ -185,13 +185,13 @@ welcome your thoughts and feedback!_ project I use every time, also the thought of contributing to a project used by almost all the developers in the whole world was definitely a dream coming true. To also maximize my getting selected - for Outreachy, I picked Git because it is written in C programming + for Outreachy, I picked Git because it is written in C, which many other participants are always scared to pick (going for the hard thing). The story did not end there as I got selected for both LibreOffice and Git and I had to choose one as my Outreachy projects. It was a hard decision but I picked it mainly because the Git community is a community where it is so easy to communicate with other - team members, it is a community where I clearly know who is who and + team members, and it is a community where I clearly know who is who and what they do in the community. Also Git is more well recognised. * **How do you feel your contribution has impacted the Git community @@ -250,19 +250,19 @@ welcome your thoughts and feedback!_ Technically, I have been able to improve my C programming and bash scripting skills. Also reading and understanding very large codebases - like Git. Of course now, I can call myself an expert in using Git as a + like Git. Of course now I can call myself an expert in using Git as a tool itself. - To contribute to Git, you must be able to communicate well as all the + To contribute to Git, you must be able to communicate well, as all the Git workflows happen remotely and over mailing lists. Most of the time - in the Git community, it is not about the correctness of your code, it + in the Git community it is not about the correctness of your code -- it is about how well you can communicate your rationale to the community before your patches can be accepted. So, over time, as a Git contributor, my communication skills in a technical environment have really improved. I have also learnt to write clean code, organize my changes into well - formatted patches and write clear commit messages. + formatted patches, and write clear commit messages. * **What was your biggest takeaway or learning from Outreachy that you now apply regularly in your work?** @@ -285,10 +285,10 @@ welcome your thoughts and feedback!_ that Git does not use GitHub or GitLab, something someone would have thought they will be using. Git uses a mailing list just like the Linux kernel. While writing this, I remember that I had a challenge - retrieving patches from the mailing list as my project depends on some + retrieving patches from the mailing list as my project depended on some patches that were sent by my mentor previously. I had to use `git am`, - something I never used before. Help from my mentor really helped - and reading through the the "[Hacking Git](https://git.github.io/Hacking-Git/)" + something I never used before. Help from my mentor really helped, + as well as reading through the "[Hacking Git](https://git.github.io/Hacking-Git/)" page. * **Have you thought about mentoring new GSoC / Outreachy students?** @@ -303,8 +303,8 @@ welcome your thoughts and feedback!_ Smile, I will definitely say the Rustication of some parts of Git which has been going on currently, I think one that has already been integrated to Git is [libgit-rs](https://lore.kernel.org/git/cover.1738187176.git.steadmon@google.com/). - Rust seems to be a language that focuses more on safety/security - and safety/security in Git is very important. I am also a Rustacean + Rust seems to be a language that focuses more on safety/security, + and safety/security is very important in Git. I am also a Rustacean so I should be able to help hopefully if that happens. * **If you could remove something from Git without worrying about @@ -324,7 +324,7 @@ welcome your thoughts and feedback!_ * **What is your favorite Git-related tool/library, outside of Git itself?** - I think is GitHub and GitLab, if I have to choose one, I will say GitHub. + I think it's both GitHub and GitLab -- if I have to choose one, I will say GitHub. * **What is your toolbox for interacting with the mailing list and for development of Git?** @@ -333,7 +333,7 @@ welcome your thoughts and feedback!_ just to get my patches to the mailing list faster but, along the line I switched to `git send-email` and really, it is more flexible and easy to use than I thought of it. For my machine, I basically use Arch Linux - and Neovim for my text editor. + and Neovim as my text editor. * **How do you envision your own involvement with Git or other open source projects in the future?** @@ -343,8 +343,8 @@ welcome your thoughts and feedback!_ and even making some few bucks through internships. After my internship at Outreachy, I did send patches to the Git community and I planned to keep doing that. After Outreachy, I have contributed to a - few other projects like RISCV and OSIPI (through GSoC). I currently - mentor people who want to start their open source journey and I plan + few other projects like RISC-V and OSIPI (through GSoC). I currently + mentor people who want to start their open source journey, and I plan to do more of it. I planned to keep contributing to open source projects and hopefully get a job in open source. From 252d0276abe326542f036f559fe8d74228167f56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 2 Aug 2025 02:21:03 +0200 Subject: [PATCH 248/336] rn-125: Add links to various news, articles, sites, and tools --- rev_news/drafts/edition-125.md | 191 +++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index f24cd88e7..d6111b479 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -391,16 +391,207 @@ welcome your thoughts and feedback!_ __Various__ ++ [[LWN.net] A set of Git security-fix releases](https://lwn.net/Articles/1029182/) + by Jonathan Corbet on LWN\.net, and
+ [Multiple vulnerabilities fixed in Git](https://www.openwall.com/lists/oss-security/2025/07/08/4) + by Taylor Blau on oss-security mailing list ++ [[ANNOUNCE] Git v2.50.1 and friends](https://public-inbox.org/git/xmqqzfdevcov.fsf@gitster.g/t/#u) + by Junio C Hamano on the git mailing list. ++ [Launchpad](https://launchpad.net/) is [phasing out Bazaar code hosting](https://discourse.ubuntu.com/t/phasing-out-bazaar-code-hosting/62189). + This post provides link to the [Migrate a Repository From Bazaar to Git](https://jugmac00.github.io/blog/migrate-a-repository-from-bazaar-to-git/) article. + __Light reading__ ++ [Artisanal Handcrafted Git Repositories](https://drew.silcock.dev/blog/artisanal-git/) + by Drew Silcock on drew's dev blog. + This article talks about how to handmake your Git repositories without using git commands. + You might also learn a bit more about how Git works under the hood during the process. ++ [How to use git worktree effectively with Python projects](https://www.andreagrandi.it/posts/how-to-use-git-worktree-effectively-with-python-projects/) + (with the help of a simple [git-add-worktree.sh](https://gist.github.com/andreagrandi/542b438bf0017d93aff2b640037e3ce1) Bash script) + by Andrea Grandi on his blog. ++ [Managing Multiple Claude Code Sessions Without Worktrees](https://blog.gitbutler.com/parallel-claude-code/) + by Scott Chacon on Butler's Log (GitButler Blog). + With [Claude Code](https://www.anthropic.com/claude-code)'s new [lifecycle hooks](https://docs.anthropic.com/en/docs/claude-code/hooks), + [GitButler](https://gitbutler.com/) Git client auto-sorts simultaneous AI coding into separate branches, + without manual [use of `git worktree`](https://www.anthropic.com/engineering/claude-code-best-practices#c-use-git-worktrees). + With this feature you can write three features, and get three clean branches. ++ [wtp: A Better Git Worktree CLI Tool](https://dev.to/satococoa/wtp-a-better-git-worktree-cli-tool-4i8l) + by Satoshi Ebisawa on DEV\.to. + The [wtp](https://github.com/satococoa/wtp) tool was created to make + working with multiple tasks in parallel using [Claude Code](https://www.anthropic.com/claude-code) + easier than with `git worktree`. ++ [Automated repo maintenance via GitHub Copilot coding agent](https://blog.pamelafox.org/2025/07/automated-repo-maintenance-with-github.html) + by Pamela Fox on her Blogger-based blog. ++ [Git Worktrees: Git Done Right](https://www.nickyt.co/blog/git-worktrees-git-done-right-2p7f/) + by Nick Taylor on Just Some Dev blog (and also [on DEV\.to](https://dev.to/nickytonline/git-worktrees-git-done-right-2p7f)). ++ [I Lost My Git Stash, So I Built a Tool (VS Code Extension) to Share It](https://dev.to/karandeepsingh7070/i-lost-my-git-stash-so-i-built-a-tool-to-share-it-27bn) + by Karandeep Singh on DEV\.to. ++ [Git: share a full repository as a file with `git fast-export`](https://adamj.eu/tech/2025/07/15/git-share-fast-export/) + by Adam Johnson on his blog + (for some reason the post does not mention the alternative of using + [`git bundle`](https://git-scm.com/docs/git-bundle)). + + Adam Johnson is the author of "[Boost Your Git DX](https://adamchainz.gumroad.com/l/bygdx)" book, + first mentioned in [Git Rev News Edition #104](https://git.github.io/rev_news/2023/10/31/edition-104/), + then its updates in [#110](https://git.github.io/rev_news/2024/04/30/edition-110/) + and [#119](https://git.github.io/rev_news/2025/01/31/edition-119/). ++ [Conventional Commits makes me sad](https://srazkvt.codeberg.page/posts/2025-07-06-conventional-commits-makes-me-sad.html) + by Sarah Mathey on her Codeberg Pages powered Sarah's Website blog.
+ The [Conventional Commits](https://www.conventionalcommits.org/) specification + was first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). ++ [Git experts should try Jujutsu](https://pksunkara.com/thoughts/git-experts-should-try-jujutsu/) + by Pavan Sunkara on his personal blog.
+ [Jujutsu (`jj`)](https://github.com/martinvonz/jj) is a version control system + first mentioned in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). ++ [Jujutsu For Busy Devs](https://maddie.wtf/posts/2025-07-21-jujutsu-for-busy-devs) and + by Madeleine Mortensen on her personal blog. ++ [Using Radicle CI for Development](https://radicle.xyz/2025/07/23/using-radicle-ci-for-development) + by Lars Wirzenius on Radicle Blog.
+ [Radicle](https://radicle.xyz/) is the distributed git hosting system, + first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). ++ [Cutting GitHub out of the loop](https://www.circusscientist.com/2025/07/23/cutting-github-out-of-the-loop/) + (by deploying to VPS with Git and SSH). + Written by tomjuggler on The Circus Scientist Site. ++ [Super Easy* 2-Stage Git Deployment](https://ratfactor.com/cards/super-easy-2-stage-git-deployment) + by Dave Gauer on Dave's Virtual Box of Cards. ++ [Guest Post: How I Scanned all of GitHub’s “Oops Commits” for Leaked Secrets](https://trufflesecurity.com/blog/guest-post-how-i-scanned-all-of-github-s-oops-commits-for-leaked-secrets) + by Sharon Brizinov on The Dig, the Truffle Security blog. ++ [Top 17 Essential Git Tools for Enhanced Developer Productivity](https://dev.to/vaib/top-17-essential-git-tools-for-enhanced-developer-productivity-7f3) + by vAlber on DEV\.to. + + __Git tools and sites__ ++ [DiffX - Next-Generation Extensible Diff Format](https://diffx.org/): + describes problem with Unified Diff format, and proposes as a solution + a new file format specification for Extensible Diffs, + fully backwards-compatible with existing tools, + while also being future-proof and remaining human-readable. - [git-phoenix](https://github.com/yaitskov/git-phoenix) does repository recovery. ++ [wtp (Worktree Plus)](https://github.com/satococoa/wtp) is a Git worktree management tool + that extends git's worktree functionality with + automated setup, branch tracking, and project-specific hooks. + Written in Go, under the MIT license. ++ [GitNifty](https://gitnifty.js.org/index.html) is a robust and promise-based Git utility for Node.js, + offering developers smart, automation-ready commands for common Git operations. + Created for building CLI tools, automation scripts, or custom Git workflows. + Written in TypeScript, and released under the Apache License. ++ [difit](https://github.com/yoshiko-pg/difit) is a CLI tool + that lets you view and review local git diffs with a GitHub-style viewer + (in a browser). Written in TypeScript, under MIT license.
+ See [difit: Preview GitHub-like diffs locally before you push](https://dev.to/unhappychoice/difit-preview-github-like-diffs-locally-before-you-push-37gc) + by Yuji Ueki on DEV\.to. ++ [Flint](https://flintable.com/docs/flint/) is a Git-integrated code formatter + that lets each developer work in their preferred style locally, + while maintaining a consistent style remotely. + By automatically applying “local” and “remote” formatting passes during pull and push operations, + Flint prevents formatting noise in commits and code reviews. + It is currently in _alpha_ and is available exclusively on npm. + Written in Bash, under MIT license. ++ [DotProj](https://dotproj.ac-jr.com/) is a developer-centric CLI tool + designed to manage project-specific configuration files with Git versioning. + It helps keep your development environment settings organized, versioned, and synchronized + across multiple machines and projects. + DotProj uses Git commands (commit, push, pull, clone) making it intuitive for developers. + Written as Bash shell script, under MIT license. ++ [git-remote-sqlite](https://github.com/chrislloyd/git-remote-sqlite) + is a [Git protocol helper](https://git-scm.com/docs/gitremote-helpers) + that helps you store a Git repository in a SQLite database. + Written in Zig, under MIT license. ++ [Backlog.md](https://backlog.md/) is a tool that turns any folder with a Git repo + into a self‑contained project board, powered by plain Markdown files + and a zero‑config CLI. Written in TypeScript, under MIT license. AI ready. ++ [git-resolve.sh](https://elixir.bootlin.com/linux/v6.16-rc3/source/scripts/git-resolve.sh) + is a Bash script that resolves a short git commit ID to its full SHA-1 hash, + which is particularly useful for fixing references in commit messages. + Under GPL-2.0 license. ++ [GitHub Trends](https://www.githubtrends.io/) is a service that + uses GitHub API to bring you insightful metrics on your contributions, + broken by repository and language. ++ [DeepWiki](https://deepwiki.com/): AI-generated docs for any repo. + This service turns any public GitHub repo into up-to-date documentation you can talk to + (see for example [DeepWiki: git/git](https://deepwiki.com/git/git). + DeepWiki is the free public version of [Devin Wiki](https://docs.devin.ai/work-with-devin/devin-wiki) and [Devin Search](https://docs.devin.ai/work-with-devin/devin-search).
+ There are a few silimar projects, like + [Open Source DeepWiki](https://github.com/AsyncFuncAI/deepwiki-open) and + [OpenDeepWiki](https://github.com/AIDotNet/OpenDeepWiki). ++ [GitHub Repository Maintenance Agent](https://github.com/pamelafox/github-repo-maintainer-agent/) + is an AI-powered agent for triaging failed [Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide) pull requests + across one GitHub repositories. The agent uses [Pydantic AI](https://ai.pydantic.dev/) + for LLM-based decisions and the GitHub API for repository, PR, and issue management. + Written in Python, under MIT license. ++ [tangled](https://tangled.sh/) is new social-enabled git collaboration platform + built on [AT Protocol](https://atproto.com/) (that powers the Bluesky social network). + Written in Go, under MIT license; note that it is in alpha stage of development.
+ Compare with: + + [Radicle](https://radicle.xyz/), a peer-to-peer, local-first code collaboration stack built on Git + (first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/)). + + [ForgeFed](https://forgefed.org/) (formerly GitPub), a federation protocol for software forges + (first mentioned in [Git Rev News Edition #69](https://git.github.io/rev_news/2020/11/27/edition-69/)). + + [`git-ssb`](https://scuttlebot.io/apis/community/git-ssb.html) + (see the [git-ssb-intro](https://github.com/hackergrrl/git-ssb-intro) guide), a + decentralized Git repo hosting and issue tracking on [Secure-ScuttleButt (SSB)](https://www.scuttlebutt.nz/) + (first mentioned in [Git Rev News Edition #26](https://git.github.io/rev_news/2017/04/19/edition-26/). + + [gitstr (`git str`)](https://github.com/fiatjaf/gitstr), + 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/)). ++ [Git With Me](https://sr.ht/~meejah/git-withme/) is a tool for + peer-to-peer, encrypted, ephemeral Git collaboration. + `git withme` provides a way for a single host to invite numerous peers + with short, one-time secure codes. The peers connect directly via + [Dilated Magic Wormhole channels](https://meejah.ca/blog/fow-wormhole-forward), + allowing collaborators to `git clone git://localhost/`. ++ [Radicle Desktop](https://desktop.radicle.xyz/) is a desktop application + that lets you interact with [Radicle](https://radicle.xyz/), + a peer-to-peer code collaboration and publishing stack. + Written in TypeScript for Node.js and Rust, using the Tauri framework. + Under GPLv3 license. ++ [GitBug: Git Learning Simulator](https://github.com/dvig14/gitbug) + is a CLI app that teaches Git through hands-on bug fixing. + It uses a realistic merge conflict scenario with visual feedback at every step + The goal of the app is to help you learn by doing, not just reading. + Written in Python, under MIT license, in early stage (alpha).
+ Compare with: + + [Learn Git Branching](https://learngitbranching.js.org/), + mentioned first in [Git Rev News Edition #30](https://git.github.io/rev_news/2017/08/16/edition-30/). + + [Git Gud](https://nic-hartley.github.io/git-gud/), a visual web-based Git simulator, + meant to help understand Git better, announced by its author Nic Hartley in + [Git Gud at git](https://dev.to/nichartley/git-gud-at-git-5d9k). + First mentioned in [Git Rev News Edition #48](https://git.github.io/rev_news/2019/02/27/edition-48/). + + [Git Gud](https://github.com/benthayer/git-gud), a command line game + designed to help you learn how to use the Git version control system. + Written in Python by Ben Thayer. First mentioned in + [Git Rev News Edition #72](https://git.github.io/rev_news/2021/02/27/edition-72/). + + [Oh My Git!](https://ohmygit.org/), an open source game about learning Git, + written using the Godot game engine ([source](https://github.com/git-learning-game/oh-my-git)). + There was a lightning talk about this game at FOSDEM 2021: + [Building a Git learning game: A playful approach to version control](https://fosdem.org/2021/schedule/event/git_learning_game/). + First mentioned in [Git Rev News Edition #72](https://git.github.io/rev_news/2021/02/27/edition-72/). + + [Git-Sim](https://github.com/initialcommit-com/git-sim) tool (written in Python) + to visually simulate Git operations in your own repos with a single terminal command. + Described in [Git-Sim: Visually Simulate Git Operations In Your Own Repos](https://initialcommit.com/blog/git-sim) + (mentioned in [Git Rev News Edition #95](https://git.github.io/rev_news/2023/01/31/edition-95/)) + and [Git-Sim 3 Month Dev Update: Community Response, New Features, & The Future](https://initialcommit.com/blog/git-sim-3-month-dev-update) + (mentioned in [Edition #98](https://git.github.io/rev_news/2023/04/30/edition-98/)). + + [Visualize Git](http://git-school.github.io/visualizing-git/) web app + that illustrates what's going on under the hood when you use common Git operations, + first mentioned in [Git Rev News Edition #107](https://git.github.io/rev_news/2024/01/31/edition-107/). + + [Devlands](https://devlands.com/), which is the game that creates + immersive experience to help learning Git. + First mentioned in [Git Rev News Edition #122](https://git.github.io/rev_news/2025/04/30/edition-122/). ++ [Ferriby](https://github.com/dawedawe/ferriby) is a CLI game + where you try to keep Ferrises alive and happy + by feeding them commits in your repositories. + Written in Rust, under MIT license. ++ [Pride Versioning](https://pridever.org/), + a [joking take](https://mastodon.online/@nikitonsky/113691789641950263) + on [Semantic Versioning (SemVer)](https://semver.org/). + ## Releases From 799029d5dbd07bfa84857d36109115b8192f1c64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 2 Aug 2025 02:24:23 +0200 Subject: [PATCH 249/336] rn-125: More info about git-phoenix tool --- rev_news/drafts/edition-125.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index d6111b479..4e61d6f55 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -471,7 +471,10 @@ __Git tools and sites__ a new file format specification for Extensible Diffs, fully backwards-compatible with existing tools, while also being future-proof and remaining human-readable. -- [git-phoenix](https://github.com/yaitskov/git-phoenix) does repository recovery. ++ [git-phoenix](https://github.com/yaitskov/git-phoenix) is a command line tool + that does repository recovery after accidental removal or file system failure, + using [photorec](https://www.cgsecurity.org/wiki/PhotoRec) (or similar tool). + Written in Haskell, under 3-clause BSD license. + [wtp (Worktree Plus)](https://github.com/satococoa/wtp) is a Git worktree management tool that extends git's worktree functionality with automated setup, branch tracking, and project-specific hooks. From 9d58ac6329d13bed06403a047a6d9cf3bb54289d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 2 Aug 2025 10:22:41 +0200 Subject: [PATCH 250/336] rn-125: add Usman Akinyemi among the helpers --- rev_news/drafts/edition-125.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index 98251ea42..f69da0cd0 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -641,5 +641,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from brian m. carlson, Aditya Garg, +with help from Usman Akinyemi, brian m. carlson, Aditya Garg, Erik-B. Ernst and Bruno Brito. From 6a22592df4b85e11e7bfef4b6038fe1545f5fb13 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 2 Aug 2025 10:26:14 +0200 Subject: [PATCH 251/336] rn-125: tweak wording in main article --- rev_news/drafts/edition-125.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index f69da0cd0..93ab3a7d0 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -59,7 +59,7 @@ This edition covers what happened during the months of June and July 2025. changes to `git send-email`. He mentioned that he was sending the email series using the very patches he was proposing, via Outlook. - The first patch, which was a rebased version of + The first patch was a rebased version of [an earlier patch by Julian Swagemakers](https://lore.kernel.org/git/20250125190131.48717-1-julian@swagemakers.org/) adding support for OAuth2 authentication, which started to be required by Microsoft. Julian's patch unfortunately had been waiting From 00f1e58cedc8a4d59eef310ebd8de3f5ca8b48a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Sat, 2 Aug 2025 10:36:36 +0200 Subject: [PATCH 252/336] rn-125: minor copy edit --- rev_news/drafts/edition-125.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index 93ab3a7d0..e03765cf2 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -232,7 +232,7 @@ welcome your thoughts and feedback!_ been moments when some of my contributions led to insights even long time contributors hadn’t considered, including Junio Hamano. That boosted my confidence not just in contributing to Git, but to other - software projects as well i.e I can get my patches accepted anywhere, + software projects as well, i.e., I can get my patches accepted anywhere, I just need to convince others that it actually solves a problem. * **How do you balance your contributions with other responsibilities @@ -271,7 +271,7 @@ welcome your thoughts and feedback!_ clear, structured commit messages. Git commits, like those in the Linux kernel, follow a thoughtful format: describe the current state, the problem, and the fix. From reading most of the commit messages in - Git, you would have understood and been to visualize what the changes + Git, you would have understood and been able to visualize what the changes will look like. It also makes it easy to track the changes to other prerequisite commits. I have been using the Git commit messages format in other projects and I really love it. @@ -394,11 +394,11 @@ __Various__ + [[LWN.net] A set of Git security-fix releases](https://lwn.net/Articles/1029182/) by Jonathan Corbet on LWN\.net, and
[Multiple vulnerabilities fixed in Git](https://www.openwall.com/lists/oss-security/2025/07/08/4) - by Taylor Blau on oss-security mailing list + by Taylor Blau on oss-security mailing list. + [[ANNOUNCE] Git v2.50.1 and friends](https://public-inbox.org/git/xmqqzfdevcov.fsf@gitster.g/t/#u) - by Junio C Hamano on the git mailing list. + by Junio C Hamano on the Git mailing list. + [Launchpad](https://launchpad.net/) is [phasing out Bazaar code hosting](https://discourse.ubuntu.com/t/phasing-out-bazaar-code-hosting/62189). - This post provides link to the [Migrate a Repository From Bazaar to Git](https://jugmac00.github.io/blog/migrate-a-repository-from-bazaar-to-git/) article. + This post provides a link to the [Migrate a Repository From Bazaar to Git](https://jugmac00.github.io/blog/migrate-a-repository-from-bazaar-to-git/) article. __Light reading__ @@ -450,7 +450,7 @@ __Light reading__ [Radicle](https://radicle.xyz/) is the distributed git hosting system, first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). + [Cutting GitHub out of the loop](https://www.circusscientist.com/2025/07/23/cutting-github-out-of-the-loop/) - (by deploying to VPS with Git and SSH). + (by deploying to a VPS with Git and SSH). Written by tomjuggler on The Circus Scientist Site. + [Super Easy* 2-Stage Git Deployment](https://ratfactor.com/cards/super-easy-2-stage-git-deployment) by Dave Gauer on Dave's Virtual Box of Cards. @@ -500,35 +500,35 @@ __Git tools and sites__ It helps keep your development environment settings organized, versioned, and synchronized across multiple machines and projects. DotProj uses Git commands (commit, push, pull, clone) making it intuitive for developers. - Written as Bash shell script, under MIT license. + Written as a Bash shell script, under MIT license. + [git-remote-sqlite](https://github.com/chrislloyd/git-remote-sqlite) is a [Git protocol helper](https://git-scm.com/docs/gitremote-helpers) that helps you store a Git repository in a SQLite database. Written in Zig, under MIT license. + [Backlog.md](https://backlog.md/) is a tool that turns any folder with a Git repo - into a self‑contained project board, powered by plain Markdown files - and a zero‑config CLI. Written in TypeScript, under MIT license. AI ready. + into a self-contained project board, powered by plain Markdown files + and a zero-config CLI. Written in TypeScript, under MIT license. AI ready. + [git-resolve.sh](https://elixir.bootlin.com/linux/v6.16-rc3/source/scripts/git-resolve.sh) is a Bash script that resolves a short git commit ID to its full SHA-1 hash, which is particularly useful for fixing references in commit messages. - Under GPL-2.0 license. + Under GPL-2.0 license. + [GitHub Trends](https://www.githubtrends.io/) is a service that - uses GitHub API to bring you insightful metrics on your contributions, + uses the GitHub API to bring you insightful metrics on your contributions, broken by repository and language. + [DeepWiki](https://deepwiki.com/): AI-generated docs for any repo. This service turns any public GitHub repo into up-to-date documentation you can talk to (see for example [DeepWiki: git/git](https://deepwiki.com/git/git). DeepWiki is the free public version of [Devin Wiki](https://docs.devin.ai/work-with-devin/devin-wiki) and [Devin Search](https://docs.devin.ai/work-with-devin/devin-search).
- There are a few silimar projects, like + There are a few similar projects, like [Open Source DeepWiki](https://github.com/AsyncFuncAI/deepwiki-open) and [OpenDeepWiki](https://github.com/AIDotNet/OpenDeepWiki). + [GitHub Repository Maintenance Agent](https://github.com/pamelafox/github-repo-maintainer-agent/) is an AI-powered agent for triaging failed [Dependabot](https://docs.github.com/en/code-security/getting-started/dependabot-quickstart-guide) pull requests - across one GitHub repositories. The agent uses [Pydantic AI](https://ai.pydantic.dev/) + across one's GitHub repositories. The agent uses [Pydantic AI](https://ai.pydantic.dev/) for LLM-based decisions and the GitHub API for repository, PR, and issue management. Written in Python, under MIT license. -+ [tangled](https://tangled.sh/) is new social-enabled git collaboration platform - built on [AT Protocol](https://atproto.com/) (that powers the Bluesky social network). ++ [tangled](https://tangled.sh/) is a new social-enabled git collaboration platform + built on the [AT Protocol](https://atproto.com/) (that powers the Bluesky social network). Written in Go, under MIT license; note that it is in alpha stage of development.
Compare with: + [Radicle](https://radicle.xyz/), a peer-to-peer, local-first code collaboration stack built on Git @@ -556,7 +556,7 @@ __Git tools and sites__ Under GPLv3 license. + [GitBug: Git Learning Simulator](https://github.com/dvig14/gitbug) is a CLI app that teaches Git through hands-on bug fixing. - It uses a realistic merge conflict scenario with visual feedback at every step + It uses a realistic merge conflict scenario with visual feedback at every step. The goal of the app is to help you learn by doing, not just reading. Written in Python, under MIT license, in early stage (alpha).
Compare with: From 76efb2dec49b8953c5a665ec72fb3a7f0bdbc630 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sat, 2 Aug 2025 19:42:17 +0200 Subject: [PATCH 253/336] =?UTF-8?q?rn-125:=20added=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20as=20contributor,=20plus=20one=20really=20tiny?= =?UTF-8?q?=20formatting=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rev_news/drafts/edition-125.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-125.md b/rev_news/drafts/edition-125.md index e03765cf2..063e936ee 100644 --- a/rev_news/drafts/edition-125.md +++ b/rev_news/drafts/edition-125.md @@ -405,7 +405,7 @@ __Light reading__ + [Artisanal Handcrafted Git Repositories](https://drew.silcock.dev/blog/artisanal-git/) by Drew Silcock on drew's dev blog. - This article talks about how to handmake your Git repositories without using git commands. + This article talks about how to handmake your Git repositories without using `git` commands. You might also learn a bit more about how Git works under the hood during the process. + [How to use git worktree effectively with Python projects](https://www.andreagrandi.it/posts/how-to-use-git-worktree-effectively-with-python-projects/) (with the help of a simple [git-add-worktree.sh](https://gist.github.com/andreagrandi/542b438bf0017d93aff2b640037e3ce1) Bash script) @@ -642,4 +642,4 @@ Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> with help from Usman Akinyemi, brian m. carlson, Aditya Garg, -Erik-B. Ernst and Bruno Brito. +Erik-B. Ernst, Bruno Brito and Štěpán Němec. From 71a8189bb7c5da792813a0f72ac0964674694b3b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 2 Aug 2025 22:00:26 +0200 Subject: [PATCH 254/336] Publish rn-125 in _posts/ --- .../edition-125.md => _posts/2025-07-31-edition-125.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-125.md => _posts/2025-07-31-edition-125.markdown (100%) diff --git a/rev_news/drafts/edition-125.md b/_posts/2025-07-31-edition-125.markdown similarity index 100% rename from rev_news/drafts/edition-125.md rename to _posts/2025-07-31-edition-125.markdown From c7485c1c36b187525a80de691f279601ff94a6f5 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 2 Aug 2025 22:00:27 +0200 Subject: [PATCH 255/336] Add draft for rn-126 --- rev_news/drafts/edition-126.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-126.md diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md new file mode 100644 index 000000000..536b8c95f --- /dev/null +++ b/rev_news/drafts/edition-126.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 126 (August 31st, 2025) +layout: default +date: 2025-08-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 126 (August 31st, 2025) + +Welcome to the 126th 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 July 2025 and August 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 f14062a33ffde25c66a723bec3cdbd04dfe60d61 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 31 Aug 2025 00:00:20 +0530 Subject: [PATCH 256/336] rn-126: include interview with Seyi Kuforiji --- rev_news/drafts/edition-126.md | 227 ++++++++++++++++++++++++++++++++- 1 file changed, 224 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 536b8c95f..0f43c2686 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -29,9 +29,230 @@ This edition covers what happened during the months of July 2025 and August 2025 ### Support --> - +## Developer Spotlight: Seyi Kuforiji + +_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 Outreachy 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?** + + My name is Seyi Kuforiji, and I’m an Outreachy alum who worked on + [modernizing Git’s unit testing platform](https://seyi-kuforiji-902b48.gitlab.io/posts/week-1-Introduce-yourself) + by converting its homegrown unit test framework to use [Clar](https://github.com/clar-test/clar). + I studied geography at the University of Lagos, but my curiosity + and passion for computers and software drove me to start learning + Python and Git immediately after graduating. + + Since then, I’ve enjoyed exploring different areas of IT, from + software engineering to data science and DevOps, because I genuinely + love learning and experimenting with new tools. I also earned a + certification in Health Data Science and Precision Medicine from + Stanford University, which reflects my commitment to leveraging + technology to improve lives. Participating in Outreachy through Git + demonstrated to me the impact of open-source collaboration, and it has + strengthened my passion for developing solutions that give back to the + community. + + Outside of work, I’m usually diving into something new. Right now, the + [Linux graphics stack](https://lwn.net/Articles/955376/) has caught my + attention, but when I decide to give my brain a break from tech, I play + chess or watch sports. + +* **How did you initially become interested in contributing to Git, + and what motivated you to choose it as your Outreachy project?** + + Git was one of the first tools I ever learned years ago. At first, I + didn’t really understand it; I only knew a few commands like + `git clone`, `git add .`, and `git commit -m ""`, and I was + living life with just those. I remember during my 12-month software + engineering bootcamp, I helped some of my colleagues with Git because + I had this so-called “prior knowledge” and for a while, I was treated + like a genius, at least until they caught up! + + So when I saw Git on the list of Outreachy projects, I knew right away + that this was where I needed to be: to deepen my understanding of the + tool and maybe level up from “genius” to something closer to expert + wizardry. These days, some say I’m a wizard, others say I’m a maestro, + but I’m just a humble guy who enjoys learning and sharing knowledge. + +* How do you feel your contribution has impacted the Git community + or the broader open source ecosystem? + + My contribution to Git, which was modernizing its homegrown unit + testing framework to use Clar, has helped improve Git’s testing + capabilities by making the tests more maintainable, easier to + understand, and easier to extend to cover more edge cases in the + future. Clar brings additional benefits such as clearer test + reporting, a more structured way to organize tests, and improved + readability, which makes the testing process more approachable for new + contributors. While this was primarily an internal-facing improvement, + I believe it plays an important role in maintaining the reliability of + Git’s functions and operations. A stronger testing framework makes it + easier for both new and experienced contributors to work with the + codebase confidently, which in turn strengthens Git for the millions + of people who rely on it every day. + +* **Is there any aspect of Git that you now see differently after + having contributed to it?** + + Like I said earlier, I started out only knowing a handful of Git + commands to do basic operations. My biggest takeaway since + contributing to Git has been discovering the full power of its + interactive rebase. I always saw rebase on cheat sheets but never + really experienced its capabilities until I worked more deeply with + Git. The best way I can describe it is that it feels like a time + machine: I make changes and commits, Git captures those states in + time, and with interactive rebase, I can go back, rewrite history, and + improve it as if it were the first time. + + I still find it so cool that in my text editor, I can see files I had + already deleted in later commits come back to life during a rebase. It + completely changed how I view Git, not just as a version control + system, but as a powerful storytelling tool for code. + +* **How do you balance your contributions with other responsibilities + like work or school?** + + I usually create a schedule with a clear timeframe dedicated to + working on the Git project. For example, during Outreachy, I set aside + specific blocks of time each day, treating it almost like a regular + job. This helped me stay consistent, avoid distractions, and make + steady progress. + + I’ve learned that balancing open-source contributions with other + responsibilities is all about structure and prioritization. By + planning my week ahead, I can make sure that my work, personal life, + and contributions don’t clash. Of course, I also try to stay flexible; + 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 + non-technical skills (like communication, project management, etc.)?** + + My C and low-level engineering skills have improved immensely through + this experience. I now feel much more confident working in a large and + complex codebase, and I’ve built the mindset to take on hard problems + without shying away. This confidence is what’s encouraging me to dive + deeper into the Linux kernel, where I’ve been learning and + experimenting with the graphics stack and GPU drivers. My knowledge of + Git itself has also grown significantly, particularly with the + interactive rebase functionality, which has completely changed how I + think about version control and history management. + + On the non-technical side, I grew a lot in communication and project + management. I learned how to break down tasks into smaller, achievable + goals, track progress against deadlines, and ask for help effectively + when I was stuck. Collaborating with mentors and the wider Git + community also taught me the importance of giving clear updates in + blog posts and writing thoughtful commit messages. + + Overall, the experience didn’t just make me a better programmer; it + made me more disciplined, collaborative, and confident in working on + real-world projects. + +* **What was your biggest takeaway or learning from Outreachy that + you now apply regularly in your work?** + + My biggest takeaway from Outreachy is the balance between + understanding deeply and taking action. My mentor encouraged me to not + just know how things work but also to dig into why they work. At the + same time, I learned that it’s easy to get stuck in the learning + phase, waiting until you feel "ready." During my first few weeks, I + hesitated too much. What really helped me was realizing that you don’t + need to know everything before you start; you just need enough to + begin, and the rest comes as you build and iterate. That shift has + stayed with me and is something I now apply regularly in my life. + +* **What was the biggest challenge you faced during your contributions + to Git, and how did you overcome it?** + + One of the biggest challenges I faced was understanding the Git + codebase. Git is a very large and complex project with many + interconnected parts, and even though my task was limited to the unit + testing section, I also needed to understand the underlying + functionality being tested. At first, it felt daunting, but I overcame + this by burning the midnight candle, digging deeper, and committing + myself to continuous learning. Bit by bit, things started to make + sense. What really helped was breaking down the complexity into + smaller pieces and focusing on one area at a time, while also asking + lots of questions and referring back to documentation. + +* **Have you thought about mentoring new GSoC / Outreachy students?** + +Yes, I hope to mentor future Outreachy interns if the opportunity arise. + +* **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?** + + A first-class graphical interface officially maintained by the Git + project, for those who prefer using an app instead of the command + line. + +* **What upcoming features or changes in Git are you particularly + excited about?** + + I’ve been reading recent discussions on the Git mailing list about how + Git might evolve in the age of AI, particularly around enabling + integrations with AI agents. The idea of extending Git’s capabilities + so that AI tools can better understand, interact with, and even + automate certain workflows is quite exciting. For example, AI-assisted + code reviews, intelligent merge conflict resolution, or automated + repository maintenance could become more seamless if Git had + standardized ways for agents to plug into its internals. + +* **What is your favorite Git-related tool/library, outside of Git + itself?** + + GitHub and GitLab + +* **What is your toolbox for interacting with the mailing list and for + development of Git?** + + I mostly work from the command line. For sending contributions, I use + `git format-patch` and `git send-email`, since I’m more comfortable with + CLI tools. + +* **How do you envision your own involvement with Git or other open + source projects in the future?** + + I intend to remain active in the Git community for many years by + making steady contributions. At the moment, I’m still learning and + exploring the project to identify areas where I can improve and add + value. Over time, I hope to grow into a consistent contributor and + take on more responsibility within the project. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + For anyone starting Git development, I’d recommend a few key + resources. The "[Hacking Git](https://git.github.io/Hacking-Git/)” + guide is definitely a go-to resource for understanding how the + project is structured and how to navigate the codebase. + The [MyFirstContribution](https://git-scm.com/docs/MyFirstContribution) + page is also very helpful for learning how to get started with making + changes. Beyond that, the general Git documentation is valuable for + building a solid foundation. Starting small, asking questions, and + getting familiar with these resources can make the process much + smoother. + +* **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?** + + 100% yes. Programs like GSoC and Outreachy give you the unique + opportunity to learn directly from some of the smartest and most + experienced contributors in the Git community. Having a mentor to + guide you through real contributions accelerates your learning, helps + you build confidence and good practices early on. I’d absolutely + recommend it. My advice would be: come with curiosity, patience, and + the willingness to learn. Don’t worry if you don’t understand + everything at first. Ask questions, read the documentation, and engage + with the community. The mentorship and the experience you gain are + invaluable. + ## Other News From 9efb711d48ea53d8d8285084ee3a8f1633716f51 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 31 Aug 2025 12:53:34 +0200 Subject: [PATCH 257/336] rn-126: add releases --- rev_news/drafts/edition-126.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 0f43c2686..1ad3b30c0 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -270,6 +270,28 @@ __Git tools and sites__ ## Releases ++ Git [2.51.0](https://lore.kernel.org/git/xmqqikikk1hr.fsf@gitster.g/), +[2.51.0-rc2](https://lore.kernel.org/git/xmqqh5ybcfwt.fsf@gitster.g/), +[2.51.0-rc1](https://lore.kernel.org/git/xmqqikizoybn.fsf@gitster.g/), +[2.51.0-rc0](https://lore.kernel.org/git/xmqqms8f5889.fsf@gitster.g/) ++ Git for Windows [v2.51.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.0.windows.1) ++ GitHub Enterprise [3.17.5](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.5), +[3.16.8](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.8), +[3.15.12](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.12), +[3.14.17](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.17) ++ GitLab [18.3.1, 18.2.5, 18.1.5](https://about.gitlab.com/releases/2025/08/27/patch-release-gitlab-18-3-1-released/), +[18.3](https://about.gitlab.com/releases/2025/08/21/gitlab-18-3-released/), +[18.2.4](https://about.gitlab.com/releases/2025/08/18/gitlab-18-2-4-released/), +[17.11.7](https://about.gitlab.com/releases/2025/08/15/gitlab-17-11-7-released/), +[18.2.2, 18.1.4, 18.0.6](https://about.gitlab.com/releases/2025/08/13/patch-release-gitlab-18-2-2-released/) ++ Gerrit Code Review [3.10.8](https://www.gerritcodereview.com/3.10.html#3108), +[3.11.5](https://www.gerritcodereview.com/3.11.html#3115), +[3.12.2](https://www.gerritcodereview.com/3.12.html#3122) ++ GitKraken [11.3.0](https://help.gitkraken.com/gitkraken-client/current/) ++ Git Cola [4.14.0](https://github.com/git-cola/git-cola/releases/tag/v4.14.0) ++ GitButler [0.15.16](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.15.16), +[0.15.15](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.15.15) ++ Sublime Merge [Build 2112](https://www.sublimemerge.com/download) ## Credits From e4b4e713f2f590266243516ad2631b075dea4120 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 31 Aug 2025 17:30:55 +0200 Subject: [PATCH 258/336] rn-126: improve releases --- rev_news/drafts/edition-126.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 1ad3b30c0..7d64b7982 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -274,11 +274,10 @@ __Git tools and sites__ [2.51.0-rc2](https://lore.kernel.org/git/xmqqh5ybcfwt.fsf@gitster.g/), [2.51.0-rc1](https://lore.kernel.org/git/xmqqikizoybn.fsf@gitster.g/), [2.51.0-rc0](https://lore.kernel.org/git/xmqqms8f5889.fsf@gitster.g/) -+ Git for Windows [v2.51.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.0.windows.1) -+ GitHub Enterprise [3.17.5](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.5), -[3.16.8](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.8), -[3.15.12](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.12), -[3.14.17](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.17) ++ Git for Windows [v2.51.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.0.windows.1), +[v2.51.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.0-rc2.windows.1), +[v2.51.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.0-rc1.windows.1), +[v2.51.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.51.0-rc0.windows.1) + GitLab [18.3.1, 18.2.5, 18.1.5](https://about.gitlab.com/releases/2025/08/27/patch-release-gitlab-18-3-1-released/), [18.3](https://about.gitlab.com/releases/2025/08/21/gitlab-18-3-released/), [18.2.4](https://about.gitlab.com/releases/2025/08/18/gitlab-18-2-4-released/), @@ -287,6 +286,10 @@ __Git tools and sites__ + Gerrit Code Review [3.10.8](https://www.gerritcodereview.com/3.10.html#3108), [3.11.5](https://www.gerritcodereview.com/3.11.html#3115), [3.12.2](https://www.gerritcodereview.com/3.12.html#3122) ++ GitHub Enterprise [3.17.5](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.5), +[3.16.8](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.8), +[3.15.12](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.12), +[3.14.17](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.17) + GitKraken [11.3.0](https://help.gitkraken.com/gitkraken-client/current/) + Git Cola [4.14.0](https://github.com/git-cola/git-cola/releases/tag/v4.14.0) + GitButler [0.15.16](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.15.16), From 1861a7bab87a950cf711912af5aa1662b336f215 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 1 Sep 2025 00:16:31 +0200 Subject: [PATCH 259/336] rn-126: add pull.autostash article --- rev_news/drafts/edition-126.md | 79 +++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 7d64b7982..c75868d18 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -25,9 +25,84 @@ This edition covers what happened during the months of July 2025 and August 2025 ### Reviews --> - + +* [[BUG] git pull ignores pull.autostash=true configuration when used with --git-dir and --work-tree flags on a bare repository](https://lore.kernel.org/git/010001980c1ee007-2797fc86-fdf3-46e9-bec9-f8da2c9ebb8d-000000@email.amazonses.com/) + + Bryan Lee posted a bug report about the `pull.autostash` + configuration variable being ignored in a repository used to manage + his dotfiles. + + He expected his unstaged changes to be automatically stashed before + a pull when that configuration variable is set to `true`. Instead, + the command failed with an error message telling him to "Please + commit or stash them". So he thought Git ignored the autostash + configuration completely due to the setup, which consisted of a bare + repository and a separate work tree accessed through the following + alias: + + `$ alias dot='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'` + + Lidong Yan replied to Bryan admitting that he wasn't sure why the + autostash feature would be ignored when using the `--git-dir` and + `--work-tree` flags. He suggested setting `rebase.autostash` instead + of `pull.autostash` to `true` though. + + Bryan Lee thanked Lidong saying that `pull.autostash` is not a Git + configuration option and that `rebase.autostash` does work for + rebase operations. But he raised the issue that Git silently accepts + invalid configuration keys without any warning, which can cause + users to waste a lot of time debugging. + + Lidong replied with a suggestion to add a `git config verify` + subcommand. But Junio Hamano, the Git maintainer, chimed in + expressing doubts about such a command, as Git cannot distinguish + between a typo of a known variable and a legitimate custom variable + that a user or a third-party tool might be using. Lidong elaborated + that such a command could work by having Git maintain an internal + registry of all valid keys, which could also be extended by users + and tools for their own custom configurations. + + Johannes Sixt suggested that instead of building a complex + verification system, it would be easier to fix the origin of the + misconception that `pull.autostash` was the correct configuration. + + Junio replied to Johannes that having `git pull` pay attention to + `rebase.autostash` was at least a documentation failure, if not a + bug. He argued that users have different expectations for a + relatively safe local rebase compared to a pull from a remote, which + could be riskier. Also it didn't make sense for `git pull` to + respect `rebase.autostash` but not `merge.autostash`. + + Ben Knoble then chimed in with a counter-argument to Junio. He + reasoned that since a `git pull` that rebases is conceptually a + fetch followed by a rebase, it would be "far more inconsistent" if + it didn't honor the rebase configuration. Breaking that expectation + would be unnatural for users taught to think of pull in that + way. Following this logic, he also supported the idea that a merging + pull should respect `merge.autostash`. + + Then Junio wondered if introducing a new, dedicated `pull.autostash` + variable would be a good idea. But soon Lidong came up with + [a patch](https://lore.kernel.org/git/20250717030732.75106-1-yldhome2d2@gmail.com/) + to actually add this configuration variable. + + Eric Sunshine reviewed the patch and left a number of suggestions to + improve it in many ways. After some discussions with Lidong and + Junio, Lidong posted + [a version 2 of the patch](https://lore.kernel.org/git/20250720124334.12045-1-yldhome2d2@gmail.com/). + + This new version implemented a number of improvements based on the + discussion. Some tests were added. The logic was updated to fall + back to either `rebase.autostash` or `merge.autostash` depending on + whether the pull performed a rebase or a merge. The order of + precedence was also clarified: `pull.autostash` now overrode the + more general `rebase.autostash` and `merge.autostash` + settings. Finally, the documentation was updated with more precise + explanations. + + This feature was released recently as part of Git v2.51.0. ## Developer Spotlight: Seyi Kuforiji From f0f103675e1d1f00fd6296c31d7eadd1e131eec4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 1 Sep 2025 00:29:36 +0200 Subject: [PATCH 260/336] rn-126: remove redundant year --- rev_news/drafts/edition-126.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index c75868d18..e997f3ad7 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -13,7 +13,7 @@ Welcome to the 126th edition of [Git Rev News](https://git.github.io/rev_news/re 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 July 2025 and August 2025. +This edition covers what happened during the months of July and August 2025. ## Discussions From 0b76af14e8ac4c39b2653be6072d0220096268d9 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 1 Sep 2025 00:30:43 +0200 Subject: [PATCH 261/336] rn-126: add Seyi Kuforiji among the helpers --- rev_news/drafts/edition-126.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index e997f3ad7..052f86154 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -378,4 +378,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Seyi Kuforiji. From 6139aecb8cef735ecd68a2e0e9119c1cbf001287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 1 Sep 2025 02:44:59 +0200 Subject: [PATCH 262/336] rn-126: Add links to various news, articles, sites, and tools --- rev_news/drafts/edition-126.md | 248 +++++++++++++++++++++++++++++++++ 1 file changed, 248 insertions(+) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 052f86154..1399ba2f9 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -333,15 +333,263 @@ Yes, I hope to mentor future Outreachy interns if the opportunity arise. __Various__ ++ [What’s new in Git 2.51.0?](https://about.gitlab.com/blog/what-s-new-in-git-2-51-0/) + by Karthik Nayak on GitLab Blog. It describes performance optimizations + for `git push` and `git fetch` (most significant when using "reftable" + backend for references), further plans for Git 3.0 (which can be + found in the [BreakingChanges document](https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/BreakingChanges.adoc)), semi-removal of `git whatchanged` + (still available with `--i-still-use-this` flag), and marking + `git switch` and `git restore` as no longer experimental, + adding a new `--start-after` flag for `git for-each-ref` (that can be + combined with the `--count` flag to support pagination), etc. ++ [Highlights from Git 2.51](https://github.blog/open-source/git/highlights-from-git-2-51/) + by Taylor Blau on GitHub Blog. It describes cruft-free multi-pack indexes + (which currently require setting a new `repack.MIDXMustContainCruft` config option), + smaller packs with "path walk" method of collecting objects when repacking + (which you can try out with the new `--path-walk` command-line option), + a variant of the internal stash representation that can be used for stash interchange + (with new `export` and `import` commands for `git stash`), etc. ++ [Xet is now the default storage option for new users and organizations](https://huggingface.co/changelog/xet-default-for-new-users) + at [Hugging Face](https://huggingface.co/), switching from [Git LFS](https://git-lfs.com/). + This includes moving existing repositories from LFS to Xet. + To get the most out of Xet storage [read the usage instructions in the Hub docs](https://huggingface.co/docs/hub/en/storage-backends#using-xet-storage). + Note that Xet remains backward compatible with legacy clients optimized for Git LFS. + + [XetHub](https://xethub.com/) was first mentioned in passing in + [Git Rev News #95](https://git.github.io/rev_news/2023/01/31/edition-95/), + and its [benchmark by XetHub against S3, DVC, and Git LFS](https://about.xethub.com/blog/benchmarking-the-modern-development-experience) + was mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/). + + Compare with [DagsHub launching Direct Data Access in 2022](https://dagshub.com/blog/launching-data-streaming-and-upload/). + [DagsHub](https://dagshub.com/) was first mentioned in + [Git Rev News Edition #72](https://git.github.io/rev_news/2021/02/27/edition-72/), + then in [#85](https://git.github.io/rev_news/2022/03/31/edition-85/), + [#96](https://git.github.io/rev_news/2023/02/28/edition-96/), + [#107](https://git.github.io/rev_news/2024/01/31/edition-107/), and + [#113](https://git.github.io/rev_news/2024/07/31/edition-113/). + __Light reading__ ++ [The future of large files in Git is Git](https://tylercipriani.com/blog/2025/08/15/git-lfs/) + by Tyler Cipriani on his blog. It describes how can one use + partial clone today (and large object promisors in the future, + which are work in progress), instead of using [Git LFS](https://git-lfs.com/) + or similar solutions like [git-annex](https://git-annex.branchable.com/) + (or no longer actively developed solutions like git-media and git-fat), + or [DVC](https://dvc.org/) (Data Version Control). ++ [Code Review Can Be Better](https://tigerbeetle.com/blog/2025-08-04-code-review-can-be-better/) + (than GitHub's default code review process) + by matklad (Alex Kladov) on the TigerBeetle blog.
+ Mentions their [`git-review`](https://github.com/tigerbeetle/tigerbeetle/pull/2732) + work-in-progress tool, and also + + [Fossil](https://fossil-scm.org/) version control system with built-in project management + (first mentioned in [Git Rev News Edition #11](https://git.github.io/rev_news/2016/01/13/edition-11/)), + + [NoteDb](https://gerrit-review.googlesource.com/Documentation/note-db.html) backend + for [Gerrit](https://www.gerritcodereview.com/) - which allows storing review state in Git, + (NoteDb was first mentioned in [Git Rev News Edition #40](https://git.github.io/rev_news/2018/06/20/edition-40/)), + + [git-bug](https://github.com/git-bug/git-bug) tool that uses git to store information about issues / bugs + (first mentioned in [Git Rev News Edition #43](https://git.github.io/rev_news/2018/09/19/edition-43/)), + + [git-appraise](https://github.com/google/git-appraise) tool that uses git to store information about reviews + (first mentioned in [Git Rev News Edition #11](https://git.github.io/rev_news/2016/01/13/edition-11/)), + + [prr](https://doc.dxuuu.xyz/prr/index.html) ('pull request review') tool that brings mailing list style code reviews to Github PRs + (mentioned in [Git Rev News Edition #90](https://git.github.io/rev_news/2022/08/31/edition-90/)), + + [git-pr](https://pr.pico.sh/) project that leverages git native features to replace the entire pull request workflow, + (mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/)), and + + [How Jane Street Does Code Review](https://www.janestreet.com/tech-talks/janestreet-code-review/) + article by Ian Henry on Jane Street Tech Talks site. ++ [Jujutsu + Radicle = ❤️](https://radicle.xyz/2025/08/14/jujutsu-with-radicle) + by fintohaps on Radicle Blog, describing how the author use Jujutsu in tandem with Radicle. + + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/) is a Git-compatibile version control system + written in Rust, and was first mentioned in + [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). + + [Radicle](https://radicle.xyz/), a peer-to-peer, local-first code collaboration stack built on Git, + was first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). ++ [introducing spindle](https://blog.tangled.sh/ci) by Anirudh & Akshay on Tangled blog; + spindle is Tangled’s new CI runner built atop Nix and AT Protocol. + + [Tangled.sh](https://blog.tangled.sh/intro) is a new social-enabled Git collaboration platform + build on top of AT Protocol (which is behind [BlueSky](https://bsky.app/) + microblogging federated social media service). + First mentioned in [the previous edition of Git Rev News](https://git.github.io/rev_news/2025/07/31/edition-125/). + + Compare [Using Radicle CI for Development](https://radicle.xyz/2025/07/23/using-radicle-ci-for-development) + article by Lars Wirzenius, also mentioned in [Git Rev News #125](https://git.github.io/rev_news/2025/07/31/edition-125/). + [Radicle](https://radicle.xyz/) is another distributed git hosting system, + first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). ++ [How we used Radicle with GitHub Actions](https://radicle.xyz/2025/05/30/radicle-with-github-actions): + Quick guide to trying Radicle without dropping GitHub or whatever CI you’re using. + Published by rudolfs (Rūdolfs Ošiņš) on Radicle Blog. ++ [Archive Legacy GitHub Repos with Subtree](https://dev.to/tonymet/archive-legacy-github-repos-with-subtree-1dj3) + by Tony Metzidis on DEV\.to, about how to use `git subtree` to consolidate + hundreds of legacy experimental repos into an archive, + preserving all of the commit history. ++ [I'll think twice before using Github Actions again](https://ninkovic.dev/blog/2025/think-twice-before-using-github-actions) + by Nemanja Ninković on their blog. ++ [Git without a forge](https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/git-no-forge/) + by Simon Tatham on his quasiblog, describing how to interact with a bare git repo, + and explaining why he personally does not use any of Git forges. ++ [How I Cleaned Up My Git History Like a Boss (a.k.a. Fixing Wrong Author Emails)](https://dev.to/emrahg/how-i-cleaned-up-my-git-history-like-a-boss-aka-fixing-wrong-author-emails-19lb) + by Emrah G. on DEV\.to. The solution uses (deprecated) `git filter-branch` tool; + the recommended replacement is [`git filter-repo`](https://github.com/newren/git-filter-repo). + Also, you can correct the _visible_ e-mail with the [`.mailmap`](https://git-scm.com/docs/gitmailmap) file + (changing what Git shows, without having to rewrite history). ++ [Revolutionizing Git Workflows: The MCP Git Commit Generator](https://www.bampouris.eu/blog/mcp-git-commit-generator/) + by Theoklitos Bampouris on his blog (and also [on DEV\.to](https://dev.to/theoklitosbam7/revolutionizing-git-workflows-the-mcp-git-commit-generator-530m)), + about using Agentic AI and LLM chatbot, + leveraging the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction). + The generated commit message will follow [Conventional Commits](https://www.conventionalcommits.org/) conventions.
+ Note: please read the proposed commit message before accepting it, + especially for more complex changes. While AI agents can take information + from changes and from an issue tracker, they cannot write whys of the change; + they cannot access your thoughts. + + [Git Rev News Edition #97](https://git.github.io/rev_news/2023/03/31/edition-97/) + lists a few other tools that use GPT-3 / ChatGPT Large Language Model (LLM) + to help write commit messages. ++ [Better git status](https://purpleidea.com/blog/2025/08/04/better-git-status/) + by James (@purpleidea) on his blog. He uses git alias which examines + the terminal width, and uses `git status --column=nodense` if terminal is wide enough. ++ [Some Pretty Cool Git Tools To Save Your Sanity](https://fev.al/posts/git-tools/) + by Charles Féval on his blog. + Mentions `git revise` for splitting pull requests (PRs), + and own `git backup`, `git reparent`, `git split`, `git move-branch`, and `git bookmark`. ++ [Using Git worktrees for development](https://blog.kulman.sk/git-worktree/) + by Igor Kulman on his blog. ++ [Curing A Case Of Git-UX](https://oppi.li/posts/curing_a_case_of_git-UX/) + by Akshay on their blog; describes how one can improve git worktree UX + with the help of [fzf](https://github.com/junegunn/fzf) + (or [skim](https://github.com/lotabout/skim) or [fzy](https://github.com/jhawthorn/fzy)), + and shell functions. + + See also [Improving shell workflows with fzf](https://seb.jambor.dev/posts/improving-shell-workflows-with-fzf/), + mentioned in [Git Rev News Edition #74](https://git.github.io/rev_news/2021/04/30/edition-74/). ++ [Making my GitHub heatmap widget](https://leanrada.com/notes/github-heatmap-widget/) + Lean Rada on their blog. The created tool scrapes an HTML partial, and reformats it, + but is constructed in such way that it could have consume JSON from GitHub API instead. ++ [TryHackMe - Git Happens](https://jacen.moe/blog/20250805-tryhackme-git-happens/) + by Jacen Sekai on his blog, about [Git Happens](https://tryhackme.com/room/githappens): + an easy-ranked box on [TryHackMe](https://tryhackme.com/), website for + hands-on cyber security training through real-world scenarios. ++ [The Ingredients of a Productive Monorepo](https://blog.swgillespie.me/posts/monorepo-ingredients/) + by Sean Gillespie on his misguided thoughts blog. + + You can find a definition of "monorepo" and a list of various tools on the [Monorepo.tools](https://monorepo.tools/) site, + which was first mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [Git and jujutsu: in miniature](https://lottia.net/notes/0013-git-jujutsu-miniature.html) + by Charlotte (lottia) on her blog (2024). ++ [Git Interactive Rebase TODO Order is Wrong](https://salferrarello.com/git-interactive-rebase-order-is-wrong/) + by Sal Ferrarello on his blog (2019), stating a personal preference for stack-like order, + with latest commits appearing on the top.
+ The author even wrote a Vim plugin, + [Interactive Rebase Reverse Vim](https://github.com/salcode/vim-interactive-rebase-reverse), + to reverse the order of the commits in an interactive git rebase. ++ [Every line of code is always documented](https://mislav.net/2014/02/hidden-documentation/) + by Mislav Marohnić on his blog (2014). The article describes how to + extract information about code snippet from project history using `git blame`, + 'pickaxe' search with `git log -S`, and + [git-churn](https://github.com/garybernhardt/dotfiles/blob/f0c0ff92209e5aed4fa3ef6faf056eb9944a8f12/bin/git-churn) script, + and how to stay on the right side of history + (among others, to be able to use this technique effectively). + + __Git tools and sites__ ++ [WRKFLW](https://github.com/bahdotsh/wrkflw) is a command-line tool + for validating and executing GitHub Actions workflows locally, + without requiring a full GitHub environment. + It helps developers test their workflows directly on their machines + before pushing changes to GitHub. + Written in Rust, under MIT license. + + Compare with [Act](https://github.com/nektos/act) command line tool + to run your GitHub Actions locally, using the Docker Engine API. + Written in Go, under MIT license. + Mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/). ++ [Setup DVC Action](https://github.com/marketplace/actions/setup-dvc-data-version-control) + by Iterative is a JavaScript action that can be used as a step in GitHub Actions.
+ [DVC](https://dvc.org) (Data Version Control) was first mentioned + in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/), + and many times since (most recent in [Edition #116](https://git.github.io/rev_news/2024/10/31/edition-116/)). ++ [Lappverk](https://codeberg.org/natkr/lappverk/) is a tool for modifying other people's software. + It works by keeping a series of `.patch` files as its source of truth + (like [quilt](https://savannah.nongnu.org/projects/quilt)), + but using temporary Git repositories as an interface to modify the patches, + rather than implementing its own version control system from scratch. + Written in Rust, under Apache 2.0 License. + Started out as Patchable internal tool.
+ You might also be interested in reading the announcement blog post: + [Modifying Other People's Software]() + by Natalie Klestrup Röijezon (natkr) on natkr's ramblings. + + Compare [patchwork](http://jk.ozlabs.org/projects/patchwork/) - a web-based patch tracking system + designed to facilitate the contribution and management of contributions to an open-source project, + first mentioned in [Git Rev News Edition #20](https://git.github.io/rev_news/2016/10/19/edition-20/). + + Compare [Stacked Git (StGit)](https://stacked-git.github.io/), + an application for managing Git commits as a stack of patches, + first mentioned in [Git Rev News Edition #17](https://git.github.io/rev_news/2016/07/20/edition-17/). + + Compare [B4 Tools](https://github.com/mricon/b4), a helper utility + to work with patches made available via a [public-inbox](https://public-inbox.org/README.html) archive like [lore.kernel.org](https://lore.kernel.org/). + This tool is written to make it easier to participate in a patch-based workflows, + like those used in the Linux kernel development. + First mentioned in [Git Rev News Edition #61](https://git.github.io/rev_news/2020/03/25/edition-61/). ++ [GitGenius](https://selvaneyas.github.io/gitgenius) is a smart and simple CLI tool + that explains Git errors in plain English and helps you fix them quickly. + Written in Python, under MIT license. + + See also [thefuck](https://github.com/nvbn/thefuck), a command line application + which corrects your previous console command (for example Git command) + if you made an error (like typos in command name), and it _didn't_ do what you wanted; + the tool was first mentioned in [Git Rev News Edition #101](https://git.github.io/rev_news/2023/07/31/edition-101/). + + Compare the [Oh Shit, Git!?!](http://ohshitgit.com/) / [Dangit, Git!?!](https://dangitgit.com/) + website by Katie Sylor-Miller, + first mentioned in [Git Rev News Edition #19](https://git.github.io/rev_news/2016/09/14/edition-19/). ++ [GIT.WTF!?!](https://git.wtf/) is a website with articles in which you can + find solutions to your Git problems, + along with tips & tricks to improve your Git workflows. ++ [GITHUB2FORGEJO](https://github.com/PatNei/GITHUB2FORGEJO) + is a Bash script for migrating all repositories from a GitHub user account + to a specified Forgejo instance. It supports mirroring or one-time cloning + and includes a cleanup feature for removing repositories on Forgejo + that no longer exist on GitHub. + Under GPL 3.0 license.
+ Based on [GitHub2Forgejo](https://github.com/RGBCube/GitHub2Forgejo) + Nushell script, also under GPL 3.0 license. + + [Forgejo](https://forgejo.org/) is a self-hosted lightweight software forge, + which started as a “soft” fork of Gitea (itself a fork of Gogs), + and was first mentioned in passing in [Git Rev News Edition #103](https://git.github.io/rev_news/2023/09/30/edition-103/). ++ [git-revise](https://git-revise.readthedocs.io/) is a Git subcommand, and Python library + for efficiently updating, splitting, and rearranging commits. + Under MIT License.
+ The [Introducing git-revise](https://mystor.github.io/git-revise.html) + blog post was mentioned in [Git Rev News Edition #54](https://git.github.io/rev_news/2019/08/21/edition-54/). ++ [git-tools](https://github.com/cfe84/git-tools) is a set of additional Git commands + to help you make crazy stuff in a very unsafe way. + Includes `git backup`, `git move-branch`, `git reparent` (similar to `git rebase --onto`), + `git split`, `git bookmark`, `git newbranch`, and `git get`. + Written in Go, under GPL 2.0 license. ++ [git-fetch-file](https://github.com/andrewmcwattersandco/git-fetch-file) is a utility + for importing specific files from other Git repositories into your own project + while keeping a manifest (`.git-remote-files`) that remembers where they came from + and what commit they belong to. + Written in Python, under GPL 2.0 license. ++ [git-word-blame](https://framagit.org/mdamien/git-word-blame) + is a tool that shows word-by-word authors of a file, creating TSV and HTML files. + Written in Python, under GPL 3.0 license. + The README includes links to a few alternative tools in "See also" section. ++ [gguser](https://github.com/withshubh/gguser) is a CLI tool + to easily switch between different Git user profiles. + It simplifies managing multiple GitHub or GitLab accounts + by allowing users to switch between profiles effortlessly. + Written in JavaScript for Node.js (npm), under Apache 2.0 License. ++ [GitLabForm](https://gitlabform.github.io/gitlabform/) is a specialized configuration-as-code tool + for GitLab's application settings, groups, projects, and more, + using hierarchical configuration written in YAML. + Written in Python, under MIT license.
+ See [GitlabForm for Gitlab repository automation](https://www.mikestreety.co.uk/blog/gitlabform-for-gitlab-repository-automation/) + blog post by Mike Street on his blog. ++ [gmap](https://github.com/seeyebe/gmap) is a fast command-line tool + (with terminal interface) to explore Git activity - heatmaps, churn, authorship, and more. + It helps you understand your Git repository at a glance - not just what changed, + but when, how much, and by whom. + Written in Rust, under MIT license. ++ [Ayllu](https://ayllu-forge.org/) is a code forge optimized for single instance deployments. + It is still a work in progress. Written in Rust, under AGPL license. + ## Releases From c12bf52506a7fa30fc31ac41e855953e74455d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 1 Sep 2025 02:51:29 +0200 Subject: [PATCH 263/336] rn-126: Add links to patch-hub and kw/kworkflow from @lucasoshiro --- rev_news/drafts/edition-126.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 1399ba2f9..4880ce846 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -528,6 +528,13 @@ __Git tools and sites__ This tool is written to make it easier to participate in a patch-based workflows, like those used in the Linux kernel development. First mentioned in [Git Rev News Edition #61](https://git.github.io/rev_news/2020/03/25/edition-61/). ++ [patch-hub](https://github.com/kworkflow/patch-hub/tree/unstable) is a TUI tool + that streamlines the interaction of Linux developers + with patches archived on [lore.kernel.org](https://lore.kernel.org/). + Written in Rust, under GPL 2.0 license.
+ It is a spin-off of [kw](https://github.com/kworkflow/kworkflow), + a tool for helping Linux kernel developers in everyday tasks + (which is written in shell, and is under GPL 2.0 license). + [GitGenius](https://selvaneyas.github.io/gitgenius) is a smart and simple CLI tool that explains Git errors in plain English and helps you fix them quickly. Written in Python, under MIT license. From 330f9abc3bbf00450c5821686106761d185efa33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 1 Sep 2025 02:54:23 +0200 Subject: [PATCH 264/336] rn-126: Add link to DiffMem from @lucasoshiro --- rev_news/drafts/edition-126.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 4880ce846..837fbace1 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -596,6 +596,13 @@ __Git tools and sites__ Written in Rust, under MIT license. + [Ayllu](https://ayllu-forge.org/) is a code forge optimized for single instance deployments. It is still a work in progress. Written in Rust, under AGPL license. ++ [DiffMem](https://github.com/Growth-Kinetics/DiffMem) is a lightweight, + git-based memory backend designed for AI agents and conversational systems. + It uses Markdown files for human-readable storage, + Git for tracking temporal evolution through differentials, + and an in-memory BM25 index for fast, explainable retrieval. + This project is a proof-of-concept (PoC). + Written in Python, no license (!). ## Releases From a741cdd3000b4ebe990d3b81f976ba1bce360c6a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 1 Sep 2025 12:26:24 +0530 Subject: [PATCH 265/336] rn-126: fix some formatting issues in the interview --- rev_news/drafts/edition-126.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 837fbace1..22b71a6e1 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -153,8 +153,8 @@ welcome your thoughts and feedback!_ wizardry. These days, some say I’m a wizard, others say I’m a maestro, but I’m just a humble guy who enjoys learning and sharing knowledge. -* How do you feel your contribution has impacted the Git community - or the broader open source ecosystem? +* **How do you feel your contribution has impacted the Git community + or the broader open source ecosystem?** My contribution to Git, which was modernizing its homegrown unit testing framework to use Clar, has helped improve Git’s testing @@ -257,7 +257,7 @@ welcome your thoughts and feedback!_ * **Have you thought about mentoring new GSoC / Outreachy students?** -Yes, I hope to mentor future Outreachy interns if the opportunity arise. + Yes, I hope to mentor future Outreachy interns if the opportunity arise. * **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?** From 408a216d4428efeb77faf6390f3cca298b4f29b3 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 2 Sep 2025 10:36:54 +0200 Subject: [PATCH 266/336] rn-126: Supplied some tiny fixes and rephrasings; merged MR #794. Please scrutinize. --- rev_news/drafts/edition-126.md | 91 ++++++++++++++++++---------------- 1 file changed, 47 insertions(+), 44 deletions(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 22b71a6e1..ceada3313 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -28,7 +28,7 @@ This edition covers what happened during the months of July and August 2025. ### Support -* [[BUG] git pull ignores pull.autostash=true configuration when used with --git-dir and --work-tree flags on a bare repository](https://lore.kernel.org/git/010001980c1ee007-2797fc86-fdf3-46e9-bec9-f8da2c9ebb8d-000000@email.amazonses.com/) +* [[BUG] `git pull` ignores `pull.autostash=true` configuration when used with `--git-dir` and `--work-tree` flags on a bare repository](https://lore.kernel.org/git/010001980c1ee007-2797fc86-fdf3-46e9-bec9-f8da2c9ebb8d-000000@email.amazonses.com/) Bryan Lee posted a bug report about the `pull.autostash` configuration variable being ignored in a repository used to manage @@ -49,8 +49,8 @@ This edition covers what happened during the months of July and August 2025. `--work-tree` flags. He suggested setting `rebase.autostash` instead of `pull.autostash` to `true` though. - Bryan Lee thanked Lidong saying that `pull.autostash` is not a Git - configuration option and that `rebase.autostash` does work for + Bryan Lee thanked Lidong saying that `pull.autostash` was not a Git + configuration option and that `rebase.autostash` did work for rebase operations. But he raised the issue that Git silently accepts invalid configuration keys without any warning, which can cause users to waste a lot of time debugging. @@ -97,7 +97,7 @@ This edition covers what happened during the months of July and August 2025. discussion. Some tests were added. The logic was updated to fall back to either `rebase.autostash` or `merge.autostash` depending on whether the pull performed a rebase or a merge. The order of - precedence was also clarified: `pull.autostash` now overrode the + precedence was also clarified: `pull.autostash` now overrides the more general `rebase.autostash` and `merge.autostash` settings. Finally, the documentation was updated with more precise explanations. @@ -144,7 +144,7 @@ welcome your thoughts and feedback!_ `git clone`, `git add .`, and `git commit -m ""`, and I was living life with just those. I remember during my 12-month software engineering bootcamp, I helped some of my colleagues with Git because - I had this so-called “prior knowledge” and for a while, I was treated + I had this so-called “prior knowledge”, and for a while, I was treated like a genius, at least until they caught up! So when I saw Git on the list of Outreachy projects, I knew right away @@ -335,7 +335,7 @@ __Various__ + [What’s new in Git 2.51.0?](https://about.gitlab.com/blog/what-s-new-in-git-2-51-0/) by Karthik Nayak on GitLab Blog. It describes performance optimizations - for `git push` and `git fetch` (most significant when using "reftable" + for `git push` and `git fetch` (most significant when using the "reftable" backend for references), further plans for Git 3.0 (which can be found in the [BreakingChanges document](https://gitlab.com/gitlab-org/git/-/blob/master/Documentation/BreakingChanges.adoc)), semi-removal of `git whatchanged` (still available with `--i-still-use-this` flag), and marking @@ -345,7 +345,7 @@ __Various__ + [Highlights from Git 2.51](https://github.blog/open-source/git/highlights-from-git-2-51/) by Taylor Blau on GitHub Blog. It describes cruft-free multi-pack indexes (which currently require setting a new `repack.MIDXMustContainCruft` config option), - smaller packs with "path walk" method of collecting objects when repacking + smaller packs with a "path walk" method of collecting objects when repacking (which you can try out with the new `--path-walk` command-line option), a variant of the internal stash representation that can be used for stash interchange (with new `export` and `import` commands for `git stash`), etc. @@ -372,33 +372,33 @@ __Light reading__ + [The future of large files in Git is Git](https://tylercipriani.com/blog/2025/08/15/git-lfs/) by Tyler Cipriani on his blog. It describes how can one use partial clone today (and large object promisors in the future, - which are work in progress), instead of using [Git LFS](https://git-lfs.com/) + which are work in progress) instead of using [Git LFS](https://git-lfs.com/) or similar solutions like [git-annex](https://git-annex.branchable.com/) - (or no longer actively developed solutions like git-media and git-fat), + (or no longer actively developed solutions like git-media and git-fat) or [DVC](https://dvc.org/) (Data Version Control). + [Code Review Can Be Better](https://tigerbeetle.com/blog/2025-08-04-code-review-can-be-better/) (than GitHub's default code review process) by matklad (Alex Kladov) on the TigerBeetle blog.
Mentions their [`git-review`](https://github.com/tigerbeetle/tigerbeetle/pull/2732) - work-in-progress tool, and also + work-in-progress tool, and also the + [Fossil](https://fossil-scm.org/) version control system with built-in project management - (first mentioned in [Git Rev News Edition #11](https://git.github.io/rev_news/2016/01/13/edition-11/)), + (first mentioned in [Git Rev News Edition #11](https://git.github.io/rev_news/2016/01/13/edition-11/)), the + [NoteDb](https://gerrit-review.googlesource.com/Documentation/note-db.html) backend for [Gerrit](https://www.gerritcodereview.com/) - which allows storing review state in Git, - (NoteDb was first mentioned in [Git Rev News Edition #40](https://git.github.io/rev_news/2018/06/20/edition-40/)), - + [git-bug](https://github.com/git-bug/git-bug) tool that uses git to store information about issues / bugs - (first mentioned in [Git Rev News Edition #43](https://git.github.io/rev_news/2018/09/19/edition-43/)), - + [git-appraise](https://github.com/google/git-appraise) tool that uses git to store information about reviews - (first mentioned in [Git Rev News Edition #11](https://git.github.io/rev_news/2016/01/13/edition-11/)), - + [prr](https://doc.dxuuu.xyz/prr/index.html) ('pull request review') tool that brings mailing list style code reviews to Github PRs - (mentioned in [Git Rev News Edition #90](https://git.github.io/rev_news/2022/08/31/edition-90/)), - + [git-pr](https://pr.pico.sh/) project that leverages git native features to replace the entire pull request workflow, - (mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/)), and + (NoteDb was first mentioned in [Git Rev News Edition #40](https://git.github.io/rev_news/2018/06/20/edition-40/)), the + + [git-bug](https://github.com/git-bug/git-bug) tool that uses Git to store information about issues / bugs + (first mentioned in [Git Rev News Edition #43](https://git.github.io/rev_news/2018/09/19/edition-43/)), the + + [git-appraise](https://github.com/google/git-appraise) tool that uses Git to store information about reviews + (first mentioned in [Git Rev News Edition #11](https://git.github.io/rev_news/2016/01/13/edition-11/)), the + + [prr](https://doc.dxuuu.xyz/prr/index.html) ('pull request review') tool that brings mailing list style code reviews to GitHub PRs + (mentioned in [Git Rev News Edition #90](https://git.github.io/rev_news/2022/08/31/edition-90/)), the + + [git-pr](https://pr.pico.sh/) project that leverages Git native features to replace the entire pull request workflow, + (mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/)), and the + [How Jane Street Does Code Review](https://www.janestreet.com/tech-talks/janestreet-code-review/) article by Ian Henry on Jane Street Tech Talks site. + [Jujutsu + Radicle = ❤️](https://radicle.xyz/2025/08/14/jujutsu-with-radicle) - by fintohaps on Radicle Blog, describing how the author use Jujutsu in tandem with Radicle. - + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/) is a Git-compatibile version control system + by fintohaps on Radicle Blog, describing how the author uses Jujutsu in tandem with Radicle. + + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/) is a Git-compatible version control system written in Rust, and was first mentioned in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). + [Radicle](https://radicle.xyz/), a peer-to-peer, local-first code collaboration stack built on Git, @@ -411,7 +411,7 @@ __Light reading__ First mentioned in [the previous edition of Git Rev News](https://git.github.io/rev_news/2025/07/31/edition-125/). + Compare [Using Radicle CI for Development](https://radicle.xyz/2025/07/23/using-radicle-ci-for-development) article by Lars Wirzenius, also mentioned in [Git Rev News #125](https://git.github.io/rev_news/2025/07/31/edition-125/). - [Radicle](https://radicle.xyz/) is another distributed git hosting system, + [Radicle](https://radicle.xyz/) is another distributed Git hosting system, first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). + [How we used Radicle with GitHub Actions](https://radicle.xyz/2025/05/30/radicle-with-github-actions): Quick guide to trying Radicle without dropping GitHub or whatever CI you’re using. @@ -423,16 +423,16 @@ __Light reading__ + [I'll think twice before using Github Actions again](https://ninkovic.dev/blog/2025/think-twice-before-using-github-actions) by Nemanja Ninković on their blog. + [Git without a forge](https://www.chiark.greenend.org.uk/~sgtatham/quasiblog/git-no-forge/) - by Simon Tatham on his quasiblog, describing how to interact with a bare git repo, - and explaining why he personally does not use any of Git forges. + by Simon Tatham on his quasiblog, describing how to interact with a bare Git repo, + and explaining why he personally does not use any of the Git forges. + [How I Cleaned Up My Git History Like a Boss (a.k.a. Fixing Wrong Author Emails)](https://dev.to/emrahg/how-i-cleaned-up-my-git-history-like-a-boss-aka-fixing-wrong-author-emails-19lb) - by Emrah G. on DEV\.to. The solution uses (deprecated) `git filter-branch` tool; + by Emrah G. on DEV\.to. The solution uses the (deprecated) `git filter-branch` tool; the recommended replacement is [`git filter-repo`](https://github.com/newren/git-filter-repo). Also, you can correct the _visible_ e-mail with the [`.mailmap`](https://git-scm.com/docs/gitmailmap) file (changing what Git shows, without having to rewrite history). + [Revolutionizing Git Workflows: The MCP Git Commit Generator](https://www.bampouris.eu/blog/mcp-git-commit-generator/) by Theoklitos Bampouris on his blog (and also [on DEV\.to](https://dev.to/theoklitosbam7/revolutionizing-git-workflows-the-mcp-git-commit-generator-530m)), - about using Agentic AI and LLM chatbot, + about using Agentic AI and an LLM chatbot, leveraging the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction). The generated commit message will follow [Conventional Commits](https://www.conventionalcommits.org/) conventions.
Note: please read the proposed commit message before accepting it, @@ -440,15 +440,15 @@ __Light reading__ from changes and from an issue tracker, they cannot write whys of the change; they cannot access your thoughts. + [Git Rev News Edition #97](https://git.github.io/rev_news/2023/03/31/edition-97/) - lists a few other tools that use GPT-3 / ChatGPT Large Language Model (LLM) + lists a few other tools that use the GPT-3 / ChatGPT Large Language Model (LLM) to help write commit messages. + [Better git status](https://purpleidea.com/blog/2025/08/04/better-git-status/) - by James (@purpleidea) on his blog. He uses git alias which examines - the terminal width, and uses `git status --column=nodense` if terminal is wide enough. + by James (@purpleidea) on his blog. He uses `git alias` which examines + the terminal width, and then `git status --column=nodense` if the terminal is wide enough. + [Some Pretty Cool Git Tools To Save Your Sanity](https://fev.al/posts/git-tools/) by Charles Féval on his blog. Mentions `git revise` for splitting pull requests (PRs), - and own `git backup`, `git reparent`, `git split`, `git move-branch`, and `git bookmark`. + and own `git backup`, `git reparent`, `git split`, `git move-branch`, and `git bookmark` commands. + [Using Git worktrees for development](https://blog.kulman.sk/git-worktree/) by Igor Kulman on his blog. + [Curing A Case Of Git-UX](https://oppi.li/posts/curing_a_case_of_git-UX/) @@ -459,8 +459,8 @@ __Light reading__ + See also [Improving shell workflows with fzf](https://seb.jambor.dev/posts/improving-shell-workflows-with-fzf/), mentioned in [Git Rev News Edition #74](https://git.github.io/rev_news/2021/04/30/edition-74/). + [Making my GitHub heatmap widget](https://leanrada.com/notes/github-heatmap-widget/) - Lean Rada on their blog. The created tool scrapes an HTML partial, and reformats it, - but is constructed in such way that it could have consume JSON from GitHub API instead. + Lean Rada on their blog. The created tool scrapes an HTML input partially and reformats it, + but is constructed in such way that it could have consumed JSON from GitHub API instead. + [TryHackMe - Git Happens](https://jacen.moe/blog/20250805-tryhackme-git-happens/) by Jacen Sekai on his blog, about [Git Happens](https://tryhackme.com/room/githappens): an easy-ranked box on [TryHackMe](https://tryhackme.com/), website for @@ -469,6 +469,8 @@ __Light reading__ by Sean Gillespie on his misguided thoughts blog. + You can find a definition of "monorepo" and a list of various tools on the [Monorepo.tools](https://monorepo.tools/) site, which was first mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [Git Branching Explained: Base, Topic, and Parent Branches](https://www.git-tower.com/blog/base-topic-parent-branches) + by Bruno Brito on Tower Blog. + [Git and jujutsu: in miniature](https://lottia.net/notes/0013-git-jujutsu-miniature.html) by Charlotte (lottia) on her blog (2024). + [Git Interactive Rebase TODO Order is Wrong](https://salferrarello.com/git-interactive-rebase-order-is-wrong/) @@ -476,11 +478,11 @@ __Light reading__ with latest commits appearing on the top.
The author even wrote a Vim plugin, [Interactive Rebase Reverse Vim](https://github.com/salcode/vim-interactive-rebase-reverse), - to reverse the order of the commits in an interactive git rebase. + to reverse the order of the commits in an interactive `git rebase`. + [Every line of code is always documented](https://mislav.net/2014/02/hidden-documentation/) by Mislav Marohnić on his blog (2014). The article describes how to extract information about code snippet from project history using `git blame`, - 'pickaxe' search with `git log -S`, and + 'pickaxe' search with `git log -S`, and a [git-churn](https://github.com/garybernhardt/dotfiles/blob/f0c0ff92209e5aed4fa3ef6faf056eb9944a8f12/bin/git-churn) script, and how to stay on the right side of history (among others, to be able to use this technique effectively). @@ -498,15 +500,15 @@ __Git tools and sites__ It helps developers test their workflows directly on their machines before pushing changes to GitHub. Written in Rust, under MIT license. - + Compare with [Act](https://github.com/nektos/act) command line tool + + Compare with the [Act](https://github.com/nektos/act) command line tool to run your GitHub Actions locally, using the Docker Engine API. Written in Go, under MIT license. Mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/). + [Setup DVC Action](https://github.com/marketplace/actions/setup-dvc-data-version-control) by Iterative is a JavaScript action that can be used as a step in GitHub Actions.
[DVC](https://dvc.org) (Data Version Control) was first mentioned - in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/), - and many times since (most recent in [Edition #116](https://git.github.io/rev_news/2024/10/31/edition-116/)). + in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/) + and many times since (most recently in [Edition #116](https://git.github.io/rev_news/2024/10/31/edition-116/)). + [Lappverk](https://codeberg.org/natkr/lappverk/) is a tool for modifying other people's software. It works by keeping a series of `.patch` files as its source of truth (like [quilt](https://savannah.nongnu.org/projects/quilt)), @@ -559,7 +561,7 @@ __Git tools and sites__ + [Forgejo](https://forgejo.org/) is a self-hosted lightweight software forge, which started as a “soft” fork of Gitea (itself a fork of Gogs), and was first mentioned in passing in [Git Rev News Edition #103](https://git.github.io/rev_news/2023/09/30/edition-103/). -+ [git-revise](https://git-revise.readthedocs.io/) is a Git subcommand, and Python library ++ [git-revise](https://git-revise.readthedocs.io/) is a Git subcommand and Python library for efficiently updating, splitting, and rearranging commits. Under MIT License.
The [Introducing git-revise](https://mystor.github.io/git-revise.html) @@ -570,7 +572,7 @@ __Git tools and sites__ `git split`, `git bookmark`, `git newbranch`, and `git get`. Written in Go, under GPL 2.0 license. + [git-fetch-file](https://github.com/andrewmcwattersandco/git-fetch-file) is a utility - for importing specific files from other Git repositories into your own project + for importing specific files from other Git repositories into your own project, while keeping a manifest (`.git-remote-files`) that remembers where they came from and what commit they belong to. Written in Python, under GPL 2.0 license. @@ -578,7 +580,7 @@ __Git tools and sites__ is a tool that shows word-by-word authors of a file, creating TSV and HTML files. Written in Python, under GPL 3.0 license. The README includes links to a few alternative tools in "See also" section. -+ [gguser](https://github.com/withshubh/gguser) is a CLI tool ++ [`gguser`](https://github.com/withshubh/gguser) is a CLI tool to easily switch between different Git user profiles. It simplifies managing multiple GitHub or GitLab accounts by allowing users to switch between profiles effortlessly. @@ -589,7 +591,7 @@ __Git tools and sites__ Written in Python, under MIT license.
See [GitlabForm for Gitlab repository automation](https://www.mikestreety.co.uk/blog/gitlabform-for-gitlab-repository-automation/) blog post by Mike Street on his blog. -+ [gmap](https://github.com/seeyebe/gmap) is a fast command-line tool ++ [`gmap`](https://github.com/seeyebe/gmap) is a fast command-line tool (with terminal interface) to explore Git activity - heatmaps, churn, authorship, and more. It helps you understand your Git repository at a glance - not just what changed, but when, how much, and by whom. @@ -597,7 +599,7 @@ __Git tools and sites__ + [Ayllu](https://ayllu-forge.org/) is a code forge optimized for single instance deployments. It is still a work in progress. Written in Rust, under AGPL license. + [DiffMem](https://github.com/Growth-Kinetics/DiffMem) is a lightweight, - git-based memory backend designed for AI agents and conversational systems. + Git-based memory backend designed for AI agents and conversational systems. It uses Markdown files for human-readable storage, Git for tracking temporal evolution through differentials, and an in-memory BM25 index for fast, explainable retrieval. @@ -632,6 +634,7 @@ __Git tools and sites__ + GitButler [0.15.16](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.15.16), [0.15.15](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.15.15) + Sublime Merge [Build 2112](https://www.sublimemerge.com/download) ++ Tower for Mac [14](https://www.git-tower.com/blog/tower-mac-14) ([YouTube video](https://youtu.be/WYhtxBAzOB0)) ## Credits @@ -640,4 +643,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Seyi Kuforiji. +with help from Seyi Kuforiji and Bruno Brito. From 1d5998d5e11e0fedccf3694988efc58287653f56 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 2 Sep 2025 13:04:38 +0200 Subject: [PATCH 267/336] rn-126: add Kinetic Merge release --- rev_news/drafts/edition-126.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index ceada3313..09cf0511d 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -635,6 +635,7 @@ __Git tools and sites__ [0.15.15](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.15.15) + Sublime Merge [Build 2112](https://www.sublimemerge.com/download) + Tower for Mac [14](https://www.git-tower.com/blog/tower-mac-14) ([YouTube video](https://youtu.be/WYhtxBAzOB0)) ++ Kinetic Merge [1.9.0](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.9.0) ## Credits From 5f621a6c02143035696c8089a301ff9fa8334c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20N=C4=9Bmec?= Date: Tue, 2 Sep 2025 13:32:03 +0200 Subject: [PATCH 268/336] rn-126: minor copy edit Two changes which might warrant explanation: 1. 'misguided thoughts' is the title of Sean Gillespie's blog, but its lowercase spelling gives opportunity for the sentence to be misunderstood as editorial commentary (unlikely, granted, but gives the reader unnecessary pause); another option I considered was adding quotes or linkification, but saying just "on his blog" seems perfectly sufficient and clear. 2. Add quotes around a part of the git-tools description to indicate that "help you make crazy stuff in a very unsafe way" is a direct quote of the tool author's description. Otherwise I feel that this, too, will give the reader pause, as it provides almost no information, in contrast with what we usually try to achieve with descriptions. --- rev_news/drafts/edition-126.md | 36 +++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index 09cf0511d..c2ffc0a79 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -257,7 +257,7 @@ welcome your thoughts and feedback!_ * **Have you thought about mentoring new GSoC / Outreachy students?** - Yes, I hope to mentor future Outreachy interns if the opportunity arise. + Yes, I hope to mentor future Outreachy interns if the opportunity arises. * **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?** @@ -281,7 +281,7 @@ welcome your thoughts and feedback!_ * **What is your favorite Git-related tool/library, outside of Git itself?** - GitHub and GitLab + GitHub and GitLab. * **What is your toolbox for interacting with the mailing list and for development of Git?** @@ -370,7 +370,7 @@ __Various__ __Light reading__ + [The future of large files in Git is Git](https://tylercipriani.com/blog/2025/08/15/git-lfs/) - by Tyler Cipriani on his blog. It describes how can one use + by Tyler Cipriani on his blog. It describes how one can use partial clone today (and large object promisors in the future, which are work in progress) instead of using [Git LFS](https://git-lfs.com/) or similar solutions like [git-annex](https://git-annex.branchable.com/) @@ -404,12 +404,12 @@ __Light reading__ + [Radicle](https://radicle.xyz/), a peer-to-peer, local-first code collaboration stack built on Git, was first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). + [introducing spindle](https://blog.tangled.sh/ci) by Anirudh & Akshay on Tangled blog; - spindle is Tangled’s new CI runner built atop Nix and AT Protocol. + spindle is Tangled’s new CI runner built atop Nix and the AT Protocol. + [Tangled.sh](https://blog.tangled.sh/intro) is a new social-enabled Git collaboration platform - build on top of AT Protocol (which is behind [BlueSky](https://bsky.app/) + built on top of the AT Protocol (which is behind [BlueSky](https://bsky.app/) microblogging federated social media service). First mentioned in [the previous edition of Git Rev News](https://git.github.io/rev_news/2025/07/31/edition-125/). - + Compare [Using Radicle CI for Development](https://radicle.xyz/2025/07/23/using-radicle-ci-for-development) + + Compare the [Using Radicle CI for Development](https://radicle.xyz/2025/07/23/using-radicle-ci-for-development) article by Lars Wirzenius, also mentioned in [Git Rev News #125](https://git.github.io/rev_news/2025/07/31/edition-125/). [Radicle](https://radicle.xyz/) is another distributed Git hosting system, first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). @@ -448,7 +448,7 @@ __Light reading__ + [Some Pretty Cool Git Tools To Save Your Sanity](https://fev.al/posts/git-tools/) by Charles Féval on his blog. Mentions `git revise` for splitting pull requests (PRs), - and own `git backup`, `git reparent`, `git split`, `git move-branch`, and `git bookmark` commands. + and custom `git backup`, `git reparent`, `git split`, `git move-branch`, and `git bookmark` commands. + [Using Git worktrees for development](https://blog.kulman.sk/git-worktree/) by Igor Kulman on his blog. + [Curing A Case Of Git-UX](https://oppi.li/posts/curing_a_case_of_git-UX/) @@ -458,15 +458,15 @@ __Light reading__ and shell functions. + See also [Improving shell workflows with fzf](https://seb.jambor.dev/posts/improving-shell-workflows-with-fzf/), mentioned in [Git Rev News Edition #74](https://git.github.io/rev_news/2021/04/30/edition-74/). -+ [Making my GitHub heatmap widget](https://leanrada.com/notes/github-heatmap-widget/) - Lean Rada on their blog. The created tool scrapes an HTML input partially and reformats it, - but is constructed in such way that it could have consumed JSON from GitHub API instead. ++ [Making my GitHub heatmap widget](https://leanrada.com/notes/github-heatmap-widget/) by + Lean Rada on their blog. The created tool partially scrapes and reformats HTML input, + but is constructed in such way that it could consume JSON from GitHub API instead. + [TryHackMe - Git Happens](https://jacen.moe/blog/20250805-tryhackme-git-happens/) by Jacen Sekai on his blog, about [Git Happens](https://tryhackme.com/room/githappens): an easy-ranked box on [TryHackMe](https://tryhackme.com/), website for hands-on cyber security training through real-world scenarios. + [The Ingredients of a Productive Monorepo](https://blog.swgillespie.me/posts/monorepo-ingredients/) - by Sean Gillespie on his misguided thoughts blog. + by Sean Gillespie on his blog. + You can find a definition of "monorepo" and a list of various tools on the [Monorepo.tools](https://monorepo.tools/) site, which was first mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). + [Git Branching Explained: Base, Topic, and Parent Branches](https://www.git-tower.com/blog/base-topic-parent-branches) @@ -481,7 +481,7 @@ __Light reading__ to reverse the order of the commits in an interactive `git rebase`. + [Every line of code is always documented](https://mislav.net/2014/02/hidden-documentation/) by Mislav Marohnić on his blog (2014). The article describes how to - extract information about code snippet from project history using `git blame`, + extract information about a code snippet from project history using `git blame`, 'pickaxe' search with `git log -S`, and a [git-churn](https://github.com/garybernhardt/dotfiles/blob/f0c0ff92209e5aed4fa3ef6faf056eb9944a8f12/bin/git-churn) script, and how to stay on the right side of history @@ -517,17 +517,17 @@ __Git tools and sites__ Written in Rust, under Apache 2.0 License. Started out as Patchable internal tool.
You might also be interested in reading the announcement blog post: - [Modifying Other People's Software]() + [Modifying Other People's Software](https://natkr.com/2025-08-14-modifying-other-peoples-software/) by Natalie Klestrup Röijezon (natkr) on natkr's ramblings. + Compare [patchwork](http://jk.ozlabs.org/projects/patchwork/) - a web-based patch tracking system - designed to facilitate the contribution and management of contributions to an open-source project, + designed to facilitate contribution and management of contributions to an open-source project, first mentioned in [Git Rev News Edition #20](https://git.github.io/rev_news/2016/10/19/edition-20/). + Compare [Stacked Git (StGit)](https://stacked-git.github.io/), an application for managing Git commits as a stack of patches, first mentioned in [Git Rev News Edition #17](https://git.github.io/rev_news/2016/07/20/edition-17/). + Compare [B4 Tools](https://github.com/mricon/b4), a helper utility to work with patches made available via a [public-inbox](https://public-inbox.org/README.html) archive like [lore.kernel.org](https://lore.kernel.org/). - This tool is written to make it easier to participate in a patch-based workflows, + This tool is written to make it easier to participate in patch-based workflows, like those used in the Linux kernel development. First mentioned in [Git Rev News Edition #61](https://git.github.io/rev_news/2020/03/25/edition-61/). + [patch-hub](https://github.com/kworkflow/patch-hub/tree/unstable) is a TUI tool @@ -567,7 +567,7 @@ __Git tools and sites__ The [Introducing git-revise](https://mystor.github.io/git-revise.html) blog post was mentioned in [Git Rev News Edition #54](https://git.github.io/rev_news/2019/08/21/edition-54/). + [git-tools](https://github.com/cfe84/git-tools) is a set of additional Git commands - to help you make crazy stuff in a very unsafe way. + to "help you make crazy stuff in a very unsafe way". Includes `git backup`, `git move-branch`, `git reparent` (similar to `git rebase --onto`), `git split`, `git bookmark`, `git newbranch`, and `git get`. Written in Go, under GPL 2.0 license. @@ -579,7 +579,7 @@ __Git tools and sites__ + [git-word-blame](https://framagit.org/mdamien/git-word-blame) is a tool that shows word-by-word authors of a file, creating TSV and HTML files. Written in Python, under GPL 3.0 license. - The README includes links to a few alternative tools in "See also" section. + The README includes links to a few alternative tools in the "See also" section. + [`gguser`](https://github.com/withshubh/gguser) is a CLI tool to easily switch between different Git user profiles. It simplifies managing multiple GitHub or GitLab accounts @@ -589,7 +589,7 @@ __Git tools and sites__ for GitLab's application settings, groups, projects, and more, using hierarchical configuration written in YAML. Written in Python, under MIT license.
- See [GitlabForm for Gitlab repository automation](https://www.mikestreety.co.uk/blog/gitlabform-for-gitlab-repository-automation/) + See the [GitlabForm for Gitlab repository automation](https://www.mikestreety.co.uk/blog/gitlabform-for-gitlab-repository-automation/) blog post by Mike Street on his blog. + [`gmap`](https://github.com/seeyebe/gmap) is a fast command-line tool (with terminal interface) to explore Git activity - heatmaps, churn, authorship, and more. From 80db241f220a0e72cc48b1954c85de2cc04b66f1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 2 Sep 2025 18:07:24 +0200 Subject: [PATCH 269/336] =?UTF-8?q?rn-126:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=C4=9Bmec=20among=20the=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rev_news/drafts/edition-126.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index c2ffc0a79..bb561035f 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -644,4 +644,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Seyi Kuforiji and Bruno Brito. +with help from Štěpán Němec, Seyi Kuforiji and Bruno Brito. From 45d00d6fb9494e79680e6b2f1324ce2aba35d0ad Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 2 Sep 2025 18:09:00 +0200 Subject: [PATCH 270/336] rn-126: add Gerard Murphy among the helpers --- rev_news/drafts/edition-126.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-126.md b/rev_news/drafts/edition-126.md index bb561035f..2645376d9 100644 --- a/rev_news/drafts/edition-126.md +++ b/rev_news/drafts/edition-126.md @@ -644,4 +644,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Štěpán Němec, Seyi Kuforiji and Bruno Brito. +with help from Štěpán Němec, Gerard Murphy, +Seyi Kuforiji and Bruno Brito. From 5a617769ef4582e27f57ec335392e9838e2a3a3e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 2 Sep 2025 21:08:44 +0200 Subject: [PATCH 271/336] Publish rn-126 in _posts/ --- .../edition-126.md => _posts/2025-08-31-edition-126.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-126.md => _posts/2025-08-31-edition-126.markdown (100%) diff --git a/rev_news/drafts/edition-126.md b/_posts/2025-08-31-edition-126.markdown similarity index 100% rename from rev_news/drafts/edition-126.md rename to _posts/2025-08-31-edition-126.markdown From b023148274cb4dbd06a82cf5c53bb7aa0a0b6c83 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 2 Sep 2025 21:08:44 +0200 Subject: [PATCH 272/336] Add draft for rn-127 --- rev_news/drafts/edition-127.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-127.md diff --git a/rev_news/drafts/edition-127.md b/rev_news/drafts/edition-127.md new file mode 100644 index 000000000..c4615b51b --- /dev/null +++ b/rev_news/drafts/edition-127.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 127 (September 30th, 2025) +layout: default +date: 2025-09-30 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 127 (September 30th, 2025) + +Welcome to the 127th 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 August and September 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 951c0ba52ce2cc14e74ac5e88d21fafa344174ba Mon Sep 17 00:00:00 2001 From: Gerard Murphy Date: Wed, 3 Sep 2025 10:08:55 +0100 Subject: [PATCH 273/336] 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 274/336] 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 6e4354bd36b91e986412603c67c5ae56bf13bb81 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 13 Sep 2025 00:54:37 +0530 Subject: [PATCH 275/336] gsoc-participants: add partial 2025 participant information We'll need to wait until program is actually complete to include archive links. --- GSoC-Participants.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/GSoC-Participants.md b/GSoC-Participants.md index df82c0b85..f3c372d6c 100644 --- a/GSoC-Participants.md +++ b/GSoC-Participants.md @@ -8,6 +8,17 @@ to Git via GSoC. +### 2025 + +1. Ayush Chandekar [ [project](TODO) ] [ [final report](https://ayu-ch.github.io/2025/08/29/gsoc-final-report.html) ] [ [blog](https://ayu-ch.github.io/) ] +2. Meet Soni [ [project](TODO) ] [ [final report](TODO) ] [ [blog](https://inosmeet.github.io/posts/gsoc25/) ] +3. Lucas Seiki Oshiro [ [project](TODO) ] [ [final report](https://lucasoshiro.github.io/gsoc-en/#final-report) ] [ [blog](https://lucasoshiro.github.io/gsoc-en/#weeks) ] + +#### References + +- [GSoC archive](TODO) +- [Rev News article](https://git.github.io/rev_news/2025/05/31/edition-123/) + ### 2024 1. Jialuo She [ [project](https://summerofcode.withgoogle.com/archive/2024/projects/ukm4PTEF) ] [ [final report](https://luolibrary.com/2024/08/25/GSoC-Final-Report/) ] [ [blog](https://luolibrary.com/) ] From 19b27823530b94da45ccf051727d27165a5d8402 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Mon, 22 Sep 2025 16:55:18 +0100 Subject: [PATCH 276/336] 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 277/336] 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 278/336] 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 279/336] 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 280/336] 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 281/336] 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 282/336] 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 283/336] 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 284/336] 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 285/336] 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 286/336] 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 287/336] 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 288/336] 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 289/336] 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 290/336] 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 291/336] 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 292/336] 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 293/336] 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 667d0ecab4ab0f739ef77ccd69ac5b249108dc50 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 3 Oct 2025 12:25:11 +0530 Subject: [PATCH 294/336] GSoC-particpants: include meet's final report --- GSoC-Participants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GSoC-Participants.md b/GSoC-Participants.md index f3c372d6c..66dae2c80 100644 --- a/GSoC-Participants.md +++ b/GSoC-Participants.md @@ -11,7 +11,7 @@ to Git via GSoC. ### 2025 1. Ayush Chandekar [ [project](TODO) ] [ [final report](https://ayu-ch.github.io/2025/08/29/gsoc-final-report.html) ] [ [blog](https://ayu-ch.github.io/) ] -2. Meet Soni [ [project](TODO) ] [ [final report](TODO) ] [ [blog](https://inosmeet.github.io/posts/gsoc25/) ] +2. Meet Soni [ [project](TODO) ] [ [final report](https://inosmeet.github.io/posts/gsoc25/gsoc25_final/) ] [ [blog](https://inosmeet.github.io/posts/gsoc25/) ] 3. Lucas Seiki Oshiro [ [project](TODO) ] [ [final report](https://lucasoshiro.github.io/gsoc-en/#final-report) ] [ [blog](https://lucasoshiro.github.io/gsoc-en/#weeks) ] #### References 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 295/336] 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 296/336] 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 297/336] 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 298/336] 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 299/336] 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 300/336] 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 301/336] =?UTF-8?q?rn-127:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=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 302/336] 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 303/336] 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 304/336] 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 305/336] 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 306/336] 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 310/336] 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 311/336] 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 312/336] 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 313/336] 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 314/336] 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 315/336] 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 316/336] 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 317/336] 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 318/336] 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 319/336] 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 320/336] 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 321/336] 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 322/336] 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 323/336] =?UTF-8?q?rn-128:=20add=20=C5=A0t=C4=9Bp=C3=A1n?= =?UTF-8?q?=20N=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 324/336] 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 325/336] 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 326/336] 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 327/336] 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 08f83a4ce5ab48bd4cf6c39162671dc37fdafb0a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 22 Nov 2025 16:35:45 +0530 Subject: [PATCH 328/336] GSoC-participants: add links to project archive pages --- GSoC-Participants.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/GSoC-Participants.md b/GSoC-Participants.md index 66dae2c80..1561b0b9e 100644 --- a/GSoC-Participants.md +++ b/GSoC-Participants.md @@ -10,9 +10,9 @@ to Git via GSoC. ### 2025 -1. Ayush Chandekar [ [project](TODO) ] [ [final report](https://ayu-ch.github.io/2025/08/29/gsoc-final-report.html) ] [ [blog](https://ayu-ch.github.io/) ] -2. Meet Soni [ [project](TODO) ] [ [final report](https://inosmeet.github.io/posts/gsoc25/gsoc25_final/) ] [ [blog](https://inosmeet.github.io/posts/gsoc25/) ] -3. Lucas Seiki Oshiro [ [project](TODO) ] [ [final report](https://lucasoshiro.github.io/gsoc-en/#final-report) ] [ [blog](https://lucasoshiro.github.io/gsoc-en/#weeks) ] +1. Ayush Chandekar [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/no7dVMeG) ] [ [final report](https://ayu-ch.github.io/2025/08/29/gsoc-final-report.html) ] [ [blog](https://ayu-ch.github.io/) ] +2. Meet Soni [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl) ] [ [final report](https://inosmeet.github.io/posts/gsoc25/gsoc25_final/) ] [ [blog](https://inosmeet.github.io/posts/gsoc25/) ] +3. Lucas Seiki Oshiro [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/xVrT5e2q) ] [ [final report](https://lucasoshiro.github.io/gsoc-en/#final-report) ] [ [blog](https://lucasoshiro.github.io/gsoc-en/#weeks) ] #### References From 3e1ac8a36661c0905509e98d7ced14ea3fbcbe4b Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 22 Nov 2025 16:36:55 +0530 Subject: [PATCH 329/336] GSoC-participants: add link to organization archive page --- GSoC-Participants.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GSoC-Participants.md b/GSoC-Participants.md index 1561b0b9e..ad64e9140 100644 --- a/GSoC-Participants.md +++ b/GSoC-Participants.md @@ -16,7 +16,7 @@ to Git via GSoC. #### References -- [GSoC archive](TODO) +- [GSoC archive](https://summerofcode.withgoogle.com/programs/2025/organizations/git) - [Rev News article](https://git.github.io/rev_news/2025/05/31/edition-123/) ### 2024 From c8f68704d9429f4c7cb50c56fbd195d3042a2ed5 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 22 Nov 2025 16:38:42 +0530 Subject: [PATCH 330/336] GSoC-participants: swap project links of Lucas and Meet Soni --- GSoC-Participants.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GSoC-Participants.md b/GSoC-Participants.md index ad64e9140..d9a68bf75 100644 --- a/GSoC-Participants.md +++ b/GSoC-Participants.md @@ -11,8 +11,8 @@ to Git via GSoC. ### 2025 1. Ayush Chandekar [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/no7dVMeG) ] [ [final report](https://ayu-ch.github.io/2025/08/29/gsoc-final-report.html) ] [ [blog](https://ayu-ch.github.io/) ] -2. Meet Soni [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl) ] [ [final report](https://inosmeet.github.io/posts/gsoc25/gsoc25_final/) ] [ [blog](https://inosmeet.github.io/posts/gsoc25/) ] -3. Lucas Seiki Oshiro [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/xVrT5e2q) ] [ [final report](https://lucasoshiro.github.io/gsoc-en/#final-report) ] [ [blog](https://lucasoshiro.github.io/gsoc-en/#weeks) ] +2. Lucas Seiki Oshiro [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/fGgMYHwl) ] [ [final report](https://lucasoshiro.github.io/gsoc-en/#final-report) ] [ [blog](https://lucasoshiro.github.io/gsoc-en/#weeks) ] +3. Meet Soni [ [project](https://summerofcode.withgoogle.com/programs/2025/projects/xVrT5e2q) ] [ [final report](https://inosmeet.github.io/posts/gsoc25/gsoc25_final/) ] [ [blog](https://inosmeet.github.io/posts/gsoc25/) ] #### References From 29f7297029286a1e12b021c8322dd843953679e0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 24 Nov 2025 12:54:25 +0100 Subject: [PATCH 331/336] 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 332/336] 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 333/336] 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 334/336] 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 335/336] 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 336/336] 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.