diff --git a/_config.yml b/_config.yml index f3e563f9a..ed08f7513 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,20 @@ name: Git Developer Pages permalink: /rev_news/:year/:month/:day/:title/ plugins: - - jekyll-redirect-from \ No newline at end of file + - jekyll-redirect-from + +defaults: + - { scope: { path: "links/dev" } , values: { nb: "Git Development" , permalink: "/:basename/"} } + - { scope: { path: "links/mentoring/common" } , values: { nb: "Mentoring" , permalink: "/:basename/"} } + - { scope: { path: "links/mentoring/soc" } , values: { nb: "Mentoring-SoC" , permalink: "/:basename/"} } + - { scope: { path: "links/mentoring/outreachy" } , values: { nb: "Mentoring-Outreachy", permalink: "/:basename/"} } + - { scope: { path: "rev_news" } , values: { nb: "Git Rev News" } } + +# this is used to display links in the right categories order +# be sure to match default category names defined in site.defaults +nb-order: + - "Git Development" + - "Git Rev News" + - "Mentoring" + - "Mentoring-SoC" + - "Mentoring-Outreachy" diff --git a/_includes/navbar.html b/_includes/navbar.html index d4dfe25bd..d67cff823 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -1,10 +1,20 @@ diff --git a/_posts/2015-03-25-edition-1.markdown b/_posts/2015-03-25-edition-1.markdown index 5cd110ad5..3bb63e38f 100644 --- a/_posts/2015-03-25-edition-1.markdown +++ b/_posts/2015-03-25-edition-1.markdown @@ -54,8 +54,7 @@ Paul Tan, who will probably apply to be a [Google Summer of Code Git this year, anticipated the start of the GSoC and sent a patch to rewrite git-pull.sh as a built-in. -Indeed as stated in [the GSoC idea -page](https://git.github.io/SoC-2015-Ideas.html): +Indeed as stated in [the GSoC idea page](https://git.github.io/SoC-2015-Ideas/): > Many components of Git are still in the form of shell and Perl @@ -117,7 +116,7 @@ Dongcan Jiang, who will also probably apply to be a GSoC student for Git this year, sent a patch to prevent `git log` from being used with both the `--graph` and the `--no-walk` option. He sent this patch because the Git community asks potential students to work on a -[microproject](https://git.github.io/SoC-2015-Microprojects.html) to +[microproject](https://git.github.io/SoC-2015-Microprojects/) to make sure that they can work properly with the community. Eric Sunshine made some good general suggestions that are often made diff --git a/_posts/2015-09-09-edition-7.markdown b/_posts/2015-09-09-edition-7.markdown index 9024c85aa..2f570cbc0 100644 --- a/_posts/2015-09-09-edition-7.markdown +++ b/_posts/2015-09-09-edition-7.markdown @@ -123,7 +123,7 @@ effect if it breaks is. Reading the students proposals and resume is rarely sufficient to really evaluate their skills, which makes the risk particularly hard to evaluate. Since 2014, we've been using -[microprojects](https://git.github.io/SoC-2015-Microprojects.html) to +[microprojects](https://git.github.io/SoC-2015-Microprojects/) to select students. This turned out to be very efficient, both at identifying good (or bad) applicants, but also at giving students a glimpse of what "contributing to Git" means. Student get an idea of diff --git a/_posts/2016-06-15-edition-16.markdown b/_posts/2016-06-15-edition-16.markdown index 313647cdb..eaee2ce34 100644 --- a/_posts/2016-06-15-edition-16.markdown +++ b/_posts/2016-06-15-edition-16.markdown @@ -109,7 +109,7 @@ names "clean-from-fs" and "smudge-to-fs" have been suggested for them. ### Support -* [https://public-inbox.org/git/nhlqd4%24ekr%241%40ger.gmane.org/](Odd Difference Between Windows Git and Standard Git) +* [Odd Difference Between Windows Git and Standard Git](https://public-inbox.org/git/nhlqd4%24ekr%241%40ger.gmane.org/) Jon Forrest sent an email about a `git status` behavior he sees on Windows, which is different than on Linux on a repository that is diff --git a/_posts/2016-07-20-edition-17.markdown b/_posts/2016-07-20-edition-17.markdown index c74e9aac1..93e014325 100644 --- a/_posts/2016-07-20-edition-17.markdown +++ b/_posts/2016-07-20-edition-17.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 17th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of June 2016. diff --git a/_posts/2016-08-17-edition-18.markdown b/_posts/2016-08-17-edition-18.markdown index a62b4aed3..294e2746b 100644 --- a/_posts/2016-08-17-edition-18.markdown +++ b/_posts/2016-08-17-edition-18.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 18th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2016. diff --git a/_posts/2016-09-14-edition-19.markdown b/_posts/2016-09-14-edition-19.markdown index 0b8d706d2..ed1ca07f6 100644 --- a/_posts/2016-09-14-edition-19.markdown +++ b/_posts/2016-09-14-edition-19.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 19th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of August 2016. diff --git a/_posts/2016-10-19-edition-20.markdown b/_posts/2016-10-19-edition-20.markdown index 86ee31687..08184a15e 100644 --- a/_posts/2016-10-19-edition-20.markdown +++ b/_posts/2016-10-19-edition-20.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 20th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of September 2016. diff --git a/_posts/2016-11-16-edition-21.markdown b/_posts/2016-11-16-edition-21.markdown index c64d90b3b..d62df9c32 100644 --- a/_posts/2016-11-16-edition-21.markdown +++ b/_posts/2016-11-16-edition-21.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 21st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2016. diff --git a/_posts/2016-12-14-edition-22.markdown b/_posts/2016-12-14-edition-22.markdown index dfd932417..9c8e32f09 100644 --- a/_posts/2016-12-14-edition-22.markdown +++ b/_posts/2016-12-14-edition-22.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 22nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of November 2016. diff --git a/_posts/2017-01-25-edition-23.markdown b/_posts/2017-01-25-edition-23.markdown index 04ad7e498..49ddaeebb 100644 --- a/_posts/2017-01-25-edition-23.markdown +++ b/_posts/2017-01-25-edition-23.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 23rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of December 2016. diff --git a/_posts/2017-02-22-edition-24.markdown b/_posts/2017-02-22-edition-24.markdown index 05266ed31..a2a5335db 100644 --- a/_posts/2017-02-22-edition-24.markdown +++ b/_posts/2017-02-22-edition-24.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 24th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of January 2017 and the [Git Merge 2017](http://git-merge.com/) conference which happened in Brussels on February 2nd and 3rd 2017. diff --git a/_posts/2017-03-15-edition-25.markdown b/_posts/2017-03-15-edition-25.markdown index aeec26602..b5cfcbd3e 100644 --- a/_posts/2017-03-15-edition-25.markdown +++ b/_posts/2017-03-15-edition-25.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 25th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of February 2017. diff --git a/_posts/2017-04-19-edition-26.markdown b/_posts/2017-04-19-edition-26.markdown index d82d6efe7..2d3ab124c 100644 --- a/_posts/2017-04-19-edition-26.markdown +++ b/_posts/2017-04-19-edition-26.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 26th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of March 2017. diff --git a/_posts/2017-05-17-edition-27.markdown b/_posts/2017-05-17-edition-27.markdown index 711e14bc9..d7d7443f7 100644 --- a/_posts/2017-05-17-edition-27.markdown +++ b/_posts/2017-05-17-edition-27.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 27th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of April 2017. diff --git a/_posts/2017-06-14-edition-28.markdown b/_posts/2017-06-14-edition-28.markdown index 9e5dbacf2..90eaf1a9e 100644 --- a/_posts/2017-06-14-edition-28.markdown +++ b/_posts/2017-06-14-edition-28.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 28th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of May 2017. @@ -294,7 +294,7 @@ the job done. * [Git v2.13.1](https://github.com/git/git/blob/v2.13.1/Documentation/RelNotes/2.13.1.txt) * [Git for Windows v2.13.1](https://github.com/git-for-windows/git/releases/tag/v2.13.1.windows.1) -* [What's new in Deveo 3.19](blog.deveo.com/whats-new-in-deveo-3-19/) (git hosting site) +* [What's new in Deveo 3.19](https://blog.deveo.com/whats-new-in-deveo-3-19/) (git hosting site) * [Git Tower 1.1.0 for Windows Release Notes](https://www.git-tower.com/windows/release-notes#1.1.0) (proprietary multiplatform Git GUI) * [Portable GitHub system "GitPrep 2.6" is released](http://blogs.perl.org/users/yuki_kimoto/2017/06/portable-github-system-gitprep-26-is-released---wiki-system-is-added-you-can-write-documentation.html) (opensource git hosting software, in Perl) * [JGit / EGit release 4.7.1.201706071930-r](http://dev.eclipse.org/mhonarc/lists/jgit-dev/msg03360.html) diff --git a/_posts/2017-07-19-edition-29.markdown b/_posts/2017-07-19-edition-29.markdown index 6cf2fe8cc..1997064a3 100644 --- a/_posts/2017-07-19-edition-29.markdown +++ b/_posts/2017-07-19-edition-29.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 29th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of June 2017. diff --git a/_posts/2017-08-16-edition-30.markdown b/_posts/2017-08-16-edition-30.markdown index 3c7795674..06de58a0e 100644 --- a/_posts/2017-08-16-edition-30.markdown +++ b/_posts/2017-08-16-edition-30.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 30th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2017. diff --git a/_posts/2017-09-20-edition-31.markdown b/_posts/2017-09-20-edition-31.markdown index 6e3ee11aa..ddfc097b8 100644 --- a/_posts/2017-09-20-edition-31.markdown +++ b/_posts/2017-09-20-edition-31.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 31st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of August 2017. diff --git a/_posts/2017-10-11-edition-32.markdown b/_posts/2017-10-11-edition-32.markdown index 2ec0779e3..8a43c70ef 100644 --- a/_posts/2017-10-11-edition-32.markdown +++ b/_posts/2017-10-11-edition-32.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 32nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of September 2017. diff --git a/_posts/2017-11-22-edition-33.markdown b/_posts/2017-11-22-edition-33.markdown index 080eb06e4..b76d2c15d 100644 --- a/_posts/2017-11-22-edition-33.markdown +++ b/_posts/2017-11-22-edition-33.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 33rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2017. diff --git a/_posts/2017-12-20-edition-34.markdown b/_posts/2017-12-20-edition-34.markdown index acff8d432..dea6c3e0e 100644 --- a/_posts/2017-12-20-edition-34.markdown +++ b/_posts/2017-12-20-edition-34.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 34th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of November 2017. diff --git a/_posts/2018-01-17-edition-35.markdown b/_posts/2018-01-17-edition-35.markdown index 843930b34..904449c50 100644 --- a/_posts/2018-01-17-edition-35.markdown +++ b/_posts/2018-01-17-edition-35.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 35th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of December 2017. diff --git a/_posts/2018-02-21-edition-36.markdown b/_posts/2018-02-21-edition-36.markdown index 4ec122f78..b6fcc29fa 100644 --- a/_posts/2018-02-21-edition-36.markdown +++ b/_posts/2018-02-21-edition-36.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 36th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of January 2018. diff --git a/_posts/2018-03-21-edition-37.markdown b/_posts/2018-03-21-edition-37.markdown index 4b59ec333..f9b0a5c50 100644 --- a/_posts/2018-03-21-edition-37.markdown +++ b/_posts/2018-03-21-edition-37.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 37th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened from the month of February 2018 up to the [Git Merge](https://git-merge.com/) conference on March 7th and 8th 2018. diff --git a/_posts/2018-04-18-edition-38.markdown b/_posts/2018-04-18-edition-38.markdown index 8289698a5..c458bfb7c 100644 --- a/_posts/2018-04-18-edition-38.markdown +++ b/_posts/2018-04-18-edition-38.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 38th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of March 2018. diff --git a/_posts/2018-05-16-edition-39.markdown b/_posts/2018-05-16-edition-39.markdown index 194bf450b..58aced04f 100644 --- a/_posts/2018-05-16-edition-39.markdown +++ b/_posts/2018-05-16-edition-39.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 39th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of April 2018. diff --git a/_posts/2018-06-20-edition-40.markdown b/_posts/2018-06-20-edition-40.markdown index 0c6e7870a..630679fe3 100644 --- a/_posts/2018-06-20-edition-40.markdown +++ b/_posts/2018-06-20-edition-40.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 40th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of May 2018. diff --git a/_posts/2018-07-18-edition-41.markdown b/_posts/2018-07-18-edition-41.markdown index a06aecaef..713828655 100644 --- a/_posts/2018-07-18-edition-41.markdown +++ b/_posts/2018-07-18-edition-41.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 41st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of June 2018. diff --git a/_posts/2018-08-22-edition-42.markdown b/_posts/2018-08-22-edition-42.markdown index a1c955e74..c315014eb 100644 --- a/_posts/2018-08-22-edition-42.markdown +++ b/_posts/2018-08-22-edition-42.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 42nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2018. diff --git a/_posts/2018-09-19-edition-43.markdown b/_posts/2018-09-19-edition-43.markdown index 812a14084..26e5b696f 100644 --- a/_posts/2018-09-19-edition-43.markdown +++ b/_posts/2018-09-19-edition-43.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 43rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of August 2018. diff --git a/_posts/2018-11-21-edition-45.markdown b/_posts/2018-11-21-edition-45.markdown index 5d3511867..25da19831 100644 --- a/_posts/2018-11-21-edition-45.markdown +++ b/_posts/2018-11-21-edition-45.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 45th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2018. diff --git a/_posts/2019-01-23-edition-47.markdown b/_posts/2019-01-23-edition-47.markdown index e9bb1a531..0fb0a0d6e 100644 --- a/_posts/2019-01-23-edition-47.markdown +++ b/_posts/2019-01-23-edition-47.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 47th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of December 2018. diff --git a/_posts/2019-02-27-edition-48.markdown b/_posts/2019-02-27-edition-48.markdown index 2664d6283..db94b6682 100644 --- a/_posts/2019-02-27-edition-48.markdown +++ b/_posts/2019-02-27-edition-48.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 48th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of January 2019. It also covers the Git Contributor Summit and the Git diff --git a/_posts/2019-03-20-edition-49.markdown b/_posts/2019-03-20-edition-49.markdown index 9f04d58a2..9e2b909b6 100644 --- a/_posts/2019-03-20-edition-49.markdown +++ b/_posts/2019-03-20-edition-49.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 49th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of February 2019. diff --git a/_posts/2019-04-26-edition-50.markdown b/_posts/2019-04-26-edition-50.markdown index 6d6a9d177..778959648 100644 --- a/_posts/2019-04-26-edition-50.markdown +++ b/_posts/2019-04-26-edition-50.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 50th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of March 2019. diff --git a/_posts/2019-05-22-edition-51.markdown b/_posts/2019-05-22-edition-51.markdown index f71f81732..465621e2f 100644 --- a/_posts/2019-05-22-edition-51.markdown +++ b/_posts/2019-05-22-edition-51.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 51st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of April 2019. diff --git a/_posts/2019-06-28-edition-52.markdown b/_posts/2019-06-28-edition-52.markdown index 9b9c4679a..8915ccd5d 100644 --- a/_posts/2019-06-28-edition-52.markdown +++ b/_posts/2019-06-28-edition-52.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 52nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of May 2019. diff --git a/_posts/2019-07-24-edition-53.markdown b/_posts/2019-07-24-edition-53.markdown index b88fb4edf..3596a3747 100644 --- a/_posts/2019-07-24-edition-53.markdown +++ b/_posts/2019-07-24-edition-53.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 53rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of June 2019. diff --git a/_posts/2019-08-21-edition-54.markdown b/_posts/2019-08-21-edition-54.markdown index 200afb794..a4e665fad 100644 --- a/_posts/2019-08-21-edition-54.markdown +++ b/_posts/2019-08-21-edition-54.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 54th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2019. diff --git a/_posts/2019-09-25-edition-55.markdown b/_posts/2019-09-25-edition-55.markdown index 85212083a..ed939cf82 100644 --- a/_posts/2019-09-25-edition-55.markdown +++ b/_posts/2019-09-25-edition-55.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 55th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of August 2019. diff --git a/_posts/2019-10-26-edition-56.markdown b/_posts/2019-10-26-edition-56.markdown index b264aad42..566f0ea54 100644 --- a/_posts/2019-10-26-edition-56.markdown +++ b/_posts/2019-10-26-edition-56.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 56th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of September 2019. diff --git a/_posts/2019-11-20-edition-57.markdown b/_posts/2019-11-20-edition-57.markdown index 00ec0d107..6e0b7fe8c 100644 --- a/_posts/2019-11-20-edition-57.markdown +++ b/_posts/2019-11-20-edition-57.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 57th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2019. @@ -23,7 +23,7 @@ This edition covers what happened during the month of October 2019. Pratyush Yadav, a new maintainer for git-gui, asked about whether it is a better idea to use GitHub for development instead of email - (after [discussion with Dscho](public-inbox.org/git/nycvar.QRO.7.76.6.1910061054470.46@tvgsbejvaqbjf.bet/)), + (after [discussion with Dscho](https://public-inbox.org/git/nycvar.QRO.7.76.6.1910061054470.46@tvgsbejvaqbjf.bet/)), stating arguments in favor and against of moving to GitHub. There were some voices for the idea, and some against, describing additional advantages and disadvantages. One idea was to use diff --git a/_posts/2019-12-26-edition-58.markdown b/_posts/2019-12-26-edition-58.markdown index 2a5fb0602..fb22a4c80 100644 --- a/_posts/2019-12-26-edition-58.markdown +++ b/_posts/2019-12-26-edition-58.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 58th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of November 2019. diff --git a/_posts/2020-01-22-edition-59.markdown b/_posts/2020-01-22-edition-59.markdown index 1f3261834..6513790b0 100644 --- a/_posts/2020-01-22-edition-59.markdown +++ b/_posts/2020-01-22-edition-59.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 59th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened around the month of December 2019. diff --git a/_posts/2020-02-19-edition-60.markdown b/_posts/2020-02-19-edition-60.markdown index 427b4572c..0b75ec2c0 100644 --- a/_posts/2020-02-19-edition-60.markdown +++ b/_posts/2020-02-19-edition-60.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 60th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of January 2020. diff --git a/_posts/2020-03-25-edition-61.markdown b/_posts/2020-03-25-edition-61.markdown index 56fe237b8..e25f2d047 100644 --- a/_posts/2020-03-25-edition-61.markdown +++ b/_posts/2020-03-25-edition-61.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 61st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of February 2020. diff --git a/_posts/2020-04-23-edition-62.markdown b/_posts/2020-04-23-edition-62.markdown index 7f175ca09..3477f4913 100644 --- a/_posts/2020-04-23-edition-62.markdown +++ b/_posts/2020-04-23-edition-62.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 62nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of March 2020. diff --git a/_posts/2020-05-28-edition-63.markdown b/_posts/2020-05-28-edition-63.markdown index 530f28fd7..bdc95d112 100644 --- a/_posts/2020-05-28-edition-63.markdown +++ b/_posts/2020-05-28-edition-63.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 63rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of April 2020. diff --git a/_posts/2020-06-25-edition-64.markdown b/_posts/2020-06-25-edition-64.markdown index 78b793b6b..dedee2cde 100644 --- a/_posts/2020-06-25-edition-64.markdown +++ b/_posts/2020-06-25-edition-64.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 64th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of May 2020. diff --git a/_posts/2020-07-30-edition-65.markdown b/_posts/2020-07-30-edition-65.markdown index e6dff85c0..a3960eb5e 100644 --- a/_posts/2020-07-30-edition-65.markdown +++ b/_posts/2020-07-30-edition-65.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 65th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of June 2020. diff --git a/_posts/2020-08-27-edition-66.markdown b/_posts/2020-08-27-edition-66.markdown index 8321d1fe7..f5687fc5d 100644 --- a/_posts/2020-08-27-edition-66.markdown +++ b/_posts/2020-08-27-edition-66.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 66th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2020. diff --git a/_posts/2020-09-24-edition-67.markdown b/_posts/2020-09-24-edition-67.markdown index 53bbd75aa..2a3b98de9 100644 --- a/_posts/2020-09-24-edition-67.markdown +++ b/_posts/2020-09-24-edition-67.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 67th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of August 2020. diff --git a/_posts/2020-10-30-edition-68.markdown b/_posts/2020-10-30-edition-68.markdown index d490ea743..f6488f813 100644 --- a/_posts/2020-10-30-edition-68.markdown +++ b/_posts/2020-10-30-edition-68.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 68th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of September 2020. diff --git a/_posts/2020-11-27-edition-69.markdown b/_posts/2020-11-27-edition-69.markdown index 0f24efed1..3705cad6a 100644 --- a/_posts/2020-11-27-edition-69.markdown +++ b/_posts/2020-11-27-edition-69.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 69th edition of [Git Rev News](https://git.github.io/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 [About Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). +subscribe, see the [About Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2020. diff --git a/_posts/2020-12-26-edition-70.markdown b/_posts/2020-12-26-edition-70.markdown index e54fc97b5..05da64b08 100644 --- a/_posts/2020-12-26-edition-70.markdown +++ b/_posts/2020-12-26-edition-70.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 70th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of November 2020. diff --git a/_posts/2021-01-28-edition-71.markdown b/_posts/2021-01-28-edition-71.markdown index 83a72180b..c042f19f1 100644 --- a/_posts/2021-01-28-edition-71.markdown +++ b/_posts/2021-01-28-edition-71.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 71st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of December 2020. diff --git a/_posts/2021-02-27-edition-72.markdown b/_posts/2021-02-27-edition-72.markdown index dd1875492..76a6dc461 100644 --- a/_posts/2021-02-27-edition-72.markdown +++ b/_posts/2021-02-27-edition-72.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 72nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of January 2021. diff --git a/_posts/2021-03-27-edition-73.markdown b/_posts/2021-03-27-edition-73.markdown index 15d73ded8..c72995bf9 100644 --- a/_posts/2021-03-27-edition-73.markdown +++ b/_posts/2021-03-27-edition-73.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 73rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of February 2021. diff --git a/_posts/2021-04-30-edition-74.markdown b/_posts/2021-04-30-edition-74.markdown index 5a29fad59..386c0a9e8 100644 --- a/_posts/2021-04-30-edition-74.markdown +++ b/_posts/2021-04-30-edition-74.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 74th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of March 2021. diff --git a/_posts/2021-05-27-edition-75.markdown b/_posts/2021-05-27-edition-75.markdown index 0363b8c86..97123481b 100644 --- a/_posts/2021-05-27-edition-75.markdown +++ b/_posts/2021-05-27-edition-75.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 75th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of April 2021. diff --git a/_posts/2021-06-27-edition-76.markdown b/_posts/2021-06-27-edition-76.markdown index 2840f499f..132be8d5c 100644 --- a/_posts/2021-06-27-edition-76.markdown +++ b/_posts/2021-06-27-edition-76.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 76th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of May 2021. diff --git a/_posts/2021-07-31-edition-77.markdown b/_posts/2021-07-31-edition-77.markdown index 2abe05e7c..08f225cb4 100644 --- a/_posts/2021-07-31-edition-77.markdown +++ b/_posts/2021-07-31-edition-77.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 77th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of June 2021. diff --git a/_posts/2021-08-31-edition-78.markdown b/_posts/2021-08-31-edition-78.markdown index b93893d3e..9c493dea1 100644 --- a/_posts/2021-08-31-edition-78.markdown +++ b/_posts/2021-08-31-edition-78.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 78th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2021. diff --git a/_posts/2021-09-30-edition-79.markdown b/_posts/2021-09-30-edition-79.markdown index 963a64651..780016aa3 100644 --- a/_posts/2021-09-30-edition-79.markdown +++ b/_posts/2021-09-30-edition-79.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 79th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of August 2021. diff --git a/_posts/2021-10-31-edition-80.markdown b/_posts/2021-10-31-edition-80.markdown index b5848f076..121348d51 100644 --- a/_posts/2021-10-31-edition-80.markdown +++ b/_posts/2021-10-31-edition-80.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 80th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of September 2021. diff --git a/_posts/2021-11-29-edition-81.markdown b/_posts/2021-11-29-edition-81.markdown index dc962836a..527816152 100644 --- a/_posts/2021-11-29-edition-81.markdown +++ b/_posts/2021-11-29-edition-81.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 81st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2021. diff --git a/_posts/2021-12-31-edition-82.markdown b/_posts/2021-12-31-edition-82.markdown index 8b3ccf25d..cd0eb5551 100644 --- a/_posts/2021-12-31-edition-82.markdown +++ b/_posts/2021-12-31-edition-82.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 82nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of November 2021. diff --git a/_posts/2022-01-31-edition-83.markdown b/_posts/2022-01-31-edition-83.markdown index 7496aa43e..69ea4f0bf 100644 --- a/_posts/2022-01-31-edition-83.markdown +++ b/_posts/2022-01-31-edition-83.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 83rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of December 2021. diff --git a/_posts/2022-02-28-edition-84.markdown b/_posts/2022-02-28-edition-84.markdown index b9e157f54..33ba3f19e 100644 --- a/_posts/2022-02-28-edition-84.markdown +++ b/_posts/2022-02-28-edition-84.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 84th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of January 2022. diff --git a/_posts/2022-03-31-edition-85.markdown b/_posts/2022-03-31-edition-85.markdown index 12a59674d..45f9a8ba7 100644 --- a/_posts/2022-03-31-edition-85.markdown +++ b/_posts/2022-03-31-edition-85.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 85th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of February 2022. diff --git a/_posts/2022-04-30-edition-86.markdown b/_posts/2022-04-30-edition-86.markdown index 35f730c94..2cf48c566 100644 --- a/_posts/2022-04-30-edition-86.markdown +++ b/_posts/2022-04-30-edition-86.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 86th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of March 2022. diff --git a/_posts/2022-05-26-edition-87.markdown b/_posts/2022-05-26-edition-87.markdown index f86825a5c..aa2fbb3ee 100644 --- a/_posts/2022-05-26-edition-87.markdown +++ b/_posts/2022-05-26-edition-87.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 87th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of April and May 2022. diff --git a/_posts/2022-06-30-edition-88.markdown b/_posts/2022-06-30-edition-88.markdown index 57e4d6400..02bd0c837 100644 --- a/_posts/2022-06-30-edition-88.markdown +++ b/_posts/2022-06-30-edition-88.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 88th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of May and June 2022. diff --git a/_posts/2022-07-31-edition-89.markdown b/_posts/2022-07-31-edition-89.markdown index 964d74a11..6350ced9d 100644 --- a/_posts/2022-07-31-edition-89.markdown +++ b/_posts/2022-07-31-edition-89.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 89th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2022. diff --git a/_posts/2022-08-31-edition-90.markdown b/_posts/2022-08-31-edition-90.markdown index f88aaf775..fb0a5a4b4 100644 --- a/_posts/2022-08-31-edition-90.markdown +++ b/_posts/2022-08-31-edition-90.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 90th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of July 2022. diff --git a/_posts/2022-09-30-edition-91.markdown b/_posts/2022-09-30-edition-91.markdown index 428e1f024..cf6539b65 100644 --- a/_posts/2022-09-30-edition-91.markdown +++ b/_posts/2022-09-30-edition-91.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 91st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of September 2022. diff --git a/_posts/2022-10-31-edition-92.markdown b/_posts/2022-10-31-edition-92.markdown index f5225a7ad..67a7f7dd0 100644 --- a/_posts/2022-10-31-edition-92.markdown +++ b/_posts/2022-10-31-edition-92.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 92nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2022. @@ -230,7 +230,7 @@ __Git tools and sites__ + [`nb`](https://xwmx.github.io/nb/) is a command line and local web note-taking, bookmarking, archiving, and knowledge base application with Git-backed versioning and syncing. -+ The [Git Reference](http://git.github.io/git-reference/) site is meant to be a ++ The [Git Reference](https://git.github.io/git-reference/) site is meant to be a quick reference for learning and remembering the most important and commonly used Git commands, but it can also be used as a tutorial. Every page will also link to more in-depth Git documentation. diff --git a/_posts/2022-11-30-edition-93.markdown b/_posts/2022-11-30-edition-93.markdown index 969361932..63ea171a0 100644 --- a/_posts/2022-11-30-edition-93.markdown +++ b/_posts/2022-11-30-edition-93.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 93rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the month of October 2022. diff --git a/_posts/2022-12-31-edition-94.markdown b/_posts/2022-12-31-edition-94.markdown index 954d4fb89..9c4db2373 100644 --- a/_posts/2022-12-31-edition-94.markdown +++ b/_posts/2022-12-31-edition-94.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 94th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of November 2022 and December 2022. diff --git a/_posts/2023-01-31-edition-95.markdown b/_posts/2023-01-31-edition-95.markdown index 6b5445f4b..4d197137d 100644 --- a/_posts/2023-01-31-edition-95.markdown +++ b/_posts/2023-01-31-edition-95.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 95th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of December 2022 and January 2023. diff --git a/_posts/2023-02-28-edition-96.markdown b/_posts/2023-02-28-edition-96.markdown index 74f8994cf..c605c8c80 100644 --- a/_posts/2023-02-28-edition-96.markdown +++ b/_posts/2023-02-28-edition-96.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 96th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of January and February 2023. diff --git a/_posts/2023-03-31-edition-97.markdown b/_posts/2023-03-31-edition-97.markdown index 892c4a56e..9f9b425cc 100644 --- a/_posts/2023-03-31-edition-97.markdown +++ b/_posts/2023-03-31-edition-97.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 97th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of February 2023 and March 2023. diff --git a/_posts/2023-04-30-edition-98.markdown b/_posts/2023-04-30-edition-98.markdown index bdf3369e9..140b3e141 100644 --- a/_posts/2023-04-30-edition-98.markdown +++ b/_posts/2023-04-30-edition-98.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 98th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of March 2023 and April 2023. diff --git a/_posts/2023-05-31-edition-99.markdown b/_posts/2023-05-31-edition-99.markdown index 0d53081ce..0018a66c7 100644 --- a/_posts/2023-05-31-edition-99.markdown +++ b/_posts/2023-05-31-edition-99.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 99th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of April 2023 and May 2023. diff --git a/_posts/2023-06-30-edition-100.markdown b/_posts/2023-06-30-edition-100.markdown index a80cec71b..8199d715e 100644 --- a/_posts/2023-06-30-edition-100.markdown +++ b/_posts/2023-06-30-edition-100.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 100th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of May 2023 and June 2023. diff --git a/_posts/2023-07-31-edition-101.markdown b/_posts/2023-07-31-edition-101.markdown index 827066522..d84090d31 100644 --- a/_posts/2023-07-31-edition-101.markdown +++ b/_posts/2023-07-31-edition-101.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 101st 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of June 2023 and July 2023. diff --git a/_posts/2023-08-31-edition-102.markdown b/_posts/2023-08-31-edition-102.markdown index 9990a6457..0707e6766 100644 --- a/_posts/2023-08-31-edition-102.markdown +++ b/_posts/2023-08-31-edition-102.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 102nd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of July 2023 and August 2023. diff --git a/_posts/2023-09-30-edition-103.markdown b/_posts/2023-09-30-edition-103.markdown index bc4a44083..ca90ddcec 100644 --- a/_posts/2023-09-30-edition-103.markdown +++ b/_posts/2023-09-30-edition-103.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 103rd 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of August 2023 and September 2023. diff --git a/_posts/2023-10-31-edition-104.markdown b/_posts/2023-10-31-edition-104.markdown index 3da7ae02d..9959491f7 100644 --- a/_posts/2023-10-31-edition-104.markdown +++ b/_posts/2023-10-31-edition-104.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 104th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of September 2023 and October 2023. diff --git a/_posts/2023-11-30-edition-105.markdown b/_posts/2023-11-30-edition-105.markdown index 75a0c12e0..ca22847a3 100644 --- a/_posts/2023-11-30-edition-105.markdown +++ b/_posts/2023-11-30-edition-105.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 105th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of October 2023 and November 2023. diff --git a/_posts/2023-12-31-edition-106.markdown b/_posts/2023-12-31-edition-106.markdown index 2235b148f..a91d99b91 100644 --- a/_posts/2023-12-31-edition-106.markdown +++ b/_posts/2023-12-31-edition-106.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 106th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of November and December 2023. @@ -371,7 +371,7 @@ __Git tools and sites__ so it can safely run unassisted, for example on PRs. Written in Rust. + Mentioned in [Perl Advent Calendar 2023 - Elves Versus Typos](https://perladvent.org/2023/2023-12-21.html). + [dat](https://github.com/dat-ecosystem/dat) is a tool for peer-to-peer sharing - & live synchronization of files via command line. Part of the [dat-ecosystem](dat-ecosystem.org). + & live synchronization of files via command line. Part of the [dat-ecosystem](https://dat-ecosystem.org). You can use the `dat` command line tool to share files with version control, back up data to servers, browse remote files on demand, and automate long-term data preservation. Written in JavaScript for running with Node.js. diff --git a/_posts/2024-01-31-edition-107.markdown b/_posts/2024-01-31-edition-107.markdown index 4948ef3ea..a491b1ca4 100644 --- a/_posts/2024-01-31-edition-107.markdown +++ b/_posts/2024-01-31-edition-107.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 107th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of December 2023 and January 2024. diff --git a/_posts/2024-02-29-edition-108.markdown b/_posts/2024-02-29-edition-108.markdown index 1c5335877..6ab0b9839 100644 --- a/_posts/2024-02-29-edition-108.markdown +++ b/_posts/2024-02-29-edition-108.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 108th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of January and February 2024. diff --git a/_posts/2024-03-31-edition-109.markdown b/_posts/2024-03-31-edition-109.markdown index 04d9699f0..204081fdf 100644 --- a/_posts/2024-03-31-edition-109.markdown +++ b/_posts/2024-03-31-edition-109.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 109th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of February and March 2024. diff --git a/_posts/2024-04-30-edition-110.markdown b/_posts/2024-04-30-edition-110.markdown index 4c9dbca6d..fecc2120e 100644 --- a/_posts/2024-04-30-edition-110.markdown +++ b/_posts/2024-04-30-edition-110.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 110th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of March and April 2024. diff --git a/_posts/2024-05-31-edition-111.markdown b/_posts/2024-05-31-edition-111.markdown index 887c4a6ee..bcf1f1325 100644 --- a/_posts/2024-05-31-edition-111.markdown +++ b/_posts/2024-05-31-edition-111.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 111th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of April and May 2024. diff --git a/_posts/2024-06-30-edition-112.markdown b/_posts/2024-06-30-edition-112.markdown index 6e490ec0d..b7d8bdcec 100644 --- a/_posts/2024-06-30-edition-112.markdown +++ b/_posts/2024-06-30-edition-112.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 112th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of May and June 2024. diff --git a/_posts/2024-07-31-edition-113.markdown b/_posts/2024-07-31-edition-113.markdown index 629b7a319..b2845b209 100644 --- a/_posts/2024-07-31-edition-113.markdown +++ b/_posts/2024-07-31-edition-113.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 113th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of June and July 2024. diff --git a/_posts/2024-08-31-edition-114.markdown b/_posts/2024-08-31-edition-114.markdown index 8f81a8674..a6dd8ac7f 100644 --- a/_posts/2024-08-31-edition-114.markdown +++ b/_posts/2024-08-31-edition-114.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 114th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of July and August 2024. diff --git a/_posts/2024-09-30-edition-115.markdown b/_posts/2024-09-30-edition-115.markdown index 4e4af1c8b..b1d7fba87 100644 --- a/_posts/2024-09-30-edition-115.markdown +++ b/_posts/2024-09-30-edition-115.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 115th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of August and September 2024. diff --git a/_posts/2024-10-31-edition-116.markdown b/_posts/2024-10-31-edition-116.markdown index b681baaba..d32904ea5 100644 --- a/_posts/2024-10-31-edition-116.markdown +++ b/_posts/2024-10-31-edition-116.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 116th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of September and October 2024. @@ -322,7 +322,7 @@ __Easy watching__ __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)), + [arXiv:2409.13590](https://arxiv.org/abs/2409.13590), with dataset at (but no source code). + It is based on a prior study: Nugroho, et al.: _"How different are different diff algorithms in Git?: diff --git a/_posts/2024-11-30-edition-117.markdown b/_posts/2024-11-30-edition-117.markdown index ffa294b1b..339c2010f 100644 --- a/_posts/2024-11-30-edition-117.markdown +++ b/_posts/2024-11-30-edition-117.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of October and November 2024. diff --git a/_posts/2024-12-31-edition-118.markdown b/_posts/2024-12-31-edition-118.markdown index b7deb451a..d0e657914 100644 --- a/_posts/2024-12-31-edition-118.markdown +++ b/_posts/2024-12-31-edition-118.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of November and December 2024. diff --git a/_posts/2025-01-31-edition-119.markdown b/_posts/2025-01-31-edition-119.markdown index 3e38e4eaa..1237e9b80 100644 --- a/_posts/2025-01-31-edition-119.markdown +++ b/_posts/2025-01-31-edition-119.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 119th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of December 2024 and January 2025. diff --git a/_posts/2025-02-28-edition-120.markdown b/_posts/2025-02-28-edition-120.markdown index 8ad9194cd..bd98b1bbc 100644 --- a/_posts/2025-02-28-edition-120.markdown +++ b/_posts/2025-02-28-edition-120.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of January and February 2025. diff --git a/_posts/2025-03-31-edition-121.markdown b/_posts/2025-03-31-edition-121.markdown index ce754e063..b01f0f903 100644 --- a/_posts/2025-03-31-edition-121.markdown +++ b/_posts/2025-03-31-edition-121.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of February and March 2025. diff --git a/_posts/2025-04-30-edition-122.markdown b/_posts/2025-04-30-edition-122.markdown index 98ace1084..f2c402768 100644 --- a/_posts/2025-04-30-edition-122.markdown +++ b/_posts/2025-04-30-edition-122.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of March and April 2025. diff --git a/_posts/2025-05-31-edition-123.markdown b/_posts/2025-05-31-edition-123.markdown index 96e3cd14c..3f38199ff 100644 --- a/_posts/2025-05-31-edition-123.markdown +++ b/_posts/2025-05-31-edition-123.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of April and May 2025. diff --git a/_posts/2025-06-30-edition-124.markdown b/_posts/2025-06-30-edition-124.markdown index 3c89f8473..d72a4820b 100644 --- a/_posts/2025-06-30-edition-124.markdown +++ b/_posts/2025-06-30-edition-124.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of May and June 2025. diff --git a/_posts/2025-07-31-edition-125.markdown b/_posts/2025-07-31-edition-125.markdown index 063e936ee..b63ee5d2c 100644 --- a/_posts/2025-07-31-edition-125.markdown +++ b/_posts/2025-07-31-edition-125.markdown @@ -11,7 +11,7 @@ navbar: false Welcome to the 125th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of June and July 2025. diff --git a/_posts/2025-08-31-edition-126.markdown b/_posts/2025-08-31-edition-126.markdown index bb1f32be1..2dbfa9032 100644 --- a/_posts/2025-08-31-edition-126.markdown +++ b/_posts/2025-08-31-edition-126.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of July and August 2025. diff --git a/_posts/2025-09-30-edition-127.markdown b/_posts/2025-09-30-edition-127.markdown index bf5ec5474..6cff400ee 100644 --- a/_posts/2025-09-30-edition-127.markdown +++ b/_posts/2025-09-30-edition-127.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of August and September 2025. diff --git a/_posts/2025-10-31-edition-128.markdown b/_posts/2025-10-31-edition-128.markdown index 40be28f55..77bfb6678 100644 --- a/_posts/2025-10-31-edition-128.markdown +++ b/_posts/2025-10-31-edition-128.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of September and October 2025. diff --git a/_posts/2025-11-30-edition-129.markdown b/_posts/2025-11-30-edition-129.markdown index 404db4a3c..12f681d8c 100644 --- a/_posts/2025-11-30-edition-129.markdown +++ b/_posts/2025-11-30-edition-129.markdown @@ -11,7 +11,7 @@ navbar: false 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). This edition covers what happened during the months of October and November 2025. diff --git a/_posts/2025-12-31-edition-130.markdown b/_posts/2025-12-31-edition-130.markdown new file mode 100755 index 000000000..f857dc28f --- /dev/null +++ b/_posts/2025-12-31-edition-130.markdown @@ -0,0 +1,605 @@ +--- +title: Git Rev News Edition 130 (December 31st, 2025) +layout: default +date: 2025-12-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 130 (December 31st, 2025) + +Welcome to the 130th 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](https://git.github.io). + +This edition covers what happened during the months of November and December 2025. + +## Discussions + + + + + +### Support + +* [git-2.51.0: Fetching tags does not work](https://lore.kernel.org/git/CAB9xhmPcHnB2%2Bi6WeA3doAinv7RAeGs04%2Bn0fHLGToJq%3DUKUNw%40mail.gmail.com) + + Last September, David Bohman reported a regression in Git 2.51.0 + where `git fetch --tags` failed to update tags in a bare + repository. He noted that the command output indicated tags would be + updated, but they were not actually added to the + repository. Reverting to version 2.50.1 resolved the issue. + + Junio Hamano, the Git maintainer, attempted to reproduce the issue + using a simple bare clone setup but was unsuccessful, suggesting + that David needed to narrow down the specific conditions. + + In early November, David returned to the thread reporting that the + issue persisted in Git 2.51.2. He provided a specific reproduction + case involving a bare clone of the [`bind9` source repository](https://gitlab.isc.org/isc-projects/bind9). + The output showed that one + tag update was rejected (with a `would clobber existing tag` error), + and consequently, all other valid new tags (`v9.18.41`, etc.) + failed to appear in the repository, despite being listed as "new + tag" in the output. The command exited with status code 1. + + Randall S. Becker suggested using `git fetch --tags --force` to + clear the situation. David Bohman replied that while he could + reproduce it locally, the key behavioral change was that prior to + version 2.51, Git would fail regarding the conflicting tag but still insert the + non-conflicting ones. + + Chris Torek identified the new reference transaction system + introduced in recent versions as the root cause. He noted that the + behavior had shifted to "all or nothing" (either all tags get + updated, or none do) and questioned which behavior was actually + buggy. David Bohman argued that this was a risky change for a mature + tool and noted that the diagnostic messages were misleading because + they reported success for tags that were not actually inserted. + + Karthik Nayak confirmed he could reproduce the issue and attributed + it to transaction reference updates. + + Karthik submitted + [version 1](https://lore.kernel.org/git/20251103-fix-tags-not-fetching-v1-1-e63caeb6c113%40gmail.com) + of a patch to fix the issue. He explained that commit `0e358de64a` + (fetch: use batched reference updates, 2025-05-19) introduced + batched reference updates for `git fetch`. When fetching references, + updates are added to a transaction. However, specifically when + fetching tags, if a conflict occurs, the function + `fetch_and_consume_refs()` returns an error code immediately. This + caused the code to jump to the cleanup section, skipping the commit + of the transaction entirely, and thus discarding even valid updates. + + The proposed fix involved extracting the transaction commit logic + into a new function, `commit_ref_transaction()`, and ensuring it is + called even when an error code is returned, provided the fetch is + not atomic. + + Eric Sunshine reviewed the patch, asking why the test code was + wrapped in subshells and suggesting that `!` should be replaced with + `test_must_fail`. Karthik agreed to these changes. + + Justin Tobler reviewed the code, agreeing with the logic. He + suggested adding a comment to `commit_ref_transaction()` to + distinguish it from `ref_transaction_commit()` and asked if the + return value of this new function should be checked. + + Karthik submitted + [version 2](https://lore.kernel.org/git/20251106-fix-tags-not-fetching-v2-1-610cb4b0e7c8%40gmail.com) + of the patch. This version added comments, removed subshells from + tests, and extended the fix to the `backfill_tags()` function. + + Patrick Steinhardt reviewed version 2. He questioned the commit + message's mention of the deprecated "branches/" format in relation + to tag backfilling. Karthik replied, clarifying that after + re-reading the code, he understood that backfilling happens when the + user does not specify `--tags` or `--no-tags`, confirming Patrick's + understanding. + + Patrick noted that the code now had three different call sites + committing the transaction and felt it was "somewhat fragile." + Justin pointed out that the return code of + `commit_ref_transaction()` was being ignored in the new + implementation. Karthik agreed to check the return value. + + Karthik submitted + [version 3](https://lore.kernel.org/git/20251108-fix-tags-not-fetching-v3-0-a12ab6c4daef%40gmail.com) + of the series. He split the changes into two commits: one for + extracting the logic and one for the fix. He also moved the commit + logic into the cleanup section to avoid calling it at every failure + point. + + Patrick reviewed version 3. He suggested using `goto out` in + `commit_ref_transaction()` for better readability. He also asked for + clarification on why the condition `retcode > 0` was safe in the + cleanup section, specifically regarding `prune_refs()`. Karthik + replied, explaining that `prune_refs()` creates its own internal + transaction, but later realized he was mistaken about the timing and + promised to verify. + + Karthik submitted + [version 4](https://lore.kernel.org/git/20251111-fix-tags-not-fetching-v4-0-185d836ec62a%40gmail.com). + This version simplified the code and changed the check from + `retcode > 0` to just `retcode`. + + Patrick pointed out that the commit message regarding `prune_refs()` + behavior change seemed incorrect because no transaction exists at + that stage. Karthik verified this and confirmed there is no change + for `prune_refs()`. + + Karthik submitted + [version 5](https://lore.kernel.org/git/20251113-fix-tags-not-fetching-v5-0-371ea7ec638d%40gmail.com) + with corrected commit messages and better test cleanup. + + Junio reviewed version 5 and identified a remaining + issue. He noted that while the patch fixed the transaction commit, + jumping to the cleanup label early meant that subsequent operations + (specifically `commit_fetch_head()`, `set_upstream()`, and setting + remote HEADs) were still being skipped when errors occurred. He + argued that in non-atomic fetches, these should still run. Karthik + agreed and proposed a fix to only jump to cleanup if `--atomic` was + used. + + Karthik submitted + [version 6](https://lore.kernel.org/git/20251118-fix-tags-not-fetching-v6-0-2a2f15fc137e%40gmail.com), + adding a third commit to the series to address the skipped + operations regression identified by Junio. + + Junio reviewed version 6. He liked the tests but warned + against using `touch` to create files due to timestamp issues and + noted a missing test case for `--set-upstream` on a successful + fetch. Karthik agreed to fix these. + + Karthik submitted + [version 7](https://lore.kernel.org/git/20251119-fix-tags-not-fetching-v7-0-0c8f9fb1f287%40gmail.com), + removing `touch` and adjusting the test prerequisites. + + Eric reviewed the tests in version 7, asking if `! test -f` should + be `test_path_is_missing`. Junio suggested using `rm -f FETCH_HEAD` + before the test to ensure it is actually created during the run, and + inspecting the file content to verify what was recorded. Karthik + agreed. + + Karthik submitted + [version 8](https://lore.kernel.org/git/20251121-fix-tags-not-fetching-v8-0-23b53a8a8334%40gmail.com). + This version verified the content of `FETCH_HEAD` and used + `test_path_is_missing`. + + Junio commented that the series looked good. Patrick pointed out a + tiny grammar nit ("eventhough") and asked if the shell syntax + `>file` used in the test was compatible with all systems, noting + `: >file` is more typical. Karthik replied that existing tests use + the shorter syntax, so it should be fine. + + The small patch series was eventually merged, and should be part of + Git 2.53.0 that should be released at the latest towards the + beginning of February 2026. With this version, not only the transaction logic + will be fixed, but related regressions regarding post-fetch + operations (like updating `FETCH_HEAD`) will also have been + identified and resolved. + + +## Developer Spotlight: Lucas Seiki Oshiro + +* **Who are you and what do you do?** + + My name is Lucas Oshiro, I'm one of the three + GSoC '25 participants working on Git. I'm from São Paulo, Brazil, + and I hold bachelor and master degrees in Computer Science from the + [University of São Paulo](https://www5.usp.br/#english). I don't + have only one specific interest in programming topics, I enjoy + several different topics, like lower-lever C code (like we do for Git), + FP languages (especially Haskell), play with network simulators, data + analysis, operating systems, databases and so on. + +* **How did you initially become interested in contributing to Git, + and what motivated you to choose it as your GSoC project?** + + Well, it's a long story... I think that it dates back to 2017, in a + Computer Networks assignment at my university. My partner in that + assignment was [Matheus Tavares](https://matheustavares.gitlab.io/posts/gsoc-final-report), + who participated in [GSoC '19 on Git](https://summerofcode.withgoogle.com/archive/2019/projects/4787791739748352). + At the time, we needed to study a vulnerability and how it was fixed. + We chose [CVE-2017-1000117](https://nvd.nist.gov/vuln/detail/cve-2017-1000117), + which was a vulnerability in Git. That was my first time reading Git + source code. + + Two years later, I was a member of a [group focused on contributing to Free/Open-Source software](https://flusp.ime.usp.br) + at my University. I sent a patch to Git at the time, but I needed to + focus on other stuff and I couldn't finish it. + + After that, I started to work as a back-end software engineer and + witnessed several Git-related problems. My two previous experiences with + Git's source code made me want to understand what was happening and + delving into its internals, so I could help other developers from my + company when something unexpected happened with Git. + + This way, Git always felt like the right choice. + +* **How do you feel your contribution has impacted the Git community + or the broader open source ecosystem?** + + My GSoC project was to create the new command [`git repo info`](https://summerofcode.withgoogle.com/archive/2025/projects/fGgMYHwl)). + It was released in Git 2.52.0 and, like many other new Git features, I + expect it will take some time to be widely adopted, since it's only + available in bleeding-edge repositories. But I expect that it will be + useful for forges, CIs, local tools, scripts, and other tools that + depend on Git. + +* **Is there any aspect of Git that you now see differently after + having contributed to it?** + + I can't think of anything that I see differently after GSoC, but my + previous contacts with Git's source code made me realize the importance + of having a good commit history with good commit messages. It also made + me understand how powerful Git is as a debugging and searching tool. + +* **How do you balance your contributions with other responsibilities + like work or school?** + + This year, I was more focused on finishing my master's research and I + didn't have too many conflicts with GSoC, so I could focus on my + master's when my patches were under review. However, I must admit that + one of the reasons that I didn't apply to GSoC before was that, here + in Brazil, we typically have final exams in June, which makes it hard + to balance them with something else. + +* **Can you share how GSoC helped enhance your technical and + non-technical skills (like communication, project management, + etc.)?** + + I see Git as a product created by developers, for developers, and I + think that here we sometimes need to do the work that in other contexts + would be done by product owners and designers. I felt that especially + during code reviews, which were often more focused on product and design + decisions rather than the code itself. I had to learn how to discuss + these kinds of decisions, always aiming to do what is best for Git + and its users. + +* **What was the biggest challenge you faced during your contributions + to Git, and how did you overcome it?** + + I think that the biggest challenge was the complete redesign of + `git repo info` during the GSoC period, which made me re-write it from + scratch several times. I think this was a consequence of my previous + answer and that this challenge was solved itself. + +* **Have you thought about mentoring new GSoC / Outreachy students?** + + Yes, it would be very nice! + +* **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?** + + Git is amazing and I think we all agree that it makes the programmers' + lives easier. It would be great if we had a GUI wrapping Git but + targeting non-technical users. + +* **If you could remove something from Git without worrying about + backwards compatibility, what would it be?** + + Perhaps commands that accumulate responsibilities, like `git checkout`, + `git reset` and `git rev-parse`. They make sense from the Git + perspective, but I think they are confusing from the users' + perspective. + +* **What upcoming features or changes in Git are you particularly + excited about?** + + Some that come to my mind are: + + - Patrick Steinhardt's new [`git history`](https://lore.kernel.org/git/20250819-b4-pks-history-builtin-v1-0-9b77c32688fe@pks.im/) + command: rewriting history is essential to keep the repository sane + and useful as a data storage, if done correctly. Currently we do that + through interactive rebase but I think it can be intimidating for less + experienced users. Jujutsu proposes a more straightforward way to do + that, and it's nice to see Patrick bringing it to Git. + + - Justin Tobler's [new `git repo structure` command](https://public-inbox.org/git/20251217175404.37963-1-jltobler@gmail.com/): + of course I'm interested in this subcommand since it is the sibling of + my GSoC project. But it's not only because of that: a Git repository is + a very rich source of information and `git repo structure` will be a + powerful tool to retrieve it. + + - Julia Evans's [contributions to documentation](https://public-inbox.org/git/?q=f%3A%22Julia+Evans%22&r=): + Julia has been producing high-quality content about several programming + topics for years. I'm happy to see Git being documented by someone so + committed to spreading knowledge and who knows how to explain advanced + concepts using a simple language. + +* **What is your favorite Git-related tool/library, outside of Git + itself?** + + I use [delta](https://github.com/dandavison/delta) a lot, I like the way + it highlights diffs. Other tools that I find interesting are [Jujutsu](https://docs.jj-vcs.dev/latest/) + and [Magit](https://magit.vc/), but I don't use them too much. + +* **What is your toolbox for interacting with the mailing list and for + development of Git?** + + I like desktop mail clients, but I don't have a strong preference. On + Linux, I use Thunderbird. On Mac, I use Apple Mail. I also have some + GMail filters for classifying the messages (patches, What's Cooking and + Rev News announcements). + + However, those mail clients don't have code syntax highlighting, and it's + hard to read the patches inside them. For that purpose, I use + [patch-hub](https://github.com/kworkflow/patch-hub), a TUI for reviewing + patches from kernel mailing lists (including Git). + +* **How do you envision your own involvement with Git or other open + source projects in the future?** + + There are some things I want to finish in `git repo info`, and I + still send patches for it. I enjoyed contributing to Git and I + don't want to stop here. + + Outside Git development, I'll give an advanced course on Git next + month. It will be a great opportunity to share what I've learned here + with other people. + +* **What is your advice for people who want to start Git development? + Where and how should they start?** + + Read the [Git Internals chapter from Pro Git](https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain), + follow everything described in [Hacking Git](https://git.github.io/Hacking-Git/), + and work on a [microproject](https://git.github.io/SoC-2025-Microprojects/). + +* **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?** + + Yes. I mean, I've already recommended some people from my university to + apply to GSoC or Outreachy on Git and gave some tips to them. Some of + them have already sent patches that were accepted. + + +## Other News + +__Various__ + ++ [Debian’s git transition](https://diziet.dreamwidth.org/20436.html) + by Ian Jackson on diziet's journal on Dreamwidth. + The main goal of the transition is to make it so that + everyone who interacts with Debian source code should be able to do so entirely in git. ++ [Git’s New Era: What Git 2.52 and the Road to Git 3.0 Mean for Developers in 2026](https://blog.stackademic.com/gits-new-era-what-git-2-52-and-the-road-to-git-3-0-mean-for-developers-in-2026-eb2c3b4e6e79) + by Faisal haque on Medium. + Free access provided via Faisal haque's Friend Link. + + See also [What’s new in Git 2.52.0?](https://about.gitlab.com/blog/whats-new-in-git-2-52-0/) on GitLab Blog and + [Highlights from Git 2.52](https://github.blog/open-source/git/highlights-from-git-2-52/) on GitHub Blog, + mentioned in the [previous edition of Git Rev News](https://git.github.io/rev_news/2025/11/30/edition-129/). + + See also [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) on Phoronix, + mentioned in [Git Rev News Edition #128](https://git.github.io/rev_news/2025/10/31/edition-128/). + + There is also [BreakingChanges: Git 3.0](https://git-scm.com/docs/BreakingChanges#_git_3_0) + document in the Git documentation. + + +__Light reading__ + ++ [Package managers keep using git as a database, it never works out](https://nesbitt.io/2025/12/24/package-managers-keep-using-git-as-a-database.html) + by Andrew Nesbitt on his blog. ++ [Git Commit Count Percentile Stats, Annual Days Active from 878,592 Dev-year Data Points](https://www.gitclear.com/research_studies/git_commit_count_percentiles_annual_days_active_from_largest_data_set) + by Bill Harding, a first-party research by GitClear. ++ [Fizzy Design Evolution: A Flipbook from Git](https://www.zolkos.com/2025/12/08/fizzy-design-evolution-a-flipbook-from-git) + by Rob Zolkos on his blog; includes the generated video. ++ [Comparing the homepage-claims of popular Git hosting providers](https://www.zufallsheld.de/2025/12/02/comparing-homepage-claims-of-git-providers/) + by Sebastian Gumprich on zufallsheld - a tech blog. ++ [Are people migrating away from GitHub?](https://www.roboleary.net/blog/github-migration/), + a short post (with examples) by Rob O'Leary on his blog. ++ [GitHub Actions Has a Package Manager, and It Might Be the Worst](https://nesbitt.io/2025/12/06/github-actions-package-manager.html) + by Andrew Nesbitt on his blog. ++ [The Pain That Is GitHub Actions](https://www.feldera.com/blog/the-pain-that-is-github-actions) + by Gerd Zellweger on feldera blog. ++ [Migrating from GitHub to Codeberg](https://robinmetral.com/notes/migrating-from-github-to-codeberg/) + by Robin Métral on his blog. ++ [Migrating my code to Codeberg](https://eldred.fr/blog/codeberg/) and + [GitHub → Codeberg: my experience](https://eldred.fr/blog/forge-migration/) + by Eldred Habert on ISSOtm's warehouse blog. ++ [Migrating Dillo from GitHub](https://dillo-browser.org/news/migration-from-github/) + by Rodrigo Arias Mallo on Dillo project blog. ++ [Migrating from GitHub to Codeberg](https://ziglang.org/news/migrating-from-github-to-codeberg/) + by Andrew on Zig Language News. ++ [How Do Git Remotes Work? And How Do I Self-host My Own?](https://fev.al/posts/git-remote/) + What it takes to create the simplest, barest self-hosted Git remote, + and learn stuff about Git in the process. + Post by Charles Féval on his blog. ++ [Guarding My Git Forge Against AI Scrapers](https://vulpinecitrus.info/blog/guarding-git-forge-ai-scrapers/) + by ~lymkwi (lux) on VulpineCitrus blog. + The forge in question is a self-hosted [Forgejo instance](https://git.vulpinecitrus.info/). ++ [Rethinking Git Pre-Commit Hooks](https://mathieularose.com/rethinking-git-pre-commit-hooks) + by Mathieu Larose on his blog. ++ [pre-commit hooks are fundamentally broken](https://jyn.dev/pre-commit-hooks-are-fundamentally-broken/) + by Jynn Nelson (@jyn) on the website of jyn. + + See also [Discussion of the Benefits and Drawbacks of the Git Pre-Commit Hook](https://yeldirium.de/2025/10/09/pre-commit-hooks/index.html) + in [Git Rev News Edition #128](https://git.github.io/rev_news/2025/10/31/edition-128/). + + The [Git Hooks](https://githooks.com/) website gives an example of using pre-commit hook + to check the commit message for spelling errors;
+ the [`pre-commit.sample`](https://github.com/git/git/blob/master/templates/hooks/pre-commit.sample) + provided with Git checks for non-ASCII characters in filenames + (and can be configured to be turned off with `hooks.allownoascii`). + + There are various tools that help managing pre-commit hooks, like + [pre-commit](https://pre-commit.com/) + (first mentioned in [Git Rev News #45](https://git.github.io/rev_news/2018/11/21/edition-45/)) + and [_prek_](https://prek.j178.dev/) + (first mentioned in [Git Rev News #127](https://git.github.io/rev_news/2025/09/30/edition-127/)). ++ [Fixing the "Ghost Folder" in GitHub: Converting a Broken Submodule to a Normal Folder](https://dev.to/raziq_din_bd0274cc2ac748b/fixing-the-ghost-folder-in-github-converting-a-broken-submodule-to-a-normal-folder-44c5) + by Raziq Din on DEV\.to. ++ [Shooting myself in the foot with Git by accident](https://utcc.utoronto.ca/~cks/space/blog/programming/GitConcurrentUsageOops) + by Chris Siebenmann on CSpace blog. + The Git error in question was + _"error: fetching ref refs/remotes/origin/master failed: incorrect old value provided"_. ++ [Tracking renamed files in Git](https://oleb.net/2025/git-file-renaming/) and + [Use 'git mv' to record filename case changes in Git](https://oleb.net/2025/git-mv-case-change/) + by Ole Begemann on his blog. ++ [Branch Protection Rules vs Rulesets: The Right Way to Protect Your Git Repository](https://dev.to/piyushgaikwaad/branch-protection-rules-vs-rulesets-the-right-way-to-protect-your-git-repos-305m) + by Piyush Gaikwad on DEV\.to. + The main idea is to use Branch Protection Rules for long lived branches, + and Branch Rulesets for short lived branches, defining rules before branches are created. ++ [`magit-insert-worktrees` improves status buffers](https://huonw.github.io/blog/2025/12/magit-insert-worktrees/) + by Huon Wilson on his "Huon on the internet" blog. + + The [Magit](https://magit.vc/) package for interfacing to Git within the Emacs editor + was first mentioned in passing in [Git Rev News Edition #6](https://git.github.io/rev_news/2015/08/05/edition-6/); + among other mentions there was [Emacs and Magit](https://lwn.net/Articles/727550/) + article on LWN\.net in [Git Rev News Edition #30](https://git.github.io/rev_news/2017/08/16/edition-30/). ++ [Archiving git branches as tags](https://etc.octavore.com/2025/12/archiving-git-branches-as-tags/) + with a git alias. Blog post by octavore + (the author of [Delta](https://github.com/octavore/delta), a command-line diff tool) + on "et cetera". ++ [Building a Meta-Logger: Tracking My Work Across GitHub, Codeberg, and Bitbucket Using Go](https://dev.to/nimxch/building-a-meta-logger-tracking-my-work-across-github-codeberg-and-bitbucket-using-go-4kp6) + by Nimai Charan on DEV\.to. ++ [why i think jj-vcs is worth your time](https://schpet.com/note/why-i-think-jj-vcs-is-worth-your-time) + on Schpet’s Notebook. + + [Jujutsu (`jj`)](https://jj-vcs.github.io/) is a Git-compatible + version control system written in Rust, which was first mentioned + in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). + + See also [Should I Switch From Git to Jujutsu](https://etodd.io/2025/10/02/should-i-switch-from-git-to-jujutsu/) + (mentioned in [Git Rev News Edition #129](https://git.github.io/rev_news/2025/11/30/edition-129/)) and + [Switch to Jujutsu already: a tutorial](https://www.stavros.io/posts/switch-to-jujutsu-already-a-tutorial/) + (mentioned in [Git Rev News Edition #128](https://git.github.io/rev_news/2025/10/31/edition-128/)). ++ [From Zero to GitHub: Starting A New jj (Jujutsu) Repo](https://www.visualmode.dev/from-zero-to-github-starting-a-new-jj-jujutsu-repo) + by Josh Branchaud on VisualMode. ++ [30 Years of `
` Tags](https://www.artmann.co/articles/30-years-of-br-tags): + Three decades of making things on the internet. + Includes the introduction of Git, GitHub, and the GitDevOps (push to publish) workflow. + Post by Christoffer Artmann on his blog. ++ [Free Software Needs Free Tools](https://mako.cc/writing/hill-free_tools.html) + by Benjamin Mako Hill (2010). + + +__Easy watching__ + ++ [Magit, fzf, and ast-grep demo](https://www.saltycrane.com/blog/2025/12/magit-fzf-and-ast-grep-demo/) + by Eliot (@saltycrane) on SaltyCrane Blog. + The video [on YouTube](https://www.youtube.com/watch?v=W4eOz3L6Ga8) + is 12:40 minutes long. ++ [Git & GitHub Crash Course for Beginners](https://www.freecodecamp.org/news/git-and-github-crash-course-for-beginners/) + by Beau Carnes on freeCodeCamp. + The video [on YouTube](https://www.youtube.com/watch?v=mAFoROnOfHs) + by freeCodeCamp.org and logicBase Labs + is 1:21:19 hours long. + + +__Git tools and sites__ + ++ [check-projects](https://github.com/uralys/check-projects) + is a fast, cross-platform CLI tool (with TUI interface) + to check the Git status of multiple projects organized by categories. + Written in Go, under MIT license. ++ [repos](https://github.com/epilande/repos) + is an interactive CLI tool for managing multiple Git repositories. + Written in TypeScript (with pre-built binaries), under MIT license. ++ [Patchy 🩹](https://github.com/richardgill/patchy) + is a CLI for generating and applying patches to Git repositories. + + Similar in a way to [Stacked Git](https://stacked-git.github.io/), + StGit for short, first mentioned in [Git Rev News Edition #17](https://git.github.io/rev_news/2016/07/20/edition-17/), + to a lesser extent to [patchwork](http://jk.ozlabs.org/projects/patchwork/), + first mentioned in [Git Rev News Edition #20](https://git.github.io/rev_news/2016/10/19/edition-20/), + or to [git-revise](https://mystor.github.io/git-revise.html), + first mentioned in [Git Rev News Edition #54](https://git.github.io/rev_news/2019/08/21/edition-54) - where + you can find links to other similar tools. ++ [git-pw](https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage.html) + is a tool for integrating Git with Patchwork. + Written in Python, under MIT license. ++ [git-forge](https://github.com/Leleat/git-forge) + is a simple CLI tool for basic interactions with issues and pull requests + across GitHub, GitLab, Gitea, and Forgejo. + (Re)Written in Rust, under MIT license.
+ See also [git-forge: Faster Issues and PRs From Your Terminal](https://neverready.app/blog/2025/03-git-forge/) + blog post by Anh Tuan Le. ++ [gtr - Git Worktree Runner](https://github.com/coderabbitai/git-worktree-runner) + by the CodeRabbit team + is a portable, cross-platform CLI for managing Git worktrees with ease, + with editor and AI tool integration. + It automates per-branch worktree creation, configuration copying, + dependency installation, and workspace setup. + Written in Bash, under Apache 2.0 license.
+ See also [A Better Way to Run Git Worktrees Finally!](https://dev.to/nemesiscodex/a-better-way-to-run-git-worktrees-finally-1lh9) + by Julio Daniel Reyes on DEV\.to, + with [video on YouTube](https://www.youtube.com/watch?v=r9uGLZ3AkWo) [5:52]. + + There is also [Worktree Manager (wtm)](https://github.com/jarredkenny/worktree-manager) + mentioned in [Git Rev News Edition #128](https://git.github.io/rev_news/2025/10/31/edition-128/), and + [wtp (Worktree Plus)](https://github.com/satococoa/wtp) + mentioned in [Git Rev News Edition #125](https://git.github.io/rev_news/2025/07/31/edition-125/). ++ [Git Pow](https://github.com/markrai/gitpow) + is an open-source, cross-platform Git client. + It implements conditional strategies to handle larger repositories, + showing image previews to visualize what changed, + and grouping commits by month/year, among other features. + Written in Rust and JavaScript using the [Tauri](https://tauri.app/) framework. + Under GNU GPL v3.0 license. ++ [Git Repository Squirrel 🐿️ (reposquirrel)](https://github.com/reposquirrel/reposquirrel) + is a comprehensive Git repository analytics tool + that provides detailed insights into developer contributions, subsystem ownership, + and codebase evolution over time. + Written in Python (using the Flask library) and JavaScript, + under [CC-BY-NC-SA 4.0 license](https://creativecommons.org/licenses/by-nc-sa/4.0/). + [Demo](http://13.61.92.173:5555/) and Docker image available. ++ [Gitmal](https://github.com/antonmedv/gitmal) + is a static page generator for Git repositories. + Gitmal generates static HTML pages with files, commits, code highlighting, and Markdown rendering. + Written in Go, under MIT license. ++ [Git Rewind](https://github.com/mikelane/git-rewind) + is a GitHub App that provides Your GitHub year in review — with privacy-first, + read-only access (using fine-grained permissions). + Written in TypeScript, under MIT license. + Available at [git-rewind.vercel.app](https://git-rewind.vercel.app/). ++ [Critic](https://github.com/jensl/critic) + is a code review system. + It is a web application written in Python, tightly integrated with Git. + Under Apache 2.0 license.
+ See also [Meet Critic: Code Inspection System in Opera Software](https://sudonull.com/post/135595) + on Sudo Null IT News. ++ [Buggy: Fast and simple bug tracker](https://git.dillo-browser.org/buggy/tree/README.md?h=main). + The buggy program compiles a set of issues written in Markdown into HTML pages + suitable to be read from a web browser. It is intended to be used + alongside a version control system (VCS) like Git to track changes in the issues. + Written in C, under MIT license. ++ [Today I Learned: Git](https://github.com/jbranchaud/til?tab=readme-ov-file#git) + by Josh Branchaud, under MIT license. + + +## Releases + ++ libgit2 [1.9.2](https://github.com/libgit2/libgit2/releases/tag/v1.9.2) ++ GitHub Enterprise [3.19.0](https://docs.github.com/enterprise-server@3.19/admin/release-notes#3.19.0), +[3.18.3](https://docs.github.com/enterprise-server@3.18/admin/release-notes#3.18.3), +[3.17.9](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.9), +[3.16.12](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.12), +[3.15.16](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.16), +[3.14.21](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.21), +[3.18.2](https://docs.github.com/enterprise-server@3.18/admin/release-notes#3.18.2), +[3.17.8](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.8), +[3.16.11](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.11), +[3.15.15](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.15), +[3.14.20](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.20) ++ GitLab [18.7](https://about.gitlab.com/releases/2025/12/18/gitlab-18-7-released/), +[18.6.2, 18.5.4, 18.4.6](https://about.gitlab.com/releases/2025/12/10/patch-release-gitlab-18-6-2-released/) ++ GitKraken [11.7.0](https://help.gitkraken.com/gitkraken-desktop/current/) ++ Sourcetree [4.2.15](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.15.html) ++ Garden [2.4.0](https://github.com/garden-rs/garden/releases/tag/v2.4.0), +[2.5.0](https://github.com/garden-rs/garden/releases/tag/v2.5.0) ++ Git Cola [4.17.0](https://github.com/git-cola/git-cola/releases/tag/v4.17.0) ++ GitButler [0.18.3](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.18.3), +[0.18.2](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.18.2) ++ Sublime Merge [Build 2121](https://www.sublimemerge.com/download) ++ Kinetic Merge [1.13.2](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.13.2), +[1.13.1](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.13.1), +[1.13.0](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.13.0), +[1.12.2](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.12.2), +[1.12.1](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.12.1), +[1.12.0](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.12.0) + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from Lucas Seiki Oshiro and David Aguilar. diff --git a/_posts/2026-01-31-edition-131.markdown b/_posts/2026-01-31-edition-131.markdown new file mode 100644 index 000000000..ba208dcde --- /dev/null +++ b/_posts/2026-01-31-edition-131.markdown @@ -0,0 +1,384 @@ +--- +title: Git Rev News Edition 131 (January 31st, 2026) +layout: default +date: 2026-01-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 131 (January 31st, 2026) + +Welcome to the 131st 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](https://git.github.io). + +This edition covers what happened during the months of December 2025 and January 2026. + +## Discussions + + + + + +### Support + +* [Would it make sense to add a `commit.signOff` config?](https://lore.kernel.org/git/86c5d40d-5a06-4a69-90d8-a737685b0536%40haller-berlin.de) + + Stefan Haller started the discussion by asking if it would be + appropriate to add a `commit.signoff` configuration variable. He + observed that while many Git commands, such as `merge`, + `cherry-pick`, and `revert`, accept the `--signoff` argument, only + `format-patch` has a corresponding configuration to enable it for + all invocations. Stefan found it reasonable for users to want a + "Signed-off-by" trailer added automatically to every commit they + make. This question was prompted by his work on the Lazygit + project, which already includes such a configuration and had + received a feature request to extend its behavior to the `revert` + command. + + The "Signed-off-by" trailer is a formal certification that the + contributor has the right to submit the work under the project's + license, often associated with a Developer Certificate of Origin + (DCO). While widely used in open-source projects to maintain a legal + paper trail, its use in closed-source environments is less common. + + Carlo Marcelo Arenas Belón replied to Stefan, noting that a similar + topic had been + [discussed recently](https://lore.kernel.org/git/xmqq4iwvfx8s.fsf@gitster.g/) + where it was argued that sign-offs should be given explicitly rather + than automated. Junio Hamano, the Git maintainer, agreed and + suggested resurrecting a + [proposal from 2020](https://lore.kernel.org/git/xmqqpnfw8gyn.fsf@gitster-ct.c.googlers.com/) + to explicitly document why Git intentionally lacks this + configuration. Junio expressed a desire to "save time from potential + contributors" who might otherwise put effort into a patch that the + community had already reached a consensus against. + + Collin Funk supported the idea of documenting the consensus and + recommended using the full phrase "Signed-off-by" instead of the + abbreviation "SoB" to ensure clarity for all readers. brian + m. carlson suggested that the explanation could be placed in the Git + FAQ, the manual pages, or both. brian also provided a minor + grammatical correction to the initial text proposal. + + Junio submitted + [version 1](https://lore.kernel.org/git/xmqqldj48pyl.fsf%40gitster.g) + of a patch to document the decision. The proposed text explained + that automation makes it harder to defend a sign-off's validity in + court, as a person could claim the trailer "was done by inertia + without person X really intending to certify what DCO says". The + patch also acknowledged that while `format.signoff` exists, it is + considered a "historical mistake" that should not be emulated by + other commands. + + Elijah Newren found the initial draft somewhat difficult to parse + and suggested an alternative version with more sentence + breaks. Elijah’s draft emphasized that Git avoids automatic + sign-offs specifically to "protect the legal and intentional + significance of a sign-off". He also recommended a shorter version + for the manual pages that would point users toward a more detailed + entry in the FAQ. Johannes Sixt agreed that Elijah’s version was + much easier to read and suggested a minor shortening of the final + sentences to maintain impact. Johannes also emphasized the + importance of leaving a pointer in the manual pages, as users + looking for automation features are more likely to check + documentation for specific commands rather than the general FAQ. + + Junio provided + [version 2](https://lore.kernel.org/git/xmqqv7i62r6w.fsf%40gitster.g) + of the patch, which incorporated Elijah's and Johannes's + refinements. During the final review, Johannes suggested changing + the phrase "pile on more mistakes" to "add more mistakes" to be + clearer for non-native English speakers. Junio adopted this change, + noting it would be clear for everyone. Kristoffer Haugsbakk also + contributed a final polish by suggesting the use of a proper + `linkgit:gitfaq[7]` reference in the manual page. Elijah and brian + both confirmed they were satisfied with the final result. + + During the discussion there was a clear consensus that Git will not + add a global `commit.signoff` configuration. The creation of + permanent documentation in the Git FAQ and manual pages to explain + the legal reasoning behind this decision will prevent future + contributors from wasting time on a feature that would be rejected. + + + +## Other News + +__Various__ + ++ [A data model for Git (and other docs updates)](https://jvns.ca/blog/2026/01/08/a-data-model-for-git/) + by Julia Evans on her blog + (see [comments on Mastodon](https://comments.jvns.ca/post/115861337435768520) + and on [LWN\.net announcement](https://lwn.net/Articles/1053595/)). ++ [SQL Server Management Studio 22 Git Integration](https://www.mssqltips.com/sqlservertip/11585/ssms-22-git-integration/) + by Daniel Calbimonte on MSSQLTips. + + +__Light reading__ + ++ [Diff Algorithm Spelunking](https://dacharycarey.com/2025/12/29/diff-algorithm-spelunking/) + by Dachary Carey. + + See also [Difftastic](https://difftastic.wilfred.me.uk/), + a structural diff tool that understands syntax, + first mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/), + and [Delta](https://dandavison.github.io/delta/), + a syntax-highlighting pager for git, diff, and grep output, + first mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/). ++ [Git Rebase for the Terrified](https://www.brethorsting.com/blog/2026/01/git-rebase-for-the-terrified/) + by Aaron Brethorst on Brethorsting Blog. ++ [I made my own git](https://tonystr.net/blog/git_immitation) + by Tony Strømsnæs on his blog. + As it was created with the goal of improving the author's understanding of Git, + it is intentionally made not compatible with Git: + it uses SHA-256 instead of (current) SHA-1, and zstd instead of zlib. + The example code is written in Rust. + + The [Build your own `Git`](https://github.com/codecrafters-io/build-your-own-x#build-your-own-git) + section of [build-your-own-x](https://github.com/codecrafters-io/build-your-own-x) + lists a few articles about reimplementing parts of Git functionality. + Mentioned in [Git Rev News Edition #40](https://git.github.io/rev_news/2018/06/20/edition-40/). + + [Write yourself a Git!](https://wyag.thb.lt/) + by Thibault Polge is an attempt at explaining the Git version control system + from the bottom up by reimplementing it in Python. + Mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/). ++ [git-pkgs: explore your dependency history](https://nesbitt.io/2026/01/01/git-pkgs-explore-your-dependency-history.html) + by Andrew Nesbitt on his blog. ++ [Git's HTTP server side design does not scale](https://xeiaso.net/notes/2025/distributed-git-ddos/): + a small rant about CGI. Written by Xe Iaso on their blog. ++ [Tracking kernel development with korgalore](https://people.kernel.org/monsieuricon/tracking-kernel-development-with-korgalore) + by Konstantin Ryabitsev on his blog. + TLDR: use [korgalore](https://korgalore.docs.kernel.org/) + to bypass mailing list delivery problems. + (See also [comments on LWN\.net](https://lwn.net/Articles/1055219/#Comments).) ++ [My first 20,000 curl commits](https://daniel.haxx.se/blog/2026/01/17/my-first-20000-curl-commits/) + by Daniel Stenberg on his blog. ++ [GitOps with ArgoCD feels like the right abstraction](https://nick.scialli.me/blog/gitops/) + by Nick Scialli on his blog. ++ [Bob and Alice: a git patch love story](https://cybrkyd.com/post/a-git-patch-love-story/) + by cybrkyd (Just another Cyber Kid). ++ [Allowlist for .gitignore](https://blog.izissise.net/posts/gitignoreallowlist/) + by Hugues Morisset (izissise) on his blog. + Describes a dedicated script to generate the allow-list based `.gitignore` file effectively + to used with a monorepo. ++ [On git show](https://tonystr.net/blog/git) + by Tony Strømsnæs on his blog, + about the use of `git show :`. ++ [How to sync files between two local machines using Git](https://www.howtogeek.com/i-turned-git-into-a-private-github-free-sync-system-between-my-own-machines-and-it-completely-changed-how-i-work/) + by Bobby Jack on How-To Git. ++ [Manage Diagrams in AsciiDoc (with PlantUML) on GitHub](https://lornajane.net/posts/2026/manage-diagrams-in-asciidoc-on-github) + (using a build script) by Lorna Jane Mitchell on LornaJane Blog. + + See also [Include diagrams in your Markdown files with Mermaid](https://github.blog/developer-skills/github/include-diagrams-markdown-files-mermaid/) + (2022) by Martin Woodward & Adam Biagianti on GitHub Blog, + mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [Maintaining shadow branches for GitHub PRs](https://maskray.me/blog/2026-01-22-maintaining-shadow-branches-for-github-prs) + by Fangrui Song (MaskRay). + The goal is to be able to see clean diffs between base and feature branch, + even though the underlying commits were rewritten, + and the base moved ahead. ++ [Post-Agentic Code Forges](https://sluongng.substack.com/p/post-agentic-code-forges), + by Son Luong Ngoc (sluongng) on Son’s Substack. + + See also [Getting AI to Work in Complex Codebases](https://github.com/humanlayer/advanced-context-engineering-for-coding-agents/blob/main/ace-fca.md). ++ [Abandon Git LFS because AI Agents](https://justin.poehnelt.com/posts/abandon-git-lfs-because-agents/) + by Justin Poehnelt (jpoehnelt) on his blog + (includes description on how to use `git filter-repo` to migrate from Git LFS + to standard Git). ++ [How I use Jujutsu](https://abhinavsarkar.net/posts/jj-usage/) + by Abhinav Sarkar on their blog. + + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/) is a Git-compatible version control system, + written in Rust, which was first mentioned in + [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). ++ [How GitHub monopoly is destroying the open source ecosystem](https://ploum.net/2026-01-05-unteaching_github.html) + by Lionel Dricot (Ploum). ++ [Moving from GitHub pages to Codeberg pages](https://kotthoff.dev/posts/2026/github-to-codeberg-pages/) + by Florian Kotthoff on his Hugo & PaperMod powered blog. ++ [Showcasing my Git repositories on the web](https://cybrkyd.com/post/showcasing-my-git-repositories-on-the-web/) + (by creating a static site with GitGen, where everything is generated ahead of time) + by cybrkyd. + + Compare [Gitmal](https://github.com/antonmedv/gitmal), a static page generator for Git repositories, + mentioned in the [previous edition](https://git.github.io/rev_news/2025/12/31/edition-130/). ++ [This tool (pgit) turns any Git repo into a private, offline “GitHub” website](https://www.howtogeek.com/this-easy-tool-gives-me-the-best-of-github-on-my-local-machine/) + by Bobby Jack on How-To Geek. ++ [Git Brag: Highlight and Share Your Open Source Contributions](https://blog.tedivm.com/open-source/2026/01/git-brag-highlight-and-share-your-open-source-contributions/) + by Robert Hafner on his tedious ramblings blog. ++ [Your GitHub Contribution Graph Means Absolutely Nothing - And Here’s Why](https://dev.to/sylwia-lask/your-github-contribution-graph-means-absolutely-nothing-and-heres-why-2kjc) + by Sylwia Laskowska on DEV\.to. ++ [Git forge opinions: GitHub, GitLab, Gitea, Sourcehut](https://cadence.moe/blog/2022-07-03-git-forge-opinions-github-gitlab-gitea-sourcehut) + (2022) by Cadence on cadence’s website. + + + +__Git tools and sites__ + ++ [forgeperf.org](https://forgeperf.org/) - Software Forge Performance Index. + Reports generated with [Lighthouse](https://github.com/GoogleChrome/lighthouse), + originally updated weekly, last update February 7, 2024. + Created and maintained by the [SourceHut](https://sourcehut.org/) forge. ++ [Mirror to Codeberg](https://codeberg.org/Recommendations/Mirror_to_Codeberg): + a central place of information about mirroring repos to Codeberg. + Includes some thoughts about why one would want to switch from GitHub or GitLab, + or at least have a second place for your code: a mirror that's contributable, + with links to other articles. ++ [git-natural-api](https://jsr.io/@fiatjaf/git-natural-api) + is a lightweight git HTTP client for fetching repository data without cloning. + It uses /git-upload-pack custom calls to get access to file trees, + commit history or individual objects. + Written in TypeScript, provides a JavaScript/TypeScript API. + Can be used in browser, using Bun, Deno, or Node\.js. + No license provided. ++ [Grasp](https://ngit.dev/grasp/) + (Git Relays Authorized via Signed-Nostr Proofs) + is a distributed, protocol-first approach to hosting Git repos. + You pre-authorize pushes via signed + [Nostr](https://github.com/nostr-protocol/nostr/) events, + then any compliant server can host your repo. + [ngit-relay](https://ngit.dev/relay) is a Grasp reference implementation + that uses a Dockerized stack: nginx, git-http-backend and a Khatru relay. + + Compare [Tangled](https://tangled.org/), + a social-enabled Git collaboration platform built on top of the AT Protocol + (which is behind the [BlueSky](https://bsky.app/) microblogging federated social media service). + First mentioned in [Git Rev News Edition #125](https://git.github.io/rev_news/2025/07/31/edition-125/), + then in [#126](), + and [#128](). + + Compare [Radicle](https://radicle.xyz/), + an open source, peer-to-peer code collaboration stack built on Git, + first mentioned in [Git Rev News Edition #49](), + and many times since; most recently in [#126](). + + There is also [gitstr (`git str`)](https://github.com/fiatjaf/gitstr), + a tool to send and receive Git patches over Nostr, + using [NIP-34](https://github.com/nostr-protocol/nips/pull/997) + (mentioned in [Git Rev News Edition #109](https://git.github.io/rev_news/2024/03/31/edition-109/)). + + Compare [`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/) + (mentioned in [Git Rev News Edition #26](https://git.github.io/rev_news/2017/04/19/edition-26/) + and [#40](https://git.github.io/rev_news/2018/06/20/edition-40/)). + + Contrast with [ForgeFed](https://forgefed.org/) (formerly GitPub), + a federation protocol for software forges (an [ActivityPub](https://www.w3.org/TR/activitypub/) extension), + mentioned in [Git Rev News Edition #69](https://git.github.io/rev_news/2020/11/27/edition-69/). ++ The [Game of Trees Hub](https://gothub.org/) is a transparently funded + Git repository hosting service. Its infrastructure is based on OpenBSD + and [Game of Trees](https://gameoftrees.org/). + + [Game of Trees (Got)](https://gameoftrees.org/index.html) + is a version control system developed by and for OpenBSD developers, + which wants to remain on-disk compatible with bare Git repositories. + Mentioned in [Git Rev News Edition #54](https://git.github.io/rev_news/2019/08/21/edition-54/). ++ [keifu](https://github.com/trasta298/keifu) (系譜, /keːɸɯ/) is a terminal UI tool + that visualizes Git commit graphs. It shows a colored commit graph, commit details, + and a summary of changed files, and lets you perform basic branch operations. + Written in Rust, under MIT license. ++ [git-com](https://git-com.masukomi.org/) is a TUI tool + for creating structured commit messages that’s easy to configure for each project. + [Written](https://github.com/masukomi/git-com) in Go, under MIT license. ++ [Git Brag](https://gitbrag.tedivm.com/) is an open source web application (or CLI) + that creates a simple report of the contributions you've made to open source projects + on GitHub (it requires logging with GitHub to create the report). + [Written](https://github.com/tedivm/gitbrag) in Python, under MIT license. ++ [GitGen](https://git.cybrkyd.com/GitGen/index.html) + is a lightweight static website generator for local Git repositories written in Python. + It scans a directory of Git repositories and produces a navigable, + self-contained HTML website similar in spirit to cgit or GitWeb, + but without any server-side dependencies. + The generated site includes a repository index, per-repository README rendering, + file listings, commit history, and detailed commit views with diffs. + Under GPLv3 license. + + Compare [Gitmal](https://github.com/antonmedv/gitmal), + a static page generator for Git repositories, + written in Go, under MIT license. + It was mentioned in [Git Rev News Edition #130](https://git.github.io/rev_news/2025/12/31/edition-130/). ++ [pgit](https://github.com/picosh/pgit) is static site generator for git repos. + Demo at . + Written in Go, under MIT license. ++ [GAH!](https://git.sr.ht/~absolutely-vivid/gah) + is your friendly neighborhood good helpful archiver. + It archives GitHub issues and pull requests, + and can create a static site from archives. + Written in Python, under BSD license (Simplified BSD License). ++ [tokendiff](https://github.com/dacharyc/tokendiff) is a Go library and CLI + for token-level diffing with delimiter support. + Tokendiff uses a histogram diff algorithm + that groups semantically related changes together, + producing more readable output than traditional Myers-based approaches + for complex structural changes. + It builds on [diffx](https://github.com/dacharyc/diffx), + a Go implementation of Myers diff. + Under MIT license. ++ [CleanDiff](https://cleandiffapp.com/) is a graphical diffing tool + that shows you what’s changed on a word level, instead of a line level. + It uses the tokendiff library to find semantically relevant changes, + and wraps them in a nice UI and easy Git integration. + [Written](https://github.com/masukomi/cleandiff) in Go and JavaScript, + under MIT license. ++ [patch-hub](https://github.com/kworkflow/patch-hub) + is a terminal-based user interface (TUI) designed to + simplify working with software patches sent through mailing lists + in Linux-related development. It provides an efficient way + to navigate and interact with patches archived on [lore.kernel.org](https://lore.kernel.org/), + specifically for the Linux kernel and adjacent projects. + Written in Rust, under GPL-2.0 license. ++ [Korgalore](https://korgalore.docs.kernel.org/en/latest/index.html) + is a tool for feeding [public-inbox](https://public-inbox.org/README.html) Git repositories, + like [lore.kernel.org](https://lore.kernel.org/), directly into mail targets + (Gmail, JMAP, IMAP, or local maildir) as an alternative to subscribing. + It provides a workaround for Gmail’s notorious hostility + to high-volume technical mailing list traffic. + Written in Python, under GPL-2.0 license. ++ [git-pkgs](https://github.com/git-pkgs/git-pkgs) provides a `git` subcommand + for tracking package dependencies across Git history. + It analyzes your repository to show when dependencies were added, modified, or removed, + who made those changes, and why. + Builds on [bibliothecary](https://github.com/ecosyste-ms/bibliothecary), + the manifest parsing library behind [ecosyste.ms](https://ecosyste.ms/). + Written in Go (originally [in Ruby](https://github.com/git-pkgs/git-pkgs-ruby)), + under MIT license. + + +## Releases + ++ Git [2.53.0-rc2](https://lore.kernel.org/git/xmqqpl6vezt3.fsf@gitster.g/), +[2.53.0-rc1](https://lore.kernel.org/git/xmqq8qdqvqgq.fsf@gitster.g/), +[2.53.0-rc0](https://lore.kernel.org/git/xmqqv7h2bwy6.fsf@gitster.g/) ++ Git for Windows [v2.53.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.53.0-rc2.windows.1), +[v2.53.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.53.0-rc1.windows.1), +[v2.53.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.53.0-rc0.windows.1) ++ GitHub Enterprise [3.19.1](https://docs.github.com/enterprise-server@3.19/admin/release-notes#3.19.1), +[3.18.4](https://docs.github.com/enterprise-server@3.18/admin/release-notes#3.18.4), +[3.17.10](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.10), +[3.16.13](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.13), +[3.15.17](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.17), +[3.14.22](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.22) ++ GitLab [18.8.2, 18.7.2, 18.6.4](https://about.gitlab.com/releases/2026/01/21/patch-release-gitlab-18-8-2-released/), +[18.8.1](https://about.gitlab.com/releases/2026/01/19/gitlab-18-8-1-released/), +[18.8](https://about.gitlab.com/releases/2026/01/15/gitlab-18-8-released/), +[18.7.1, 18.6.3, 18.5.5](https://about.gitlab.com/releases/2026/01/07/patch-release-gitlab-18-7-1-released/) ++ Gerrit Code Review [3.11.8](https://www.gerritcodereview.com/3.11.html#3118), +[3.12.4](https://www.gerritcodereview.com/3.12.html#3124), +[3.13.2](https://www.gerritcodereview.com/3.13.html#3132) ++ GitKraken [11.8.0](https://help.gitkraken.com/gitkraken-desktop/current/) ++ Sourcetree [4.2.16](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.16.html) ++ Garden [2.5.1](https://github.com/garden-rs/garden/releases/tag/v2.5.1), +[2.5.0](https://github.com/garden-rs/garden/releases/tag/v2.5.0) ++ Git Cola [4.17.0](https://github.com/git-cola/git-cola/releases/tag/v4.17.0) ++ GitButler [0.18.7](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.18.7), +[0.18.6](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.18.6) ++ Kinetic Merge [1.14.0](https://github.com/sageserpent-open/kineticMerge/releases/tag/v1.14.0) ++ git-credential-oauth [0.17.2](https://github.com/hickford/git-credential-oauth/releases/tag/v0.17.2), +[0.17.1](https://github.com/hickford/git-credential-oauth/releases/tag/v0.17.1), +[0.17.0](https://github.com/hickford/git-credential-oauth/releases/tag/v0.17.0) + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from Toon Claes. diff --git a/_posts/2026-02-28-edition-132.markdown b/_posts/2026-02-28-edition-132.markdown new file mode 100644 index 000000000..57dee791d --- /dev/null +++ b/_posts/2026-02-28-edition-132.markdown @@ -0,0 +1,502 @@ +--- +title: Git Rev News Edition 132 (February 28th, 2026) +layout: default +date: 2026-02-28 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 132 (February 28th, 2026) + +Welcome to the 132nd 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](https://git.github.io). + +This edition covers what happened during the months of January and February 2026. + +## Discussions + + + + + + +### Support + +* [Slow git pack-refs --all](https://lore.kernel.org/git/CH3PR12MB9026B5872FD42F031970074BC2B3A%40CH3PR12MB9026.namprd12.prod.outlook.com) + + Martin Fick started the discussion by reporting a significant + performance issue where `git pack-refs --all` was taking over five + minutes to complete on a large repository (~3M refs) hosted on an + NFS filesystem. This delay was particularly problematic for Gerrit + servers because Git holds the `packed-refs.lock` for nearly the + entire duration, blocking other reference updates. Martin noted that + JGit was able to perform the same operation in under 20 seconds on + the same repository, suggesting the bottleneck was specific to the + Git implementation. + + The `packed-refs` file is used by Git to store a large number of + references in a single sorted file to avoid the overhead of many + small "loose" reference files. However, updating this file requires + rewriting it entirely, and Git typically verifies that objects exist + and "peels" tags (finding the underlying object a tag points to) + during this process. + + brian m. carlson replied to Martin, suggesting that the slowdown + might be occurring in `should_pack_ref()` because Git needs to + verify that the object at the end of a reference actually + exists. brian also pointed out that NFS was likely a major factor, + as the network latency involved in opening many pack files and + checking loose objects can be substantial. He suggested setting + `receive.unpackLimit` to 1 to reduce the number of loose objects + created in the first place. + + Jeff King (alias Peff) explained that the `packed-refs` file stores + "tag-peeling" information, which requires Git to open each object + for newly written refs via `peel_object()` to read its header and + determine its type. Peff noted that this logic resides in + `write_with_updates()` within `packed-backend.c`. + + Martin conducted further testing using `strace` and `drop_caches` to + eliminate filesystem caching interference. He discovered that while + the actual `write()` calls were fast, there were long gaps—up to + four minutes in total—where the program was not making any system + calls. Martin hypothesized that this "hidden" time was spent by the + kernel handling page faults for `mmap()`ed memory over NFS. + + Patrick Steinhardt concurred that NFS was frequently a source of + such performance issues, mentioning that GitLab had eventually + sunsetted the use of NFS for this reason. Patrick suggested using + `perf(1)` to generate a flame graph to see exactly where the CPU was + spending time. + + Martin provided a summary of a flame graph, which showed about + one-third of the time spent in `_memcmp_sse4_1` and another third in + `unpack_object_header_buffer()`, both accompanied by high page fault + rates. He also noticed significant time spent in a function he + identified as `packed_refs_store_create()`. + + Peff corrected the function name to `packed_ref_store_create()` and + noted that Git might be performing an extra linear pass through the + `packed-refs` file if it lacks certain header tags. He discovered + that JGit-generated files were missing the `sorted` and + `fully-peeled` traits in the header. Without the `sorted` tag, Git + reads the entire file linearly to verify its order before it can + perform binary searches. Peff suggested that JGit should be updated + to write these markers. + + In a final breakthrough, Martin tested adding these tags + manually. He found that while the `sorted` tag did not provide a + major boost, adding the `fully-peeled` tag was the "trigger" that + dropped the execution time from over five minutes to under four + seconds. The absence of the `fully-peeled` tag was forcing Git to + re-peel every reference by looking up the objects in the pack files + over the slow NFS connection. + + Following that discovery, a fix was proposed for JGit in + [Change 1230152](https://eclipse.gerrithub.io/c/eclipse-jgit/jgit/+/1230152). + Adithya Chakilam submitted the patch, titled "pack-refs: Add + sorted/fully-peeled flags," to ensure JGit produces packed-refs + files that Git can process efficiently. + + This resolution not only fixes the immediate performance issue for + Gerrit servers but also ensures that any environment using a mix of + JGit and Git will benefit from reduced lock contention and faster + reference updates. + + + +## Other News + +__Various__ ++ [What’s new in Git 2.53.0?](https://about.gitlab.com/blog/whats-new-in-git-2-53-0/) + by Justin Tobler on GitLab Blog. + The described changes include + fixes for geometric repacking (adding support for promisor remotes), + updates to `git fast-import` commit signature handling options, + and more data being available in `git repo structure` output. ++ [Git 2.53 Released with New Features and Performance Improvements](https://9to5linux.com/git-2-53-released-with-new-features-and-performance-improvements) + by Marcus Nestor on 9to5Linux. ++ [Git 2.53 Released With More Optimizations, One Step Closer To Making Rust Mandatory](https://www.phoronix.com/news/Git-2.53-Released) + by Michael Larabel on Phoronix. ++ Gentoo Linux has kicked off its long transition away from Microsoft's GitHub + to [Codeberg](https://codeberg.org/gentoo/gentoo), an open-source Git-hosting service: + see the [PC Gamer article](https://www.pcgamer.com/software/linux/after-microsoft-couldnt-keep-its-ai-hands-to-itself-a-notoriously-complex-linux-distro-has-started-its-long-march-away-from-github/) + by Joshua Wolens, + and the [Gentoo on Codeberg](https://www.gentoo.org/news/2026/02/16/codeberg.html) + article in Gentoo Linux News. ++ [Vinyl Cache project (formerly Varnish Cache) has left GitHub](https://vinyl-cache.org/organization/moving.html) + for the self hosted [Forgejo](https://forgejo.org/) + instance: ++ [Game of Trees Hub's web interface is live](https://opencollective.com/gothub/updates/web-interface-is-now-enabled-and-we-need-more-subscribers). + + The [Game of Trees Hub](https://gothub.org/) + is a transparently funded Git repository hosting service, + with infrastructure on OpenBSD and the [Game of Trees (GoT)](https://gameoftrees.org/) VCS, + mentioned in the [previous edition](https://git.github.io/rev_news/2026/01/31/edition-131/). ++ [Exploring Solutions to Tackle Low-Quality Contributions on GitHub](https://github.com/orgs/community/discussions/185387) + by Camilla Moraes (@moraesc) on GitHub Community Discussions. ++ [The Former CEO of GitHub [Thomas Dohmke] Just Agreed: Git Wasn't Built for This [AI-based coding]](https://opzero.sh/blog/github-ceo-agrees-git-dead) + by Jeff Cameron on OpZero blog, + following his "interview" with Claude Opus 4.5. + The idea is to version code, intent, constraints, and reasoning together, + and to add a semantic reasoning layer through a "context graph". + Thomas Dohmke [has launched](https://thenewstack.io/thomas-dohmke-interview-entire/) + such an open-source developer platform + for collaboration between developers and AI agents, + [Entire](https://entire.io/). + + On one hand this assumes that AI generated code is a viable path to creating software, + and there would be no technical problems like model collapse, + or economical problems like cost of training and using LLMs. + + On the other hand there exist specialized solutions to help + version data (like [DVC](https://dvc.org) or [Pachyderm](https://www.pachyderm.com/)) + or database schemas. + + +__Light reading__ ++ [Evolving Git for the next decade](https://lwn.net/Articles/1057561/) + by Joe Brockmeier on LWN\.net, reporting about Patrick Steinhardt's (@pks-t) + main track talk at FOSDEM 2026. + The recording of this talk [is available on the FOSDEM site](https://fosdem.org/2026/schedule/event/HTJK33-evolving_git_for_the_next_decade/). ++ [Exploring the .git Directory – How Git Stores Your Code](https://www.git-tower.com/blog/posts/exploring-the-git-directory) + by Bruno Brito on Tower's Blog. ++ [The Ultimate Guide to Git Config: Fine-Tuning Your Git Experience](https://www.git-tower.com/blog/the-ultimate-guide-to-git-config) + by Bruno Brito on Tower's Blog. ++ [TIL that pathnames in git configs can be optional](https://neverready.app/blog/2026/02-git-blame-ignore/) + by Anh Tuan Le on his blog. + It mentions the fact that as of Git 2.52 (Nov 2025), + you can mark config file paths as optional using the `:(optional)` prefix; + see the ['pathname' entry in the "Values" section of the `git config` manpage](https://git-scm.com/docs/git-config#Documentation/git-config.txt-pathname). ++ [Git Reflog Explained: Recover Deleted Commits & Lost Work](https://dev.to/itxshakil/git-reflog-explained-recover-deleted-commits-lost-work-i4n) + by Shakil Alam on DEV\.to. Has a video version. ++ [How to Save Multiple Drafts in Git: A Guide to Using Git Stash](https://www.freecodecamp.org/news/how-to-save-multiple-drafts-in-git-a-guide-to-using-stash/) + by Chidiadi Anyanwu on freeCodeCamp. ++ [Git renames are not renames](https://lornajane.net/posts/2026/git-renames-are-not-renames) + (and where it can cause problems) + by Lorna Jane Mitchell on LornaJane Blog. ++ [The Many Flavors of Ignore Files](https://nesbitt.io/2026/02/12/the-many-flavors-of-ignore-files.html) + by Andrew Nesbitt on his blog. + The post talks about Git's actual semantics for “gitignore syntax”. + + The author wrote [git-pkgs/gitignore](https://github.com/git-pkgs/gitignore), + a Go library that fully matches how Git's gitignore patterns work. ++ [git recent: what branch did I work on?](https://remysharp.com/2026/02/12/git-recent), + about a simple Git alias, by Remy Sharp on his blog. ++ [I Hate GitHub Actions with Passion](https://xlii.space/eng/i-hate-github-actions-with-passion/) + by Przemysław Alexander Kamiński on his xlii.space blog. + + The main problem is with trying to debug [GitHub Actions](https://github.com/features/actions) problems when the action fails; + [Act](https://github.com/nektos/act), a command line tool + to run your GitHub Actions locally using the Docker Engine API, could help there. + Act was first mentioned in [Git Rev News Edition #113](https://git.github.io/rev_news/2024/07/31/edition-113/). + + There is also [WRKFLW](https://github.com/bahdotsh/wrkflw), + a command-line tool for validating and executing GitHub Actions workflows locally, + without requiring a full GitHub environment. + WRKFLW was mentioned in [Git Rev News Edition #126](https://git.github.io/rev_news/2025/08/31/edition-126/). ++ [GitHub Actions: The Hidden Billing Trap](https://theexceptioncatcher.com/2026/02/github-billing/), + on how to avoid unexpected costs with a simple settings adjustment. + Written by Steven Hicks on TheExceptionCatcher. ++ [Git Worktrees with Claude Code, Laravel, and Herd](https://gause.cz/blog/git-worktrees-with-claude-code-laravel-and-herd/) + by Jakub Gause on his blog (also published [on DEV\.to](https://dev.to/gause/git-worktrees-with-claude-code-laravel-and-herd-49d1)). + Describes writing a shell script to help (a [laravel-worktrees Claude skill](https://github.com/gausejakub/claude-skills)). ++ [I Built workz: The Zoxide for Git Worktrees That Finally Fixes .env + node_modules Hell in 2026](https://dev.to/rohansx/i-built-workz-the-zoxide-for-git-worktrees-that-finally-fixes-env-nodemodules-hell-in-2026-2dpj) + by Rohan Sharma on DEV\.to. + Describes his [workz](https://github.com/rohansx/workz) tool + that creates a new worktree, automatically symlinks 22+ types of dependency dirs + (like `node_modules`, `target`, `.venv`), copies env/config patterns, + and can launch your AI coding agent directly in the new worktree. ++ [Agent Identity for Git Commits](https://justin.poehnelt.com/posts/agent-identity-git-commits/) + by Justin Poehnelt on his blog, + about how to set up AI agents to have their commits come from a bot account + without modifying your local Git config. ++ [Your Secrets Aren’t Safe: How the .git Directory Can Leak Data via AI Tools](https://dev.to/yoheiseki/your-secrets-arent-safe-how-the-git-directory-can-leak-data-via-ai-tools-4ioo) + by Yohei Seki on DEV\.to. + The problem is that a malicious MCP server or Skill + can access leaked secrets even if they were removed from the project + (you should treat any committed secret as compromised, and invalidate it; + using `git filter-repo` or BFG RepoCleaner to rewrite history might be a choice). + They can also access authentication information if embedded in `.git/config`. ++ [Git in Postgres](https://nesbitt.io/2026/02/26/git-in-postgres.html) + by Andrew Nesbitt on his blog (following + [Package managers keep using git as a database, it never works out](https://nesbitt.io/2025/12/24/package-managers-keep-using-git-as-a-database.html), + mentioned in [Git Rev News Edition #130](https://git.github.io/rev_news/2025/12/31/edition-130/) from December). + In this post he describes how he created a Git backend using a relational database: + [gitgres](https://github.com/andrew/gitgres) + (implementing the libgit2 `git_odb_backend` and `git_refdb_backend` interfaces + against PostgreSQL through libpq). + He acknowledges that right now gitgres is just a neat hack, + as it currently does not implement delta compression; + nevertheless it might be a good solution for small instances of software forges + for small projects. + + Compare with [git-remote-sqlite](https://github.com/chrislloyd/git-remote-sqlite), + a Git [remote protocol helper](https://git-scm.com/docs/gitremote-helpers) + that helps you store a Git repository in a SQLite database, + mentioned in [Git Rev News Edition #127](https://git.github.io/rev_news/2025/09/30/edition-127/). ++ [The nightmare that is squash merge ft GitHub](https://www.narendravardi.com/the-nightmare-that-is-squash-merge-ft-github/) + by Narendra Vardi on his blog, + about how to fix merge conflicts caused by squash merge using interactive rebase. ++ [How Poor Git Branching Practices Quietly Damage Software Quality](https://akdevcraft.substack.com/p/how-poor-git-branching-practices) + by AK DevCraft on Substack (and also [on DEV\.to](https://dev.to/akdevcraft/how-poor-git-branching-practices-quietly-damage-software-quality-nf7)), + about the Environment-Based Branching antipattern. + + The [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html) + by Martin Fowler, mentioned first in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/), + also talks about this antipattern. ++ [Why [pure] GitOps Doesn't Work at Scale (and What to Do Instead)](https://ctrlplane.dev/blog/why-gitops-doesnt-work-at-scale) + by Justin Brooks (@jsbrooks) at ctrlplane (also [on DEV\.to](https://dev.to/jsbroks/why-gitops-doesnt-work-at-scale-and-what-to-do-instead-2p91)). + He writes why enterprise scale workflows need platform-level orchestration. ++ [GitHub Actions Is Slowly Killing Your Engineering Team](https://www.iankduncan.com/engineering/2026-02-05-github-actions-killing-your-team/) + and [No, Really, Bash Is Not Enough: Why Large-Scale CI Needs an Orchestrator](https://www.iankduncan.com/engineering/2026-02-06-bash-is-not-enough/) + by Ian Duncan on his blog. ++ [My self-hosted Git workflow with GitGen](https://cybrkyd.com/post/my-self-hosted-git-workflow-with-gitgen/) + by cybrkyd; it continues [Showcasing my Git repositories on the web](https://cybrkyd.com/post/showcasing-my-git-repositories-on-the-web/) + from the [previous edition](https://git.github.io/rev_news/2026/01/31/edition-131/). + + [GitGen](https://git.cybrkyd.com/GitGen/index.html) is a lightweight static website generator + for local Git repositories written in Python; + similar tools are [Gitmal](https://github.com/antonmedv/gitmal) + and [pgit](https://github.com/picosh/pgit), both written in Go. ++ [The bare minimum for syncing Git repos](https://alexwlchan.net/2026/bare-git/) + by Alex Chan on her blog. ++ [The Disconnected Git Workflow](https://ploum.net/2026-01-31-offline-git-send-email.html) + by Lionel Dricot (Ploum) + (sidenote: there is also [git-credential-oauth](https://github.com/hickford/git-credential-oauth) + that can solve some of the problems with sending a small one-off patch to a GitHub project). ++ [git.usebox.net and bots](https://www.usebox.net/jjm/blog/git-usebox-net-and-bots/) + by Juan J. Martínez on his Personal Log, + about his modification of [gitweb](https://git-scm.com/docs/gitweb) + to block AI crawlers (that do not respect `robots.txt`). ++ [I Built a Tool That Writes Obituaries for Your Deleted Code](https://dev.to/lakshmisravyavedantham/i-built-a-tool-that-writes-obituaries-for-your-deleted-code-235l) and + [commit-prophet: I Built a Tool That Predicts Buggy Files Using Git History](https://dev.to/lakshmisravyavedantham/commit-prophet-i-built-a-tool-that-predicts-buggy-files-using-git-history-35mk) + by Lakshmi Sravya Vedantham on DEV\.to. ++ [I Read 9,000 Lines of a Stranger's Mergetool](https://dev.to/ticktockbent/i-read-9000-lines-of-a-strangers-mergetool-5bf0) + by Wes on DEV\.to, about the [ec (easy-conflict)](https://github.com/chojs23/ec) tool. + This is the first entry in the [Review Bomb series](https://dev.to/ticktockbent/series/36103), + where Wes finds under-the-radar projects on GitHub, reads the code, contributes something, + and writes it up. ++ [Return to GitHub](https://underlap.org/return-to-github/) + by Glyn Normington on the underlap blog; + the move of [ipc-channel-mux](https://crates.io/crates/ipc-channel-mux) + from [Codeberg](https://codeberg.org/glyn/ipc-channel-mux) to [GitHub](https://github.com/glyn/ipc-channel-mux) + was caused by the need for CI on macOS and Windows + (without having to self-host CI runners). ++ [Simplifying Git by Using GitButler](https://blog.gitbutler.com/simplifying-git): + seeing Git state, branching without fear, understanding and using stacked changes, + better interactive rebase, easier selective staging, recoverability. + Written by PJ Hagerty on GitButler Blog. + [Git Butler](https://www.gitbutler.com/) was first mentioned + in [Git Rev News Edition #46](https://git.github.io/rev_news/2018/12/19/edition-46/). ++ [GitButler CLI Is Really Good](https://matduggan.com/gitbutler-cli-is-really-good/) + by @matdevdug on matduggan\.com. ++ [Introducing jjq, a local merge queue for jj](https://pauladamsmith.com/blog/2026/02/introducing-jjq-a-local-merge-queue-for-jj.html) + by Paul Smith on his blog. + [Jujutsu (`jj`)](https://jj-vcs.dev/) is a Git-compatible + version control system written in Rust, which was first mentioned + in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). + ++ [15+ years later, Microsoft morged my diagram](https://nvie.com/posts/15-years-later/) + by Vincent Driessen, on how Microsoft's Learn portal included + an AI generated diagram with the rough shape of the one in the + [A successful Git branching model](https://nvie.com/posts/a-successful-git-branching-model/), + but with some GenAI glitches (like the text "Bugfixes from rel, branch may be + **continvoucly** morged back into develop"), and arrows missing + or pointing in the wrong direction, or missing the node. + The image has been replaced since then; + you can see the original compared to the Microsoft one + in the [PC Gamer article about this issue](https://www.pcgamer.com/software/ai/microsoft-uses-plagiarized-ai-slop-flowchart-to-explain-how-github-works-removes-it-after-original-creator-calls-it-out-careless-blatantly-amateuristic-and-lacking-any-ambition-to-put-it-gently/). + + +__Easy watching__ ++ [Evolving Git for the next decade](https://fosdem.org/2026/schedule/event/HTJK33-evolving_git_for_the_next_decade/) + by Patrick Steinhardt [47:46], + a main track talk at FOSDEM (Free and Open source Software Developers' European Meeting), + given on Saturday, 31 January 2026, Brussels. + See also [the summary of this talk](https://lwn.net/Articles/1057561/) + by Joe Brockmeier on LWN\.net (mentioned in the "Light reading" section). ++ [An Efficient Git Workflow For High-Stakes Projects](https://fosdem.org/2026/schedule/event/3VNNBK-efficient-git-for-high-stakes/) + by Vladislav Shpilevoy [45:12], + a main track talk at FOSDEM, on Saturday, 21 January 2026, Brussels. + The example project this workflow was used in is [tarantool](https://github.com/tarantool/tarantool/). ++ [Pull requests maintainers will love to review](https://fosdem.org/2026/schedule/event/L7ERNP-prs-maintainers-will-love/) + by Alya Abbott, + a main track talk at FOSDEM, on Saturday, 21 January 2026, Brussels. + [Slides](https://docs.google.com/presentation/d/1rpq4OsOTpt8nQx_QzBuMzICCenUpeyCzsk4sc-gVpyA/edit?slide=id.g32d6911bc12_0_0#slide=id.g32d6911bc12_0_0) available as Google Slides. ++ [Mercurial, 20 years and counting: how are we still alive and kicking?](https://fosdem.org/2026/schedule/event/AGWUVH-mercurial-aint-you-dead-yet/) + by Raphaël Gomès and Pierre-Yves David [50:02], + a main track talk at FOSDEM, on Saturday, 21 January 2026, Brussels. ++ [Lost Your Commits? Git Reflog Saves You](https://www.youtube.com/watch?v=NN-8kP7nClA) + by Shakil Alam on the Shakil Tech channel on YouTube [5:55]. ++ [Configure your Git](https://www.youtube.com/watch?v=G3NJzFX6XhY) + by Denis Gruzdev aka @codingjerk + on the codingjerk channel on YouTube [14:02]: + a brief review on their personal git config / setup, + showing some of the most used commands, settings, and aliases. + + +__Git tools and sites__ ++ [mise-en-place](https://github.com/jdx/mise) or `mise`, a CLI tool that is + the front-end to your dev env + (managing dev tools like node, python, cmake, terraform, etc; and + managing tasks used to build and test projects), + [introduced monorepo tasks](https://github.com/jdx/mise/discussions/6564), + allowing you to manage tasks across multiple projects in a single repository, + with each project maintaining its own tools, environment variables, and tasks. + + A monorepo is a software-development strategy + in which the code for a number of projects is stored in the same repository. + See for example the [monorepo.tools](https://monorepo.tools/) site, + first mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [difi](https://github.com/oug-t/difi) is a TUI tool that helps you + review and refine Git diffs before you push. + Written in Go using the [Bubble Tea](https://github.com/charmbracelet/bubbletea) library, + under MIT license. ++ [deff](https://github.com/flamestro/deff) is a TUI tool providing + interactive, side-by-side file review for Git diffs + with per-file navigation, vertical and horizontal scrolling, + syntax highlighting, and added/deleted line tinting. + Written in Rust, under MIT license. ++ [ec (easy-conflict)](https://github.com/chojs23/ec) is a terminal Git mergetool + with a 3-way TUI and Neovim integration. + Written in Go, under MIT license. ++ [Maiao](https://github.com/adevinta/maiao): Gerrit-style code review workflow for GitHub. + Maiao brings the power of stacked pull requests to GitHub, + enabling you to break large features into small, reviewable commits + where each commit becomes its own PR. Provides a `git review` command. + Written in Go, under MIT license. + + Stacked Pull Requests, also under the name Stacked Diffs, + were mentioned in [Git Rev News Edition #44](https://git.github.io/rev_news/2018/10/24/edition-44/), + [#105](https://git.github.io/rev_news/2023/11/30/edition-105/), + [#111](https://git.github.io/rev_news/2024/05/31/edition-111/) + (with links to other editions with other articles, and to related tools), + [#115](https://git.github.io/rev_news/2024/09/30/edition-115/). + [#118](https://git.github.io/rev_news/2024/12/31/edition-118/), + [#127](https://git.github.io/rev_news/2025/09/30/edition-127/), + and [#128](https://git.github.io/rev_news/2025/10/31/edition-128/). + + Compare with [`av`](https://github.com/aviator-co/av), + a command-line tool that helps you manage your stacked PRs on GitHub. + It was mentioned in [Git Rev News Edition #115](https://git.github.io/rev_news/2024/09/30/edition-115/). + + [GitButler](https://docs.gitbutler.com/), a Source Code Management system + designed to manage your branches, + [also supports stacked branches](https://blog.gitbutler.com/stacked-branches-with-gitbutler), + which was mentioned in [Git Rev News Edition #118](https://git.github.io/rev_news/2024/12/31/edition-118/). ++ [Diffs](https://diffs.com/), aka [`@pierre/diffs`](https://github.com/pierrecomputer/pierre/tree/main/packages/diffs), + is an open source diff and file rendering library built on + the [Shiki](https://shiki.style/) syntax highlighter. + It supports split (side-by-side) or stacked (unified diff) layout, + different diff highlight styles, in-line highlighting, wrapping, and line numbers. + Includes an annotation framework for injecting comments and annotations, and more. + Written in TypeScript, under Apache 2.0 license. + Intended for use in web applications. + Diffs is in early active development—APIs are subject to change. + + Compare with [diff2html](https://diff2html.xyz/) ([repo on GitHub](https://github.com/rtfpessoa/diff2html)), + a pretty diff to HTML JavaScript library: + diff parser and pretty HTML generator. + Written in TypeScript, under MIT license. + Provides [diff2html-cli](https://github.com/rtfpessoa/diff2html-cli), + [used by](https://diff2html.xyz/#users), among others, + [Ungit](https://github.com/FredrikNoren/ungit), + [Diffy](https://diffy.org/), [git-explorer](https://github.com/thescientist13/git-explorer), + [Simple Git](https://github.com/mauricioszabo/simple-git), + [git-tabular-diff](https://github.com/jstritch/git-tabular-diff). + diff2html was first mentioned in [Git Rev News Edition #98](https://git.github.io/rev_news/2023/04/30/edition-98/), + and diff2html-cli in [Git Rev News Edition #14](https://git.github.io/rev_news/2016/04/20/edition-14/). ++ [Gitnuro](https://gitnuro.com/) is a multiplatform Git client, + based on JetBrains Compose and JGit. + [Written](https://github.com/JetpackDuba/Gitnuro) in Kotlin, under GPL 3.0 license. ++ [RelaGit](https://rela.dev/) - the elegant solution to graphical version control, + is a multiplatform Git GUI written in TypeScript. Under LGPL 3.0 license. + RelaGit is in early beta stage. ++ [SourceGit](https://github.com/sourcegit-scm/sourcegit) is an open-source Git GUI client + that supports Windows, macOS, and Linux. + Includes built-in [conventional commit](https://www.conventionalcommits.org/) message helper, + and support for using AI to generate commit messages. + Written in C#, using the [Avalonia](https://avaloniaui.net) cross-platform UI framework, + under MIT license. ++ [git-toolbelt](https://github.com/nvie/git-toolbelt) is a suite of useful Git commands + that aid with scripting or every day command line usage. + Written in shell, under BSD-3-Clause license. + + See [Git power tools for daily use](https://nvie.com/posts/git-power-tools/) + by Vincent Driessen, the author of git-flow (2018). ++ [sqldef](https://sqldef.github.io/) is a [CLI tool](https://github.com/sqldef/sqldef) for diffing two SQL schemas. + You can use it to manage the migration of RDBMSs using regular SQL DDLs. + Supported databases: MySQL, MariaDB, TiDB, PostgreSQL, SQL Server, and SQLite3. + Written in Go, under MIT license + (for everything except parser, which is under Apache 2.0 license). + Compare with: + + [sqldiff.exe](https://www.sqlite.org/sqldiff.html), + a command-line utility program (Windows binary) + that displays content differences between two SQLite databases, + mentioned in [Git Rev News Edition #87](https://git.github.io/rev_news/2022/05/26/edition-87/). + + [pg-diff](https://michaelsogos.github.io/pg-diff/), + a PostgreSQL schema and data comparing tool written in JavaScript, + mentioned in [Git Rev News Edition #108](https://git.github.io/rev_news/2024/02/29/edition-108/). + + [git-sqlite](https://github.com/cannadayr/git-sqlite), + a custom diff and merge driver for SQLite, + mentioned in [Git Rev News Edition #127](https://git.github.io/rev_news/2025/09/30/edition-127/). ++ [Fresh File Explorer](https://github.com/FreHu/vscode-fresh-file-explorer) + is a VS Code file explorer which shows only recently modified files + based on a combination of Git history and your pending changes. + Written in TypeScript, under MIT license. + + See also [Fresh File Explorer - vscode extension for navigating recent changes](https://dev.to/frehu/fresh-file-explorer-vscode-extension-for-navigating-recent-changes-13c1) + by Frederik Hudák on DEV\.to. ++ [Git Remote Color](https://github.com/jpoehnelt/vscode-git-remote-color) + is a VS Code extension that automatically colors your VS Code workspace + based on the git remote URL: every repository gets its own unique, consistent color. + Inspired by the [Peacock](https://marketplace.visualstudio.com/items?itemName=johnpapa.vscode-peacock) extension, but fully automatic using a deterministic hash of the git remote. + + See also [VS Code Git Remote Color](https://justin.poehnelt.com/posts/vscode-git-remote-color/) + by Justin Poehnelt on his blog. ++ [commit-prophet](https://github.com/LakshmiSravyaVedantham/commit-prophet) + is a command line tool that predicts which files are more likely to have bugs + using Git history patterns and co-change analysis. + Written in Python, under MIT license. ++ [Majutsu](https://github.com/0WD0/majutsu) provides a [Magit](https://magit.vc/)-style + interface for [Jujutsu (`jj`)](https://www.jj-vcs.dev/), + offering an efficient way to interact with JJ repositories from within Emacs. + Primary project license is GNU GPL v3 or later, + but it was previously distributed under MIT license terms. ++ [The Missing GitHub Status Page](https://mrshu.github.io/github-statuses/) + is a third-party service that tracks 90 days uptime; + created because GitHub stopped updating its [GitHub Status](https://www.githubstatus.com/) page + with aggregate uptime numbers. + + +## Releases + ++ Git [2.53.0](https://lore.kernel.org/git/xmqq4inz13e3.fsf@gitster.g/) ++ Git for Windows [v2.53.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.53.0.windows.1) ++ GitLab [18.9.1, 18.8.5, 18.7.5](https://about.gitlab.com/releases/2026/02/25/patch-release-gitlab-18-9-1-released/), +[18.9](https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/), +[18.8.4, 18.7.4, 18.6.6](https://about.gitlab.com/releases/2026/02/10/patch-release-gitlab-18-8-4-released/), +[18.6.2, 18.7.1, 18.8.1](https://about.gitlab.com/releases/2026/02/06/patch-release-gitlab-ai-gateway-18-8-1-released/), +[18.8.3, 18.7.3, 18.6.5](https://about.gitlab.com/releases/2026/02/04/gitlab-18-8-3-released/) ++ Gerrit Code Review [3.11.9](https://www.gerritcodereview.com/3.11.html#3119), +[3.12.5](https://www.gerritcodereview.com/3.12.html#3125), +[3.13.3](https://www.gerritcodereview.com/3.13.html#3133), +[3.13.4](https://www.gerritcodereview.com/3.13.html#3134) ++ GitHub Enterprise [3.20.0](https://docs.github.com/enterprise-server@3.20/admin/release-notes#3.20.0), +[3.19.2](https://docs.github.com/enterprise-server@3.19/admin/release-notes#3.19.2), +[3.18.5](https://docs.github.com/enterprise-server@3.18/admin/release-notes#3.18.5), +[3.17.11](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.11), +[3.16.14](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.14), +[3.15.18](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.18), +[3.14.23](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.23) ++ GitKraken [11.9.0](https://help.gitkraken.com/gitkraken-desktop/current/) ++ GitHub Desktop [3.5.5](https://desktop.github.com/release-notes/) ++ Sourcetree [4.2.17](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.17.html) ++ Git Cola [4.17.1](https://github.com/git-cola/git-cola/releases/tag/v4.17.1) ++ GitButler [0.19.3](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.19.3), +[0.19.2](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.19.2) ++ Sublime Merge [Build 2123](https://www.sublimemerge.com/download) +- Tower for Mac [15.1](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) +- Tower for Windows [11](https://www.git-tower.com/blog/tower-windows-11) +- git-flow-next [1.0](https://git-flow.sh/changelog/) + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from Bruno Brito, Michael Ryzhikov and Shreyansh Paliwal. diff --git a/_posts/2026-03-31-edition-133.markdown b/_posts/2026-03-31-edition-133.markdown new file mode 100644 index 000000000..dd89ecff3 --- /dev/null +++ b/_posts/2026-03-31-edition-133.markdown @@ -0,0 +1,827 @@ +--- +title: Git Rev News Edition 133 (March 31st, 2026) +layout: default +date: 2026-03-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 133 (March 31st, 2026) + +Welcome to the 133rd 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](https://git.github.io). + +This edition covers what happened during the months of February and March 2026. + +## Discussions + + + + + +### Support + ++ [git-am applies commit message diffs](https://lore.kernel.org/git/bcqvh7ahjjgzpgxwnr4kh3hfkksfruf54refyry3ha7qk7dldf@fij5calmscvm) + + On February 6, 2026, Matthias Beyer forwarded to the Git mailing list a + surprising warning that had just circulated on Mastodon: + + > PSA: Did you know that it's **unsafe** to put code diffs into your + > commit messages? + > + > Such diffs will be applied by patch(1) (also git-am(1)) as part of + > the code change! + > + > This is how a sleep(1) made it into i3 4.25-2 in Debian unstable. + + The incident had originated in the i3 window manager project, where a + commit message contained an unindented diff for illustration purposes. + When Debian packagers later applied the patch using `patch`, the diff + in the commit message was applied as actual code, sneaking a spurious + `sleep` call into the Debian unstable package. Matthias asked the + list whether this was a known issue and whether it could be an attack + vector. + + To understand why this happens, it helps to know how `git am` parses + its input. When processing a patch email, it must split the stream into + two parts: the commit message and the actual patch to apply. It does + this by treating the first occurrence of any of the following lines as + the boundary between the two: + + - a line consisting of only three dashes (`---`), + - a line beginning with `diff -`, or + - a line beginning with `Index: `. + + Everything before that boundary becomes the commit message; everything + after is fed to the patch application machinery. Crucially, `git am` + scans from the top of the email, so the very first such line it + encounters terminates the commit message regardless of whether that + line was meant to be part of the message text. + + This design dates back to the tool's origins. As Jeff King (also known + as "Peff") quickly explained in reply to Matthias, `git am` was + originally designed to handle patches sent by all kinds of people, not + just Git users. A contributor might have generated a diff with plain + GNU `diff` and typed the rest of the email by hand, without any `---` + separator. The tool was therefore intentionally permissive: it would + find a `diff -` line anywhere in the email and treat it as the start + of the patch. Peff demonstrated this with a live example. He fed + `git am` a hand-typed email containing a GNU diff, and it produced the + expected commit. + + This historical context also explained why `git am` is notoriously + hard to fix: "I don't think there is a way to unambiguously parse the + single-stream output that format-patch produces," Peff wrote, noting + that he could find at least three earlier discussions of the same + problem (in 2015, 2022, and 2024). The stream is simply ambiguous by + design. Even the `---` marker itself cannot be used to robustly split + things, since `---` on a line by itself is a valid diff hunk line + indicating that the string `--` was removed from a file. + + Matthias proposed parsing from the end of the email rather than from + the top. Peff replied that this would still be ambiguous for the same + reasons, and would introduce new corner cases. + + Jacob Keller noted early on that the issue was certainly surprising but + that he was unsure it constituted a security attack vector, since + someone should be reading the commit message before applying. But + Matthias pushed back: the whole point was that nobody realized the + behavior was there. He called it "sheer luck" that it was only a + `sleep` and not something more malicious crafted as a diff in the + commit message. + + Florian Weimer wondered whether the `git format-patch` output was + really ambiguous, given that the patch section is normally preceded by + a diffstat block. Peff replied that the diffstat is optional and is not + even parsed by the receiving side at all. + + Jakob Haufe added an important nuance: even if `git am` was fixed to + require indented diffs, it would only partially mitigate the problem, + because `patch` (which many distributions use to apply upstream + fixes to packages) is even more permissive. It will strip a consistent + level of indentation from diffs before applying them. He quoted the + patch(1) manual page: "If the entire diff is indented by a + consistent amount, [...] this is taken into account." The i3 incident + had in fact been triggered by `patch`, not `git am`. + + Kristoffer Haugsbakk synthesized this into a clear summary of the + situation and immediately proposed documenting it. + + Matthias also highlighted the broader applicability beyond email + workflows: Linux distributions like NixOS routinely fetch patches + directly from upstream Git repositories and apply them to packages + using `patch`. He noted that even after 15 years of using Git and + being comfortable with email patch workflows, he himself had not known + about this behavior. + + Several directions were then explored to look for solutions. + + Peff observed the irony that `git format-patch` does have an `--attach` + option which puts the message and the patch in separate MIME parts — + making them unambiguous in principle. However, `git mailinfo` (which + powers `git am` under the hood) decodes both parts into a single + stream and still treats a `diff` line in the message part as the start + of a patch. Fixing this would require careful surgery to avoid + breaking the existing forgiving handling of patches received as a + single attachment. + + Patrick Steinhardt suggested that even if parsing cannot be made + unambiguous, `git am` could at least detect the ambiguity and bail by + default with an `--accept-ambiguous-patch` override. Jacob Keller + proposed going further: a new "unambiguous mode" where + `git format-patch` would produce output that new versions of `git am` + could distinguish unambiguously, while old versions would still handle + the common case the same way as before. + + Jacob had also sketched a concrete scheme: add a new unambiguous + marker after the `---` separator, so that old versions of `git am` + would still cut at the `---` and ignore everything up to the diff, while + new versions would wait for the new marker and correctly ignore any + diff appearing before it. Since the new marker would come after `---`, + it would not be inserted into the commit message when applied. + + Peff replied that this was trickier than it sounded: the new marker + would have to be something that could never appear legitimately in a + commit message, and both sides would need to complain if they saw + multiple markers. He explored further options: reversible quoting of + `---` and `diff` lines in the commit message (analogous to the `>From` + quoting used in mbox files), applied only when the message would + otherwise be ambiguous. This way, if an older `git am` received the + mail, the worst case would be visible quoting in the commit message — + ugly but readable. Junio Hamano, the Git maintainer, added another + thought: refusing to accept unsigned patches at all. + + Peff also proposed a simpler receiver-side improvement: a + `git am --strict` mode that would always require a `---` separator + before the diff, on the assumption that well-formatted patches from Git + always have one. This would not help with diffs that legitimately + appear before the `---`, but would eliminate the most common accidental + cases. + + None of these ideas led to an immediate implementation, as they all + involve backward compatibility tradeoffs that would need careful + thought. + + On February 8, Kristoffer sent a documentation patch titled "doc: add + caveat about round-tripping format-patch" which introduced a new + `Documentation/format-patch-caveats.adoc` file explaining the + behavior. The caveat was designed to be included in the documentation + for git-am(1), git-format-patch(1), and git-send-email(1). + + Junio reviewed + [version 1](https://lore.kernel.org/git/format-patch_caveats.281@msgid.xyz) + and offered a correction to the wording: rather than saying that an + unindented diff in the commit message "will not only cut the message + short but cause that very diff to be applied, along with the patch in + the patch section," Junio noted that the outcome is not so + deterministic. The diff in the commit message might get applied, or + the patch machinery might trip on something and fail outright. He also + flagged that the space after the `---` in the cover letter was + inconsistent with the project's conventions. + + Phillip Wood reviewed the patch and found the mention of + git-send-email(1) a bit distracting, since that command merely runs + git-format-patch(1) and does not do any formatting itself. He also + suggested wording improvements: replacing "One might want to use [...] + patch(1)" with "Given these limitations, one might be tempted to [...]". + + Kristoffer incorporated all of this in + [version 2](https://lore.kernel.org/git/V2_format-patch_caveats.34b@msgid.xyz), + which dropped the git-send-email(1) mention from the introductory + paragraph (while keeping the CAVEATS section in its documentation, for + users who encounter it there), removed example code blocks in favor of + clearer prose, and used the list of message-terminating patterns + already present in git-am(1)'s documentation. Junio reviewed it and + queued it with the comment "Nicely written." + + A third version, + [version 3](https://lore.kernel.org/git/V3_format-patch_caveats.354@msgid.xyz), + was submitted and received Junio's approval to go to `next`. + + Meanwhile, Phillip had observed that since the parsing cannot be fixed, + "perhaps we should update our sample `commit-msg` hook to reject + messages that will cause problems." On February 7, he sent a 3-patch + series titled "commit-msg.sample: reject messages that would confuse + `git am`". The series: + + 1. Added a `.gitattributes` rule for sample hooks (which are shell + scripts but have `.sample` extensions). + 2. Extended the sample `commit-msg` hook to scan the body of the commit + message for unindented `diff -` and `Index: ` lines and reject the + commit with a helpful error message. + 3. Added a further check to detect `---` separator lines in the message + body, which would cause `git am` to silently truncate the commit + message. + + Peff reacted with measured skepticism to patch 3 in + [version 1](https://lore.kernel.org/git/cover.1770476279.git.phillip.wood@dunelm.org.uk): + he and Junio both pointed out that they themselves sometimes use `---` + intentionally in commit messages to add notes that will appear in the + formatted patch email but not end up in the final commit message when + applied. Junio explained the trick: "when I know what I want to write + below the three-dash lines, I would commit with `---` and additional + notes below it, so that I do not forget during format-patch. When the + commit is turned into a patch email [...] `am` cuts at the first one, + and `apply` knows that the garbage lines at front, including + three-dash lines, do not matter until it sees `^diff`, this works out + perfectly well." + + Peff confirmed he used the same trick. Phillip, acknowledging that at + least three developers relied on this behavior, decided to drop patch 3 + entirely, reducing the series from three patches to two in + [version 2](https://lore.kernel.org/git/cover.1770993281.git.phillip.wood@dunelm.org.uk). + He also refined the diff detection in the body: the v2 correctly skips + the first paragraph of the message (which becomes the email Subject + header and so does not go through the patch boundary detection), skips + lines below a scissors line, and handles the `core.commentChar` and + `core.commentString` configuration options for determining which lines + are comments. Junio reviewed version 2 with detailed questions about + the scissors-line logic. + + Kristoffer verified that version 2 worked with `git commit + --cleanup=scissors --verbose` and was satisfied. + + The discussion did not lead to a fundamental fix to the ambiguous + parsing in `git am`, which remains an open problem with no obvious + backward-compatible solution. But it produced two concrete + improvements that were accepted and are now in `master`: a CAVEATS + section in the documentation for git-am(1), git-format-patch(1), and + git-send-email(1) spelling out exactly how commit messages can + inadvertently interfere with patch application, and an enhanced sample + `commit-msg` hook that rejects messages containing unindented diffs. + + The thread also served as a useful reminder that this problem is not + limited to email workflows: any project that generates patches from + Git commits using `git format-patch` and applies them with `patch` + or `git am` is exposed to it. The practical advice for authors is + simple: if you include diffs in commit messages for illustrative + purposes, make sure to indent them consistently, and be aware that + even that does not protect you from `patch`. + +## Developer Spotlight: Olamide Caleb Bello + +_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 Olamide Caleb Bello, a software engineer based in Nigeria. I studied + Economics, but I’ve always been curious about technology and how + systems work behind the scenes. That curiosity led me to start teaching + myself web development, and over time I found myself drawn more + towards backend and systems-oriented work. + + I became especially interested in understanding how complex tools are + built and maintained, which led me to open source. I contributed to Git + as part of the Outreachy program, where I got to work on improving parts + of Git’s internal workflows. + + These days, I enjoy working on tools that make development smoother + for others, and I’m particularly interested in open source and + distributed systems. + +* **How did you initially become interested in contributing to Git, + and what motivated you to choose it as your Outreachy project?** + + I initially saw Git as just a tool I needed to get my work done. For a + long time, my workflow was basically just `git add`, `git commit`, `git push`, + and `git pull`, without thinking much about what was happening underneath. + That started to change when I ran into some particularly messy merge conflicts + that forced me to slow down and really question how Git was managing + history and combining changes. + + Around the same time, I was becoming more interested in systems in + general, thinking about tools like the kernel, systemd, and Git + itself, and how they work under the hood. That experience pushed me to + look deeper into Git’s internals, and I quickly realized how much + depth there was beneath the surface. + + When I came across the Outreachy project, choosing Git felt natural, I + wanted to challenge myself and contribute to a tool I had used for + years but didn’t fully understand, while learning from experienced + maintainers. + +* **How do you feel your contribution has impacted the Git community + or the broader open source ecosystem?** + + [My work](https://cloobtech.hashnode.dev/beginning-my-outreachy-opensource-internship-at-git-overview-and-project-description) + focused on reducing Git’s reliance on global state by refactoring + repository-specific variables into a more localized structure. Each repository + instance now manages its own configuration independently, improving modularity + and reducing the risk of cross-repository issues. + + Through this work, I came to appreciate how changes at this level contribute to + Git’s long-term direction, particularly efforts to make it more reusable as a + library. Even though these changes aren’t directly visible to users, they make + the system safer and easier to extend. + + Being part of that process gave me a deeper respect for the level of thought + and the care that goes into maintaining Git. + +* **Is there any aspect of Git that you now see differently after + having contributed to it?** + + Before contributing, I thought Git was just a bunch of commands I + typed every day. Working on it showed me a whole hidden world, + how configurations are saved and read, how each repository handles + its own settings, and what the index is really doing behind the scenes. + Some of it was so intricate I almost felt like Git was trolling me! + + Seeing all this up close turned what felt like a simple tool into a + carefully designed system, and it gave me a much deeper appreciation + for the thought and care behind every command. + +* **How do you balance your contributions with other responsibilities + like work or school?** + + At the moment, I’m not tied to a full-time job or school, but I spend a lot + of time learning new tech and doing freelance work. I usually dedicate small, + focused sessions to Git contributions, sometimes just an hour here or there, + and it’s surprising how much progress you can make that way. This rhythm lets + me keep learning, experimenting, and contributing without feeling overwhelmed. + +* **Can you share how Outreachy helped enhance your technical and + non-technical skills (like communication, project management, + etc.)?** + + Outreachy was a huge growth opportunity for me, both technically and personally. + On the technical side, I deepened my understanding of Git internals, learned to + work effectively in a large C codebase, and tackled complex refactoring of core + systems. On the non-technical side, I honed my communication skills by engaging + actively on the Git mailing list, responding to feedback, and documenting my + work clearly for others. The experience also helped me improve project + discipline, learning how to plan and iterate on tasks in a structured way. + +* **What was your biggest takeaway or learning from Outreachy that + you now apply regularly in your work?** + + My biggest takeaway from Outreachy was learning how even small, careful changes + can have a big impact in a large system like Git. During Outreachy, for even + the tiniest change, I had to run over 32,000 test cases just to be + sure it wouldn’t break anything! I approach my work by breaking tasks into + smaller steps, testing thoroughly, and thinking through the consequences + before making changes. This mindset has become a regular part of how I work, + whether I’m contributing to open source or building my own projects. + +* **What was the biggest challenge you faced during your contributions + to Git, and how did you overcome it?** + + The toughest part of contributing to Git was navigating its huge and complex + C codebase. I had to wrap my head around global variables, repository-specific + state, and how configs were stored and read. At first, it felt overwhelming, + and I constantly worried that even a small change might break something. + + I overcame this by tackling one piece at a time, reading the code carefully, + testing thoroughly, and admittedly, disturbing my mentors quite a bit! 😂 I’m + especially grateful to Christian Couder and Usman Akinyemi, who guided me + patiently. Christian taught me how to ask questions properly, showed me how to + debug effectively, and always encouraged me to think through problems step by + step. Usman was equally supportive, often checking in and joining coding + sessions with me. Both helped me understand Git’s internal architecture and + gave me the confidence to contribute safely and effectively. + +* **Have you thought about mentoring new GSoC / Outreachy students?** + + Yes, I have thought about mentoring future GSoC or Outreachy students. Since I’m + still relatively new to open source myself, I want to focus on contributing and + learning for now. However, I do hope to co-mentor in the next Outreachy program, + sharing what I’ve learned and helping others navigate the experience. + +* **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 I had a team of expert developers working full time on Git for a year, I + would focus on further improving its modularity and internal architecture. + My goal would be to make Git easier to embed and reuse as a library, reducing + reliance on global state and improving the safety of multi-repository + operations. + + This would not only make Git more maintainable for contributors but also open + up new possibilities for other projects to integrate Git functionality + more easily. + +* **If you could remove something from Git without worrying about + backwards compatibility, what would it be?** + + If I could remove anything from Git without worrying about backwards + compatibility, I’d simplify some of the legacy parts of its internal state. + These older structures can be confusing and tricky to work with, and removing + them would make Git’s internals cleaner and easier to reason about. + +* **What upcoming features or changes in Git are you particularly + excited about?** + + I’m particularly excited about Git’s ongoing libification efforts, which make + it easier for other projects to embed and reuse Git functionality. Changes that + reduce global state and improve repository isolation also excite me, because + they make multi-repository operations safer and Git’s internals easier to work + with. I’m curious to see how these improvements will open up new possibilities + for both contributors and external tools that rely on Git. + +* **What is your favorite Git-related tool/library, outside of Git + itself?** + + I’d say my favorite Git-related tool is `gitingest`. It’s really handy for + exploring repositories programmatically and testing workflows. I’ve found it + especially useful while learning Git internals. + +* **What is your toolbox for interacting with the mailing list and for + development of Git?** + + I mainly use `git send-email` to submit patches, read threads on + [lore.kernel.org/git](https://lore.kernel.org/git), and reply via + Gmail. This setup helps me follow discussions and iterate on my + contributions smoothly. + +* **How do you envision your own involvement with Git or other open + source projects in the future?** + + I’m here to stay in open source. I want to keep contributing to Git and other + projects, learning as I go, taking on bigger challenges, and helping new + contributors find their footing. Open source has become a big part of how I + grow as a developer, and I hope to keep giving back for years to come. + +* **What is your advice for people who want to start Git development? + Where and how should they start?** + + My advice for anyone starting Git development is to begin small and be curious. + A great resource I found helpful is the [MyFirstContribution](https://git-scm.com/docs/MyFirstContribution) + document. Start by reading the guides, experimenting locally, and submitting + small patches. Interacting with the mailing list, asking questions, and iterating + on feedback will help you learn and grow as a contributor. + +* **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?** + + Absolutely, I would recommend programs like GSoC or Outreachy for anyone + interested in Git or open source. These programs provide structured mentorship, + exposure to real-world projects, and the chance to learn directly from + experienced developers. My advice is to start small, be curious, ask questions, + and don’t be afraid to iterate on feedback. Every contribution, no matter how + minor it may seem, is a valuable learning experience. + + +## Other News + +__Various__ ++ [The forge is our new home.](https://communityblog.fedoraproject.org/the-forge-is-our-new-home/) + by Tomáš Hrčka on Fedora Community Blog.
+ After a full year of preparation, the Community Linux Engineering (CLE) team + announced that [Fedora Forge](https://forge.fedoraproject.org/explore/organizations), + powered by [Forgejo](https://forgejo.org/), is ready for use. + If you own a project at [pagure.io](https://pagure.io/), + you must migrate out of it before June 2026; the + [How to Migrate Repository from Pagure](https://docs.fedoraproject.org/en-US/forge-documentation/migration/pagure_repository/) + guide is there to help with this task. + Note that Fedora Forge is narrower in scope than pagure\.io; + it is provisioned to host the code, documentation, and tooling + that directly build, manage, and govern the Fedora Project. + Personal projects and general upstream development do not belong on Fedora Forge. ++ [GNOME GitLab Redirecting Some Git Traffic To GitHub For Reducing Costs](https://www.phoronix.com/news/GNOME-GitHub-GitLab-Redirect) + by Michael Larabel in GNOME on Phoronix. ++ [Radicle: Disclosure of Replay Attack Vulnerability in Signed References](https://radicle.xyz/2026/03/30/disclosure-of-vulnerability-in-signed-references) + + [Radicle](https://radicle.xyz) is a peer-to-peer, local-first + code collaboration stack built on Git. + It was first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/) + and most recently in [edition #131](https://git.github.io/rev_news/2026/01/31/edition-131/).
+ Compare with [Tangled](https://tangled.org/) (built on top of AT Protocol), + [Grasp](https://ngit.dev/grasp/) and [`git str`](https://github.com/fiatjaf/gitstr) (built on top of Nostr). ++ [b4's Review TUI With AI Integration Nearing Pre-Alpha Release](https://www.phoronix.com/news/b4-review-nears-pre-alpha) + by Michael Larabel in the Linux Kernel section on Phoronix. + +__Light reading__ ++ [The Comforting Lie Of SHA Pinning](https://www.vaines.org/posts/2026-03-24-the-comforting-lie-of-sha-pinning/) + by Aiden Vaines on Vaines\.org. + The recommendation to _pin your dependencies_ in GitHub Actions + translates to using commit SHAs, not tags - which can be moved + (though GitHub already has optional ‘Make tags immutable’ feature). + However, GitHub Actions does not meaningfully validate that + the commit SHA you reference belongs to the repository you think it does: + it can belong to a hostile fork. ++ [Git Remote Helpers](https://nesbitt.io/2026/03/18/git-remote-helpers.html): + how to create `git-remote-swh` that would let you `git clone` from a [SWHID](https://www.swhid.org/), + pulling source code directly from [Software Heritage](https://www.softwareheritage.org/)’s archive + by content hash rather than by URL. + Written by Andrew Nesbitt on his blog. + Also lists built-in remote helpers, and lists third-party helpers: + for cloud and object storage, for content-addressed storage, + for encryption, for VCS bridges, + for P2P and decentralised (though this list was missing `git-remote-rad` for Radicle), + for a different transport layer, for blockchain, for other storage backends. ++ [Git Bayesect](https://hauntsaninja.github.io/git_bayesect.html) + by Shantanu Jain (@hauntsaninja) on his blog. + It describes the idea behind [git bayesect](https://github.com/hauntsaninja/git_bayesect), + which is a generalisation of `git bisect` that uses Bayesian inference to solve + the problem of flaky, non-deterministic tests. ++ [Git Tricks with Tri and Difft](https://nabeelvalley.co.za/blog/2026/26-03/tri-x-git-tricks/) + by Nabeel Valley on their blog. + + [Tri](https://github.com/sftsrv/tri) is a TUI interactive directory tree browser, + and [difft, or Difftastic](https://difftastic.wilfred.me.uk/introduction.html) + is a structural diff tool that understands syntax. + Difftastic was first mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/), + and most recently in [Edition #131](https://git.github.io/rev_news/2026/01/31/edition-131/). ++ [Awesome Git Diffs with Delta, fzf and a Little Shell Scripting](https://nickjanetakis.com/blog/awesome-git-diffs-with-delta-fzf-and-a-little-shell-scripting) + by Nick Janetakis on his blog. + + [delta](https://dandavison.github.io/delta/) (from 'git-delta' package) + is a syntax-highlighting pager for git, diff, grep, and blame output, + first mentioned in [Git Rev News Edition #9](https://git.github.io/rev_news/2015/11/11/edition-9/), + and most recently in [Edition #131](https://git.github.io/rev_news/2026/01/31/edition-131/).
+ [fzf](https://github.com/junegunn/fzf) is a command-line fuzzy finder, + first mentioned directly in [Git Rev News Edition #74](https://git.github.io/rev_news/2021/04/30/edition-74/) + (in passing first in [Edition #64](https://git.github.io/rev_news/2020/06/25/edition-64/)), + and most recently in [Edition #130](https://git.github.io/rev_news/2025/12/31/edition-130/). ++ [Build Git helpers from scratch with Bash and fzf](https://oliviac.dev/blog/build-git-helpers-bash-fzf/) and + [Improve your Git CLI experience with Git aliases, delta, and custom functions](https://oliviac.dev/blog/customize-git-cli-aliases-delta/) + by Olivia Coumans on her blog. ++ [Taming a 486MB Git Repo](https://hsps.in/post/taming-a-486mb-git-repo/) + (with source code taking 6MB) by Harisankar P S on his HsPS\.in blog. ++ [CodeCity: Turning a Codebase into a Skyline](https://verial.xyz/posts/codecity), + about a polyglot (multi-language) CodeCity visualizer built in Rust, + rendering codebases as interactive 3D cities. In this tool, modules are shown + as buildings, grouped together in districts corresponding to top-level packages + (squarified treemap), with footprint corresponding to size in lines of code, + height corresponding to complexity, and color corresponding to "health". + Follows from the [Legibility: A Scaling Bottleneck of the Agentic Era](https://verial.xyz/essays/legibility) essay. ++ [“Use git worktrees,” they said. “It’ll be fun!” they said.](https://daveschumaker.net/use-git-worktrees-they-said-itll-be-fun-they-said/) + by Dave Schumaker on his blog. + This post describes a problem with often used solutions like + symlinked `node_modules` or `.venv` directories, Yarn’s hardlinks-global mode, + APFS Copy-on-Write (`cp -c`) - which is also supported by other filesystems. + Proposes keeping a fixed pool of 6 worktree slots, and recycling them as needed. ++ [Direnv is All You Need to Parallelize Agentic Programming with Git Worktrees](https://waldencui.com/post/direnv_is_all_you_need_to_parallelize_claude_code_with_git_worktrees/) + by Walden Cui on The Search Blog.
+ See also, for example: + + [I Built workz: The Zoxide for Git Worktrees That Finally Fixes .env + node\_modules Hell in 2026](https://dev.to/rohansx/i-built-workz-the-zoxide-for-git-worktrees-that-finally-fixes-env-nodemodules-hell-in-2026-2dpj), + mentioned in [Git Rev News Edition #132](https://git.github.io/rev_news/2026/02/28/edition-132/). + + [Git Worktrees with Claude Code, Laravel, and Herd](https://gause.cz/blog/git-worktrees-with-claude-code-laravel-and-herd/), + mentioned in [Git Rev News Edition #132](https://git.github.io/rev_news/2026/02/28/edition-132/). + + [Why You Should Be Using Git Worktrees](https://blog.randombits.host/why-you-should-be-using-git-worktrees/), + mentioned in [Git Rev News Edition #129](https://git.github.io/rev_news/2025/11/30/edition-129/). + + [tree-me: Because git worktrees shouldn't be a chore](https://haacked.com/archive/2025/11/21/tree-me/), + mentioned in [Git Rev News Edition #129](https://git.github.io/rev_news/2025/11/30/edition-129/). + + [Managing Multiple Claude Code Sessions Without Worktrees](https://blog.gitbutler.com/parallel-claude-code/), + mentioned in [Git Rev News Edition #125](https://git.github.io/rev_news/2025/07/31/edition-125/). + + [How to use git worktree effectively with Python projects](https://www.andreagrandi.it/posts/how-to-use-git-worktree-effectively-with-python-projects/), + mentioned in [Git Rev News Edition #125](https://git.github.io/rev_news/2025/07/31/edition-125/). ++ [Using Git with coding agents](https://simonwillison.net/guides/agentic-engineering-patterns/using-git-with-coding-agents/) + is a chapter from the guide [Agentic Engineering Patterns](https://simonwillison.net/guides/agentic-engineering-patterns/), + available on Simon Willison’s Weblog. ++ [How I organize git repos locally](https://blog.esc.sh/how-i-organize-git-repos-locally/) + by Mansoor Majeed on their Esc\.sh blog. ++ [SSH certificates and git signing](https://codon.org.uk/~mjg59/blog/p/ssh-certificates-and-git-signing/) + on Matthew Garrett's Blog. + + [Signing Git Commits with SSH Keys](https://blog.dbrgn.ch/2021/11/16/git-ssh-signatures/) + was first mentioned in [Git Rev News Edition #83](https://git.github.io/rev_news/2022/01/31/edition-83/). + + See also [Git signatures with SSH certificates](https://mjg59.dreamwidth.org/60916.html) + by Matthew Garret on his old mjg59's journal blog, + mentioned in [Git Rev News Edition #91](https://git.github.io/rev_news/2022/09/30/edition-91/). ++ [Choosing the best git branching strategy for continuous delivery in your team](https://geshan.com.np/blog/2026/03/git-branching-strategy-for-continuous-delivery/) + by Geshan Manandhar on his blog: compares Git-Flow, GitHub Flow, and Trunk-based development, + recommending GitHub Flow. + + See also [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html) + by Martin Fowler (author of the [Refactoring: Improving the Design of Existing Code](https://martinfowler.com/books/refactoring.html) book), + which was first mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). ++ [Git: Remove Dead Branches](https://nathan-long.com/blog/git-remove-dead-branches/) + by Nathan Long on his blog. + The script described in detail should probably use `git for-each-ref` + rather than parse the user-facing `git branch` command, though. ++ [Selectively ignore lines in git diff](https://lornajane.net/posts/2026/selectively-ignore-lines-in-git-diff) + by using `git diff --ignore-matching-lines=` (or `-I` in short). + Article by Lorna Jane Mitchell on her LornaJane blog. ++ [Git: ignoring temporary changes](https://blog.narf.ssji.net/2026/03/18/git-ignoring-temporary-changes/) + by Olivier Mehani on Narf blog. + He proposes using `git update-index --assume-unchanged `, which is not safe; + a safer solution is to use `--skip-worktree` instead (won't lose changes, may prevent safe operation). + + Compare [Use skip-worktree to ignore modified files](https://www.brandonpugh.com/til/git/skip-worktree-ignore-modified-files/) + by Brandon Pugh, mentioned in [Git Rev News Edition #129](https://git.github.io/rev_news/2025/11/30/edition-129/). ++ [SQLite on Git, Prologue: Why do we need random access in git](https://blog.lysk.tech/sqlite-on-git-prologue/) and + [SQLite on Git, Part I: The .git folder - Falling down the Rabbithole](https://blog.lysk.tech/sqlite-on-git-part-1) + are the first two parts of an upcoming series of blogposts, where the author shares research + enabling one to have a version controlled filesystem + that allows running a versioned SQLite database on top of Git's internal storage. + Written by Martin R. Lysk on his blog. + + Contrast [Git in Postgres](https://nesbitt.io/2026/02/26/git-in-postgres.html) + by Andrew Nesbitt mentioned in [Git Rev News Edition #132](https://git.github.io/rev_news/2026/02/28/edition-132/). ++ [GotHub all the things](https://x61.sh/log/2026/03/14032026191148-gothub.html) + by 𝚐𝚘𝚗𝚣𝚊𝚕𝚘 on x61\.sh blog. + + The [Game of Trees Hub](https://gothub.org/) (GotHub) + is a transparently funded Git repository hosting service, + with infrastructure on OpenBSD and the [Game of Trees (GoT)](https://gameoftrees.org/) VCS, + mentioned in [Git Rev News Edition #131](https://git.github.io/rev_news/2026/01/31/edition-131/) + and [#132](https://git.github.io/rev_news/2026/02/28/edition-132/). ++ [An easy way to mirror git repositories](https://dyyni.org/posts/easy-way-to-mirror-git-repos/) + with the help of author's little shell script “[ferne](https://codeberg.org/2ug/shellscripts/src/branch/master/ferne)”. ++ [Rebasing in Magit](https://entropicthoughts.com/rebasing-in-magit) + by kqr (Chris) on Entropic Thoughts. + + [Magit](https://magit.vc/) is a popular [Emacs](https://www.gnu.org/software/emacs) editor interface to Git, + first mentioned in [Git Rev News Edition #6](https://git.github.io/rev_news/2015/08/05/edition-6/), + and most recently in [Edition #130](https://git.github.io/rev_news/2025/12/31/edition-130/) + and [#132](https://git.github.io/rev_news/2026/02/28/edition-132/). ++ [Reviewing large changes with Jujutsu](https://ben.gesoff.uk/posts/reviewing-large-changes-with-jj/) + by Ben Gesoff on his blog. + + [Jujutsu (`jj`)](https://jj-vcs.github.io/jj/) is a Git-compatible version control system, + written in Rust, which was first mentioned in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). ++ [Magit and Majutsu: discoverable version-control](https://lwn.net/Articles/1060024/) + by Daroc Alden on LWN\.net. + + [Majutsu](https://github.com/0WD0/majutsu) provides a [Magit](https://magit.vc/)-style + interface for [Jujutsu (`jj`)](https://www.jj-vcs.dev/) in GNU Emacs. + First mentioned in [Git Rev News Edition #132](https://git.github.io/rev_news/2026/02/28/edition-132/). ++ [Editing changes in patch format with Jujutsu VCS](https://www.knifepoint.net/~kat/kb-jj-patchedit.html) + by Katalin Rebhan (@dblsaiko) on her blog. ++ [Manyana: A Coherent Vision for the Future of Version Control](https://bramcohen.com/p/manyana) + and [More on Version Control: This may have some legs](https://bramcohen.com/p/more-on-version-control) + by Bram Cohen on Bram's Thoughts, + about his approach of using CRDTs (Conflict-free Replicated Data Types) for version control.
+ The ideas behind [Manyana](https://github.com/bramcohen/manyana), + with a prototype written in Python, looks a bit similar to [Codeville](https://web.archive.org/web/20070202014158/http://codeville.org/), + a distributed version control system created around 2005 by Ross and Bram Cohen, + with a unique merging algorithm, no longer existing. ++ [Development tools: Sashiko, b4 review, and API specification](https://lwn.net/Articles/1063303/) + by Jonathan Corbet on LWN\.net ([free link](https://lwn.net/SubscriberLink/1063303/c076cd05ab3bef54/)). + + Konstantin Ryabitsev's [b4 tool](https://b4.docs.kernel.org/en/latest/) + was first mentioned in [Git Rev News Edition #61](https://git.github.io/rev_news/2020/03/25/edition-61/), + and most recently in [Edition #127](https://git.github.io/rev_news/2025/09/30/edition-127/). + It is also listed on the [Hacking Git](https://git.github.io/Hacking-Git/) page. ++ [Mercurial at Google: Also known as Fig](https://mercurial.paris/download/Mercurial%20at%20Google.pdf), + slides by Martin von Zweigbergk, presented at 2023-04-06. + ++ Automate Your Code with GitHub Actions ([Part 1](https://www.git-tower.com/blog/github-actions-fundamentals) and [Part 2](https://www.git-tower.com/blog/github-actions-events-and-triggers)) by Bas Steins on Tower's Blog. + + + +__Scientific papers__ ++ Benedikt Schesch, Ryan Featherman, Kenneth J Yang, Ben Roberts, and Michael D. Ernst: + _"[Evaluation of Version Control Merge Tools.](https://homes.cs.washington.edu/~mernst/pubs/merge-evaluation-ase2024.pdf)"_ + at 39th IEEE/ACM International Conference on Automated Software Engineering (ASE '24). + Association for Computing Machinery, New York, NY, USA, 831–83. + + + Authors evaluated (using Java projects from + [GitHub’s Greatest Hits](https://archiveprogram.github.com/greatest-hits/) + and [RepoReapers / Reaper](https://reporeapers.github.io/) datasets) + the following CLI tools: + [different variants of the `git merge`](https://git-scm.com/docs/git-merge#_merge_strategies) algorithm, + [git-hires-merge](https://github.com/paulaltin/git-hires-merge), + [IntelliMerge](https://github.com/Symbolk/IntelliMerge) (Java only), + [Spork](https://github.com/ASSERT-KTH/spork) (Java only), + and their own [Plume-lib merging](https://github.com/plume-lib/merging). + + They considered, but did not evaluate + [JDime](https://github.com/se-sic/jdime) (Java only) because of its limitations, + as well as AutoMerge (also known as AutoMerge-PTM), DeepMerge, and MergeBERT + because those tools are not publicly available. + They could not evaluate tools based on GUI interaction, + like [RefMerge](https://github.com/ualberta-smr/RefMerge) (IntelliJ IDEA plugin) + or [FSTMerge](http://www.fosd.de/SSMerge/) (part of FeatureHouse, depends on KDiff3). + + [Mergiraf](https://mergiraf.org/) did not exist at the time this paper was written. + Mergiraf was mentioned in [Git Rev News Edition #117](https://git.github.io/rev_news/2024/11/30/edition-117/), + [#119](https://git.github.io/rev_news/2025/01/31/edition-119/) (in passing), + and [#129](https://git.github.io/rev_news/2025/11/30/edition-129/). + + [SemanticMerge](https://www.semanticmerge.com/semanticmerge-intro-guide), + a proprietary tool with a 15 or 30 day trial, might have been defunct then (since 2013); + nowadays its homepage page is taken by SEO spam. + It was mentioned in [Git Rev News Edition #38](https://git.github.io/rev_news/2018/04/18/edition-38/). ++ Joao Pedro Duarte, Paulo Borba, and Guilherme Cavalcanti: + _"LastMerge: A language-agnostic structured tool for code integration"_ + preprint on [arXiv:2507.19687](https://arxiv.org/abs/2507.19687) (25 July 2025). + It compares four structured merge tools: + two Java specific tools, JDime and Spork, and their generic counterparts, + Mergiraf and their own LastMerge tool (currently not available), respectively. + + They also mention [s3m](https://github.com/guilhermejccavalcanti/s3m) + ([Semistructured 3-Way Merge](https://pauloborba.cin.ufpe.br/project/s3m/)) for Java. ++ Qingyu Zhang, Junzhe Li, Jiayi Lin, Jie Ding, Lanteng Lin, and Chenxiong Qian: + _"WizardMerge—Save Us from Merging without Any Clues."_ + ACM Transactions on Software Engineering and Methodology, Volume 35, Issue 1; + Article No.: 22 (11 December 2025), 28 pages. + + + An open-source code-merging auxiliary prototype named + [WizardMerge](https://github.com/HKU-System-Security-Lab/WizardMerge), + together with evaluation datasets, is available on GitHub. + Written in C++. + +__Git tools and sites__ ++ [A Partial Extract of revctrl.org](https://tonyg.github.io/revctrl.org/index.html), + a Revision Control wiki, which has fallen victim to spam, and is now taken over. + Scraped, archived, and edited by Tony Garnock-Jones; + spam cleanup and improvements to formatting by Michael Haggerty. + Unfortunately, all the edit history of the wiki was lost, + and individual pages do not have clear authorship. ++ [Version Control with Git for Data Science](https://guides.nyu.edu/datascience/vcs), + a part of Research Guides for the data science community at New York University.
+ References [Software Carpentry "Version Control with Git"](https://swcarpentry.github.io/git-novice/), + mentioned in [Git Rev News Edition #86](https://git.github.io/rev_news/2022/04/30/edition-86/). ++ [git bayesect](https://github.com/hauntsaninja/git_bayesect): Bayesian git bisection. + You can use this tool to detect changes in likelihoods of events, for instance, + to isolate a commit where a slightly flaky test became very flaky. + You don't need to know the likelihoods (although you can provide priors), + just that something has changed at some point in some direction. + If your code has started gaslighting you, give it a try! + Written in Python, under MIT license. ++ [GitStats](https://github.com/em1208/GitStats) is a statistics generator for Git repositories. + Currently it produces only HTML output with tables and graphs, + providing total files, lines, commits, authors, commits by hour of day, day of week, etc. + Fork of . + Written in Python, under GPLv2 or older license.
+ Original version demo available at . ++ [GitTop](https://github.com/hjr265/gittop) is terminal UI tool + for visualizing Git repository statistics, inspired by htop/btop. + Written in Go, under BSD-3-Clause license. + + See also [My First Fully Agentic Coding Project: GitTop](https://hjr265.me/blog/building-gittop-with-agentic-coding/) + by Mahmud Ridwan on hjr265\.me. ++ [diffsoup](https://github.com/junglerobba/diffsoup) is a Gerrit-style + TUI patchset diff viewer for pull requests, using Jujutsu. + Written in Rust, under MIT license. ++ [fzf-git.sh](https://github.com/junegunn/fzf-git.sh): + bash, zsh, and fish key bindings for Git objects, + powered by [fzf](https://github.com/junegunn/fzf). + Each binding will allow you to browse through Git objects of a certain type, + and select from TUI the objects you want to paste to your command-line. + Under MIT license. ++ [Git X-Modules](https://gitmodules.com/) is a tool to manage modular Git projects. + Alternative to the built-in [`git submodule`](https://git-scm.com/docs/git-submodule) + (see also [Git Tools - Submodules](https://git-scm.com/book/en/v2/Git-Tools-Submodules) + chapter in "Pro Git" 2nd Ed.), [`git subtree`](https://github.com/apenwarr/git-subtree) + (which uses the built-in [subtree](https://git-scm.com/docs/git-merge#Documentation/git-merge.txt-subtreepath) merge strategy), + [`git stree`](https://github.com/deliciousinsights/git-stree), + and [`git subrepo`](https://github.com/ingydotnet/git-subrepo). ++ [GitBucket](https://gitbucket.github.io/) is an Open Source Git platform on JVM + (a software forge), with easy installation, high extensibility & GitHub API compatibility. + Written in Scala, under Apache License Version 2.0. ++ [CodebaseHQ](https://www.codebasehq.com/) by Krystal is a software forge that + offers Git, Mercurial and Subversion hosting, with project management tools. + No free tier, 15 day free trial. ++ [`git-memento`](https://github.com/mandel-macaque/memento) is a Git extension + that records the AI coding session used to produce a commit. + It attaches AI conversation transcripts as [git notes](https://git-scm.com/docs/git-notes), + creating an audit trail for AI-assisted development. + Written in F# and TypeScript, under MIT license. ++ [ChunkHound](https://chunkhound.github.io/) is a local-first codebase intelligence, + which researches your codebase, + extracting architecture, patterns, and institutional knowledge, + to give your AI assistant the context it needs - deep understanding + of your code, files, and architectural decisions. + Integrates via [MCP](https://spec.modelcontextprotocol.io/) (Model Context Protocol). + Written in Python, under MIT license. ++ [Sashiko](https://sashiko.dev/) is an agentic Linux kernel code review system, + using a LLM (Large Language Model). It monitors public mailing lists + to thoroughly evaluate proposed Linux kernel changes. + The system acts like a team of specialized reviewers covering domains + from high-level architecture verification and security audits + to low-level resource management and concurrency analysis. + It is an open-source project that belongs to the Linux Foundation, + licensed under the Apache License, Version 2.0. + + +## Releases + ++ Git for Windows [v2.52.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.52.0.windows.2), +[v2.51.2(2)](https://github.com/git-for-windows/git/releases/tag/v2.51.2.windows.2), +[v2.53.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.53.0.windows.2) ++ Bitbucket Data Center [10.2](https://confluence.atlassian.com/bitbucketserver/release-notes-872139866.html) ++ Gerrit Code Review [3.11.10](https://www.gerritcodereview.com/3.11.html#31110), +[3.11.9](https://www.gerritcodereview.com/3.11.html#3119), +[3.12.5](https://www.gerritcodereview.com/3.12.html#3125), +[3.12.6](https://www.gerritcodereview.com/3.12.html#3126), +[3.13.4](https://www.gerritcodereview.com/3.13.html#3134), +[3.13.5](https://www.gerritcodereview.com/3.13.html#3135), +[3.14.0-rc0](https://www.gerritcodereview.com/3.14.html#3140) ++ GitHub Enterprise [3.20.0](https://docs.github.com/enterprise-server@3.20/admin/release-notes#3.20.0), +[3.19.4](https://docs.github.com/enterprise-server@3.19/admin/release-notes#3.19.4), +[3.18.7](https://docs.github.com/enterprise-server@3.18/admin/release-notes#3.18.7), +[3.17.13](https://docs.github.com/enterprise-server@3.17/admin/release-notes#3.17.13), +[3.16.16](https://docs.github.com/enterprise-server@3.16/admin/release-notes#3.16.16), +[3.15.20](https://docs.github.com/enterprise-server@3.15/admin/release-notes#3.15.20), +[3.14.25](https://docs.github.com/enterprise-server@3.14/admin/release-notes#3.14.25) ++ GitLab [18.10.1, 18.9.3, 18.8.7](https://about.gitlab.com/releases/2026/03/25/patch-release-gitlab-18-10-1-released/), +[18.10](https://about.gitlab.com/releases/2026/03/19/gitlab-18-10-released/), +[18.9.2, 18.8.6, 18.7.6](https://about.gitlab.com/releases/2026/03/11/patch-release-gitlab-18-9-2-released/) ++ GitKraken [11.10.0](https://help.gitkraken.com/gitkraken-desktop/current/) ++ GitHub Desktop [3.5.6](https://desktop.github.com/release-notes/) ++ Garden [2.6.0](https://github.com/garden-rs/garden/releases/tag/v2.6.0) ++ Git Cola [4.18.2](https://github.com/git-cola/git-cola/releases/tag/v4.18.2), +[4.18.1](https://github.com/git-cola/git-cola/releases/tag/v4.18.1), +[4.18.0](https://github.com/git-cola/git-cola/releases/tag/v4.18.0) ++ GitButler [0.19.6](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.19.6), +[0.19.5](https://github.com/gitbutlerapp/gitbutler/releases/tag/release/0.19.5) ++ Tower for Mac [16.0 (Beta)](https://www.git-tower.com/blog/tower-mac-16) ++ Tower for Windows [11.2](https://www.git-tower.com/release-notes?show_tab=release-notes) + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from Olamide Caleb Bello, Bruno Brito, +Štěpán Němec and Kristoffer Haugsbakk. diff --git a/Hacking-Git.md b/links/dev/Hacking-Git.md similarity index 100% rename from Hacking-Git.md rename to links/dev/Hacking-Git.md diff --git a/General-Application-Information.md b/links/mentoring/common/General-Application-Information.md similarity index 91% rename from General-Application-Information.md rename to links/mentoring/common/General-Application-Information.md index 7a2402b95..a58c14919 100644 --- a/General-Application-Information.md +++ b/links/mentoring/common/General-Application-Information.md @@ -16,14 +16,19 @@ see in an application. ## Microproject (required) -It is required that applicants who want to apply to the Git -project for the GSoC or Outreachy complete a tiny, code-related -"microproject" as part of their application. Please refer to our +It is required that applicants who want to apply to the Git project +for the GSoC or Outreachy complete a tiny, code-related "microproject" +as part of their application. + +Please thoroughly read and refer to our [general guidelines and suggestions for microprojects](https://git.github.io/General-Microproject-Information) -for more information. Completing a microproject is not only an important -way for us to get experience with applicants, but it will also help -applicants become familiar with Git's development and submission -process. +for more information. Especially make sure you have fully read the +whole "Only ONE quality focused microproject per applicant" section +in that document. + +Completing a microproject is not only an important way for us to get +experience with applicants, but it will also help applicants become +familiar with Git's development and submission process. ## Reviewing (not required but appreciated) @@ -341,16 +346,24 @@ The more we can see that you invest in learning and participating in Git's development, the more we can be confident that you are motivated and will likely stay in the community. -This doesn't necessarily mean that you have no chance at all of -getting accepted if you get involved quite late. It depends on how -other applicants are doing and how many available mentors we have or -can find. But anyway you start with a significant handicap compared to -other applicants who got involved early. +That said sending your application more than one month before the +application deadline is not a good idea either, because discussions or +on going work might happen that make us change the project ideas a bit +in the meantime, and it would be a waste of effort for you and us to +aim at a moving target. The last month should be enough to discuss +your application. Before that, please work on other things. + +The fact that we like applicants getting involved early doesn't +necessarily mean that you have no chance at all of getting accepted if +you get involved quite late. It depends on how other applicants are +doing and how many available mentors we have or can find. But anyway +you start with a significant handicap compared to other applicants who +got involved early. It might therefore be a good idea to find a project idea that is not yet being pursued by an applicant who started getting involved much -earlier than you. This means that you might have to find a project -idea that we haven't proposed in our idea list. +earlier than you. If there aren't, then finding a project idea that we +haven't proposed in our idea list might give you a chance. The good side of this is that this project idea along with your enthusiasm for it and the skills you show might encourage Git diff --git a/General-Microproject-Information.md b/links/mentoring/common/General-Microproject-Information.md similarity index 95% rename from General-Microproject-Information.md rename to links/mentoring/common/General-Microproject-Information.md index c98caeab8..f67285f8c 100644 --- a/General-Microproject-Information.md +++ b/links/mentoring/common/General-Microproject-Information.md @@ -202,7 +202,7 @@ problems when working on your real GSoC or Outreachy project. So it's a very good thing to show that you have researched your microproject and taken into account what you have found. -### After it's done, work on different things +### After the microproject is done, work on different things If you've already done a microproject and are itching to do more, then get involved in other ways, like finding and fixing other problems in @@ -212,6 +212,30 @@ questions on the mailing list or in IRC, or writing new tests, etc., etc. In short, start doing things that other Git developers do! Alternatively you can of course focus on your project proposal. +### Don't work on a proposed project right away + +In general, you shoudn't work directly on any project we propose for a +mentoring program before you have been accepted in the mentoring +program to work on the project. + +We don't want applicants to start stepping on each other's work, or +applicants who do the right thing and work on other things feel +discouraged. Also the project scope often evolves during the +application and discussion periods, as applicants and mentors discuss +project proposals. + +Try to find small improvements you can make in the area of your +project or in a nearby area instead. This way you can increase your +knowledge related to your project and prepare for it. Ask on the +mailing list in case of doubt. + +If you are interested in a project with a very wide scope, it might be +possible to start working on very small parts of it. For example if +the project is about a global refactoring of the code base that affect +many parts of it, like removing global state, it might be OK to do +that a little in a small corner of the code base. Make sure no one +already started working on the same thing though. + ## Be very careful when using AI tools There is an "AI guidelines" section on our diff --git a/Historical-SoC-Outreachy.md b/links/mentoring/common/Historical-SoC-Outreachy.md similarity index 86% rename from Historical-SoC-Outreachy.md rename to links/mentoring/common/Historical-SoC-Outreachy.md index 1f84fb4d1..3741eb43e 100644 --- a/Historical-SoC-Outreachy.md +++ b/links/mentoring/common/Historical-SoC-Outreachy.md @@ -1,6 +1,6 @@ --- layout: default -title: Historical Summer of Code and Outreachy Materials +title: Historical SoC and Outreachy Materials --- These pages are historical materials for Summer of Code and diff --git a/Mentoring-Program-Guide.md b/links/mentoring/common/Mentoring-Program-Guide.md similarity index 100% rename from Mentoring-Program-Guide.md rename to links/mentoring/common/Mentoring-Program-Guide.md diff --git a/Outreachy-12.md b/links/mentoring/outreachy/Outreachy-12.md similarity index 100% rename from Outreachy-12.md rename to links/mentoring/outreachy/Outreachy-12.md diff --git a/Outreachy-15.md b/links/mentoring/outreachy/Outreachy-15.md similarity index 100% rename from Outreachy-15.md rename to links/mentoring/outreachy/Outreachy-15.md diff --git a/Outreachy-17.md b/links/mentoring/outreachy/Outreachy-17.md similarity index 100% rename from Outreachy-17.md rename to links/mentoring/outreachy/Outreachy-17.md diff --git a/Outreachy-21-Microprojects.md b/links/mentoring/outreachy/Outreachy-21-Microprojects.md similarity index 100% rename from Outreachy-21-Microprojects.md rename to links/mentoring/outreachy/Outreachy-21-Microprojects.md diff --git a/Outreachy-23-Microprojects.md b/links/mentoring/outreachy/Outreachy-23-Microprojects.md similarity index 100% rename from Outreachy-23-Microprojects.md rename to links/mentoring/outreachy/Outreachy-23-Microprojects.md diff --git a/Outreachy-Participants.md b/links/mentoring/outreachy/Outreachy-Participants.md similarity index 95% rename from Outreachy-Participants.md rename to links/mentoring/outreachy/Outreachy-Participants.md index 9b8a97c44..bd938acee 100644 --- a/Outreachy-Participants.md +++ b/links/mentoring/outreachy/Outreachy-Participants.md @@ -6,6 +6,10 @@ title: Outreachy participants This document collects the list of contributors who've contributed to Git via Outreachy. +### Winter 2025-2026 + +1. Bello Caleb Olamide [ [blog](https://cloobtech.hashnode.dev/) ] + ### Winter 2024-2025 1. Seyi Kuforiji [ [blog](https://seyi-kuforiji-902b48.gitlab.io/) ] [ [retrsopective interview](https://git.github.io/rev_news/2025/08/31/edition-126/#developer-spotlight-seyi-kuforiji) ] diff --git a/SoC-2014-Ideas.md b/links/mentoring/soc/SoC-2014-Ideas.md similarity index 99% rename from SoC-2014-Ideas.md rename to links/mentoring/soc/SoC-2014-Ideas.md index 51353423f..a8d2d840a 100644 --- a/SoC-2014-Ideas.md +++ b/links/mentoring/soc/SoC-2014-Ideas.md @@ -11,7 +11,7 @@ This is the idea page for Summer of Code 2014 for Git and libgit2. It is strongly recommended that students who want to apply to the Git project for the Summer of Code 2014 complete a tiny, code-related "microproject" as part of their application. Please refer to our -[guidelines and suggestions for microprojects](https://git.github.io/SoC-2014-Microprojects.html) +[guidelines and suggestions for microprojects](https://git.github.io/SoC-2014-Microprojects/) for more information. Completing a microproject is not a strict requirement, but we will definitely give more attention to applicants who do so. Doing a microproject will also help get you started in diff --git a/SoC-2014-Microprojects.md b/links/mentoring/soc/SoC-2014-Microprojects.md similarity index 100% rename from SoC-2014-Microprojects.md rename to links/mentoring/soc/SoC-2014-Microprojects.md diff --git a/SoC-2014-Org-Application.md b/links/mentoring/soc/SoC-2014-Org-Application.md similarity index 99% rename from SoC-2014-Org-Application.md rename to links/mentoring/soc/SoC-2014-Org-Application.md index 7f5fa5704..f1b9f65a2 100644 --- a/SoC-2014-Org-Application.md +++ b/links/mentoring/soc/SoC-2014-Org-Application.md @@ -35,7 +35,7 @@ GPLv2 ## Ideas list - + ## Mailing list diff --git a/SoC-2015-Ideas.md b/links/mentoring/soc/SoC-2015-Ideas.md similarity index 99% rename from SoC-2015-Ideas.md rename to links/mentoring/soc/SoC-2015-Ideas.md index 2248169e8..512f81e4a 100644 --- a/SoC-2015-Ideas.md +++ b/links/mentoring/soc/SoC-2015-Ideas.md @@ -11,7 +11,7 @@ This is the idea page for Summer of Code 2015 for Git and libgit2. It is required that students who want to apply to the Git project for the Summer of Code 2015 complete a tiny, code-related "microproject" as part of their application. Please refer to our -[guidelines and suggestions for microprojects](https://git.github.io/SoC-2015-Microprojects.html) +[guidelines and suggestions for microprojects](https://git.github.io/SoC-2015-Microprojects/) for more information. Completing a microproject is not only an important way for us to get experience with applicants, but it will also help applicants become familiar with Git's development and submission diff --git a/SoC-2015-Microprojects.md b/links/mentoring/soc/SoC-2015-Microprojects.md similarity index 100% rename from SoC-2015-Microprojects.md rename to links/mentoring/soc/SoC-2015-Microprojects.md diff --git a/SoC-2015-Org-Application.md b/links/mentoring/soc/SoC-2015-Org-Application.md similarity index 99% rename from SoC-2015-Org-Application.md rename to links/mentoring/soc/SoC-2015-Org-Application.md index 15793a97f..edb9ee7cb 100644 --- a/SoC-2015-Org-Application.md +++ b/links/mentoring/soc/SoC-2015-Org-Application.md @@ -35,7 +35,7 @@ GPLv2 ## Ideas list - + ## Mailing list diff --git a/SoC-2016-Ideas.md b/links/mentoring/soc/SoC-2016-Ideas.md similarity index 100% rename from SoC-2016-Ideas.md rename to links/mentoring/soc/SoC-2016-Ideas.md diff --git a/SoC-2016-Microprojects.md b/links/mentoring/soc/SoC-2016-Microprojects.md similarity index 100% rename from SoC-2016-Microprojects.md rename to links/mentoring/soc/SoC-2016-Microprojects.md diff --git a/SoC-2016-Org-Application.md b/links/mentoring/soc/SoC-2016-Org-Application.md similarity index 100% rename from SoC-2016-Org-Application.md rename to links/mentoring/soc/SoC-2016-Org-Application.md diff --git a/SoC-2017-Ideas.md b/links/mentoring/soc/SoC-2017-Ideas.md similarity index 100% rename from SoC-2017-Ideas.md rename to links/mentoring/soc/SoC-2017-Ideas.md diff --git a/SoC-2017-Microprojects.md b/links/mentoring/soc/SoC-2017-Microprojects.md similarity index 100% rename from SoC-2017-Microprojects.md rename to links/mentoring/soc/SoC-2017-Microprojects.md diff --git a/SoC-2017-Org-Application.md b/links/mentoring/soc/SoC-2017-Org-Application.md similarity index 100% rename from SoC-2017-Org-Application.md rename to links/mentoring/soc/SoC-2017-Org-Application.md diff --git a/SoC-2018-Ideas.md b/links/mentoring/soc/SoC-2018-Ideas.md similarity index 100% rename from SoC-2018-Ideas.md rename to links/mentoring/soc/SoC-2018-Ideas.md diff --git a/SoC-2018-Microprojects.md b/links/mentoring/soc/SoC-2018-Microprojects.md similarity index 100% rename from SoC-2018-Microprojects.md rename to links/mentoring/soc/SoC-2018-Microprojects.md diff --git a/SoC-2018-Org-Application.md b/links/mentoring/soc/SoC-2018-Org-Application.md similarity index 100% rename from SoC-2018-Org-Application.md rename to links/mentoring/soc/SoC-2018-Org-Application.md diff --git a/SoC-2019-Ideas.md b/links/mentoring/soc/SoC-2019-Ideas.md similarity index 100% rename from SoC-2019-Ideas.md rename to links/mentoring/soc/SoC-2019-Ideas.md diff --git a/SoC-2019-Microprojects.md b/links/mentoring/soc/SoC-2019-Microprojects.md similarity index 100% rename from SoC-2019-Microprojects.md rename to links/mentoring/soc/SoC-2019-Microprojects.md diff --git a/SoC-2019-Org-Application.md b/links/mentoring/soc/SoC-2019-Org-Application.md similarity index 100% rename from SoC-2019-Org-Application.md rename to links/mentoring/soc/SoC-2019-Org-Application.md diff --git a/SoC-2020-Ideas.md b/links/mentoring/soc/SoC-2020-Ideas.md similarity index 100% rename from SoC-2020-Ideas.md rename to links/mentoring/soc/SoC-2020-Ideas.md diff --git a/SoC-2020-Microprojects.md b/links/mentoring/soc/SoC-2020-Microprojects.md similarity index 100% rename from SoC-2020-Microprojects.md rename to links/mentoring/soc/SoC-2020-Microprojects.md diff --git a/SoC-2020-Org-Application.md b/links/mentoring/soc/SoC-2020-Org-Application.md similarity index 100% rename from SoC-2020-Org-Application.md rename to links/mentoring/soc/SoC-2020-Org-Application.md diff --git a/SoC-2021-Ideas.md b/links/mentoring/soc/SoC-2021-Ideas.md similarity index 100% rename from SoC-2021-Ideas.md rename to links/mentoring/soc/SoC-2021-Ideas.md diff --git a/SoC-2021-Org-Application.md b/links/mentoring/soc/SoC-2021-Org-Application.md similarity index 100% rename from SoC-2021-Org-Application.md rename to links/mentoring/soc/SoC-2021-Org-Application.md diff --git a/SoC-2022-Ideas.md b/links/mentoring/soc/SoC-2022-Ideas.md similarity index 100% rename from SoC-2022-Ideas.md rename to links/mentoring/soc/SoC-2022-Ideas.md diff --git a/SoC-2022-Microprojects.md b/links/mentoring/soc/SoC-2022-Microprojects.md similarity index 100% rename from SoC-2022-Microprojects.md rename to links/mentoring/soc/SoC-2022-Microprojects.md diff --git a/SoC-2022-Org-Application.md b/links/mentoring/soc/SoC-2022-Org-Application.md similarity index 99% rename from SoC-2022-Org-Application.md rename to links/mentoring/soc/SoC-2022-Org-Application.md index ed563e7aa..4ac715015 100644 --- a/SoC-2022-Org-Application.md +++ b/links/mentoring/soc/SoC-2022-Org-Application.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2022 Organization Application +navbar: false --- This is a draft of git's application to Google's Summer of Code 2022. diff --git a/SoC-2023-Ideas.md b/links/mentoring/soc/SoC-2023-Ideas.md similarity index 100% rename from SoC-2023-Ideas.md rename to links/mentoring/soc/SoC-2023-Ideas.md diff --git a/SoC-2024-Ideas.md b/links/mentoring/soc/SoC-2024-Ideas.md similarity index 100% rename from SoC-2024-Ideas.md rename to links/mentoring/soc/SoC-2024-Ideas.md diff --git a/SoC-2024-Microprojects.md b/links/mentoring/soc/SoC-2024-Microprojects.md similarity index 100% rename from SoC-2024-Microprojects.md rename to links/mentoring/soc/SoC-2024-Microprojects.md diff --git a/SoC-2025-Ideas.md b/links/mentoring/soc/SoC-2025-Ideas.md similarity index 99% rename from SoC-2025-Ideas.md rename to links/mentoring/soc/SoC-2025-Ideas.md index fac121ab4..df46f21ad 100644 --- a/SoC-2025-Ideas.md +++ b/links/mentoring/soc/SoC-2025-Ideas.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2025 Ideas +navbar: false --- ![git logo >](https://git-scm.com/images/logos/downloads/Git-Logo-2Color.svg) diff --git a/SoC-2025-Microprojects.md b/links/mentoring/soc/SoC-2025-Microprojects.md similarity index 99% rename from SoC-2025-Microprojects.md rename to links/mentoring/soc/SoC-2025-Microprojects.md index 5a5db49ea..0c46ae09b 100644 --- a/SoC-2025-Microprojects.md +++ b/links/mentoring/soc/SoC-2025-Microprojects.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2025 Applicant Microprojects +navbar: false --- ## Introduction diff --git a/links/mentoring/soc/SoC-2026-Ideas.md b/links/mentoring/soc/SoC-2026-Ideas.md new file mode 100644 index 000000000..ad755fea5 --- /dev/null +++ b/links/mentoring/soc/SoC-2026-Ideas.md @@ -0,0 +1,343 @@ +--- +layout: default +title: SoC 2026 Ideas +--- + +![git logo >](https://git-scm.com/images/logos/downloads/Git-Logo-2Color.svg) + +This is the idea page for Summer of Code 2026 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 3 or 4 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. + +### 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. +This architectural improvement will make the codebase more maintainable and +potentially enable better multi-repository handling in the future. + +> Note: While `struct repository` / `struct repository_settings` may seem like a +> natural target for this refactoring, contributors should be cautious about moving +> settings there. `struct repository_settings` was originally designed to hold +> config settings that are lazily parsed. Moving eagerly parsed config settings +> into that struct can cause Git to die in unexpected places when lazy parsing +> fails on an invalid config setting. Any such move requires careful analysis +> and should not be done as a blanket approach. + +The project involves careful refactoring of Git's core environment handling code, +requiring strong C programming skills and attention to detail. Design discussions +on the mailing list to find the best way to refactor individual variables will +likely happen. + +The contributor 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. + +**Getting started**: Build Git from source, study the `environment.c` file and its +global variables, and understand how `struct repository` and `struct repository_settings` +work. For a concrete example of the kind of work this project involves, review +[Bello Caleb Olamide's Outreachy project](https://lore.kernel.org/all/48821a3848bef25c13038be8377ad73e7c17a924.1771258573.git.belkid98@gmail.com/) +to get a sense of the approach and subtleties involved. Submit a micro-patch +to demonstrate familiarity with the codebase, and review recent mailing +list discussions about reducing global state. + +_Expected Project Size_: 90 or 175 hours or 350 hours + +_Difficulty_: Medium + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Christian Couder < > +* Karthik Nayak < > +* Justin Tobler < > +* Ayush Chandekar < > +* Siddharth Asthana < > + +### Improve the new `git repo` command + +The `git repo` command was introduced as part of GSoC 2025 (released in Git 2.52.0) +to provide a cleaner interface for querying repository metadata and configuration. +The command currently has two sub-commands: `git repo info` for retrieving repository +information in machine-readable formats, and `git repo structure` for displaying +repository statistics. + +See the [mailing list discussion](https://public-inbox.org/git/20250610152117.14826-1-lucasseikioshiro@gmail.com/t/#u) +introducing the command and the [official documentation](https://git-scm.com/docs/git-repo) +for current functionality. + +A number of improvements could be made to both sub-commands: + +**For `git repo info`**, potential improvements include: + +- Remove the dependency on `the_repository` global variable +- Use the category as key (e.g., `git repo info layout` would return all layout-related values) +- Add path-related values currently obtained through `git rev-parse` (see "Options for Files" in git-rev-parse documentation): + - git-dir + - common-dir + - toplevel + - superproject-working-tree +- Add more values currently obtained through `git rev-parse --git-path`: + - grafts file + - index file + - objects directory + - hooks directory + - git-prefix + - other paths adjusted by `update_common_dir()` + +Some work to add path-related values +[has already started](https://github.com/lucasoshiro/git/compare/master...repo-info-path/), +so completing that work might be a good starting point. A major design decision +will need to be made on whether to use relative or absolute paths. + +**For `git repo structure`**, functionality from +[git-sizer](https://github.com/github/git-sizer) could be added to provide +more detailed repository analysis and statistics. + +The goal of this project is to discuss possible improvements to +`git repo` with the community, reach an agreement about the best +potential improvements, and then implement them. It requires the +desire to be involved in design discussions on the mailing list. + +**Getting started:** Build Git from source, experiment with `git repo info` and +`git repo structure` commands, study the implementation in `builtin/repo.c`, +review the initial GSoC proposal and discussions, compare functionality with +`git rev-parse` and identify gaps, and submit a micro-patch to demonstrate +familiarity with the codebase. + +**Resources:** +- [Initial implementation discussion](https://public-inbox.org/git/20250610152117.14826-1-lucasseikioshiro@gmail.com/t/#u) +- [Official git-repo documentation](https://git-scm.com/docs/git-repo) +- [git-rev-parse documentation](https://git-scm.com/docs/git-rev-parse) +- [git-sizer tool](https://github.com/github/git-sizer) +- [Work-in-progress branch for path-related values](https://github.com/lucasoshiro/git/compare/master...repo-info-path/) + +_Expected Project Size_: 90 or 175 hours or 350 hours + +_Difficulty_: Medium + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Karthik Nayak < > +* Justin Tobler < > +* Ayush Chandekar < > +* Siddharth Asthana < > + +### Improve disk space recovery for partial clones + +Git's partial clone feature allows users to clone repositories without downloading +all objects immediately, which is particularly useful for very large repositories. +Objects are fetched on-demand from "promisor remotes" as needed. However, over time, +clients may accumulate large local blobs that are no longer needed but remain on disk, +and currently there's no easy way to reclaim this space. + +This project aims to improve `git backfill` (or create a new command) to allow +clients to remove large local blobs when they are available on a promisor remote. +This would help users who want to get back disk space while maintaining the ability +to re-fetch objects when needed. + +The project involves: +- Designing a safe mechanism to identify which blobs can be removed +- Implementing the removal process while maintaining repository integrity +- Ensuring removed objects can be transparently re-fetched when needed +- Adding appropriate safeguards and user controls + +**Important note:** While the project mentions `git backfill`, it is not yet +decided that it is right place to have this command. Other potential candidates +for placement are `git gc` / `git repack` / `git maintenance`. A design discussion +with the community is imminent as part of this project to finalize the most +appropriate placement and for this command. + +**Getting started:** Build Git from source, set up a partial clone and experiment +with promisor remotes, study the existing `git-backfill` command (if available) +or related functionality, understand how Git tracks and fetches objects from +promisor remotes, review documentation on partial clones in +`Documentation/technical/partial-clone.txt`, and submit a micro-patch to +demonstrate familiarity with the codebase. + +**Resources:** +- [Partial clone documentation](https://git-scm.com/docs/partial-clone) +- [Git Protocol v2 documentation](https://git-scm.com/docs/gitprotocol-v2) + +_Expected Project Size_: 175 hours or 350 hours + +_Difficulty_: Medium to Hard + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Christian Couder < > +* Karthik Nayak < > +* Justin Tobler < > +* Siddharth Asthana < > +* Ayush Chandekar < > + +### Implement promisor remote fetch ordering + +When a Git repository is configured with multiple promisor remotes, there's +currently no mechanism to specify or optimize the order in which these remotes +should be queried when fetching missing objects. Different remotes may have +different performance characteristics, costs, or reliability, making fetch +order an important consideration. + +This project aims to implement a fetch ordering mechanism for multiple promisor +remotes. The order could be: +- Configured locally by the client +- Advertised by servers through the promisor-remote protocol + +The key challenge is designing a flexible system that allows servers to +communicate their preferred fetch order to clients (to ensure optimal +performance and cost management). + +As this area is being worked on these days, coordination with others will likely +be required. + +**Getting started:** Build Git from source, set up a repository with multiple +promisor remotes and experiment with object fetching, study how Git currently +handles multiple remotes, review the promisor-remote protocol in +`Documentation/gitprotocol-v2.txt`, understand partial clone implementation, +and submit a micro-patch to demonstrate familiarity with the codebase. + +**Resources:** +- [Partial clone documentation](https://git-scm.com/docs/partial-clone) +- [Git Protocol v2 documentation](https://git-scm.com/docs/gitprotocol-v2) + +_Expected Project Size_: 175 hours or 350 hours + +_Difficulty_: Medium to Hard + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Christian Couder < > +* Karthik Nayak < > +* Justin Tobler < > +* Siddharth Asthana < > +* Ayush Chandekar < > + +### Enhance promisor-remote protocol for better-connected remotes + +Currently, the promisor-remote protocol allows servers to advertise remotes +that the server itself uses as promisor remotes. However, as suggested by +Junio Hamano, it would be useful in some cases if servers could advertise +"better-connected" remotes - remotes that might not be promisor remotes +for the server but would be good choices for the client. + +This enhancement would allow servers to guide clients toward optimal remote +configurations, potentially improving performance and reducing load on +individual servers by distributing requests across a network of remotes. + +This project involves: +- Extending the promisor-remote protocol to support advertising + better-connected remotes +- Implementing server-side logic to determine and advertise appropriate remotes +- Implementing client-side handling of these advertisements +- Designing the protocol extension with backward compatibility in mind +- Testing with various network topologies + +As this area is being worked on these days, coordination with others will likely +be required. + +**Getting started:** Build Git from source, study the current promisor-remote +protocol implementation, read Junio's suggestion in `Documentation/gitprotocol-v2.txt`, +understand how Git currently advertises and uses promisor remotes, set up test +scenarios with multiple interconnected remotes, and submit a micro-patch to +demonstrate familiarity with the codebase. + +**Resources:** +- [Partial clone documentation](https://git-scm.com/docs/partial-clone) +- [Git Protocol v2 documentation - promisor remote section](https://git-scm.com/docs/gitprotocol-v2#_promisor_remotepr_info) + +_Expected Project Size_: 175 hours or 350 hours + +_Difficulty_: Hard + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Christian Couder < > +* Karthik Nayak < > +* Justin Tobler < > +* Siddharth Asthana < > +* Ayush Chandekar < > + +### Complete and extend the `remote-object-info` command for `git cat-file` + +From around June 2024 to March 2025, work was undertaken by Eric Ju to add a +`remote-object-info` sub-command to `git cat-file`. This client-side work +builds upon previous server-side work by Calvin Wan that was merged in 2021. +The feature allows clients to request information about objects from a remote +repository without downloading the full object content, which can be especially +useful for partial clones and large repositories. + +See the [initial patch series](https://lore.kernel.org/git/20240628190503.67389-1-eric.peijian@gmail.com/) +for the original proposal and discussion. + +**The first goal** of this project is to rebase and finalize Eric Ju's +patch series by addressing the remaining feedback from the community review, +so that the improved series can be merged into Git. + +**The second goal** is to build on top of that work to add support for +object type information (`%(objecttype)`). This support should be +added both on the server side and on the client side, extending the +protocol to include this metadata and making it available to users. + +This project involves both protocol design and implementation work, requiring +careful attention to backward compatibility and performance considerations. + +**Getting started:** Build Git from source, study the existing `git cat-file` +command and its batch modes (particularly `--batch` and `--batch-check`), +review Eric Ju's patch series and the community feedback in detail, understand +Calvin Wan's merged server-side work from 2021, study the object-info protocol +extension in `Documentation/gitprotocol-v2.txt`, and submit a micro-patch to +demonstrate familiarity with the codebase. + +**Resources:** +- [Eric Ju's patch series (June 2024)](https://lore.kernel.org/git/20240628190503.67389-1-eric.peijian@gmail.com/) +- [git-cat-file documentation](https://git-scm.com/docs/git-cat-file) +- [Git Protocol v2 documentation](https://git-scm.com/docs/gitprotocol-v2) +- Calvin Wan's server-side work (2021) - search Git mailing list archives + +_Expected Project Size_: 90 or 175 hours or 350 hours + +_Difficulty_: Medium + +_Languages_: C, shell(bash) + +_Possible mentors_: + +* Christian Couder < christian.couder@gmail.com > +* Karthik Nayak < karthik.188@gmail.com > +* Justin Tobler < jltobler@gmail.com > +* Ayush Chandekar < ayu.chandekar@gmail.com > +* Siddharth Asthana < siddharthasthana31@gmail.com > +* Chandra Pratap < chandrapratap3519@gmail.com > + diff --git a/links/mentoring/soc/SoC-2026-Microprojects.md b/links/mentoring/soc/SoC-2026-Microprojects.md new file mode 100644 index 000000000..188fe3e02 --- /dev/null +++ b/links/mentoring/soc/SoC-2026-Microprojects.md @@ -0,0 +1,242 @@ +--- +layout: default +title: SoC 2026 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 + +### 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 + +### Fix Improper Pluralization to Use `ngettext()` + +Help improve Git's internationalization (i18n) support by finding +translatable strings that include a numeric placeholder (`%d` or +`%i`) but use `_()` instead of `Q_()`. This matters because +some languages (like Polish) have more than two plural forms, and +`Q_()` is the only correct way to handle them. + +For example, the Polish word for "file" changes form depending on count: + +- 1 → *plik* +- 2 - 4 → *pliki* +- 5 - 21 → *plików* +- 22 - 24 → *pliki* +- 25 - 31 → *plików* + +A call like `_("Split into %d hunks.")` cannot be correctly translated +for all counts. It must be rewritten using `Q_()` which is an alias +for `ngettext()`. + +#### Steps to Complete + +1. Find candidate strings using: + +```bash +git grep '[^Q]_("[^"]*%[id]' -- '*.c' +``` + +2. Review the results and identify strings where the number genuinely + controls a **count of things** (hunks, branches, objects, etc.). Skip + messages where `%d` refers to something that is never pluralized, + such as an error code, a line number, or a timeout value: + +```c +// NOT a pluralization candidate — error code is never "plural" +die_errno(_("unable to get credential storage lock in %d ms"), timeout_ms); + +// IS a candidate — hunk count should be pluralized +_("Split into %d hunks.") +``` + +3. Rewrite the candidate using `ngettext()`: + +```c +// Before: +printf(_("Split into %d hunks."), n); + +// After: +printf(Q_("Split into %d hunk.", + "Split into %d hunks.", n), n); +``` + +4. Build and run the relevant tests to confirm nothing is broken. + +#### Notes + +- Pick **one source file** with a small number of instances to keep + the patch focused and reviewable. +- There are known candidates in `add-patch.c`, `archive-zip.c`, + `builtin/checkout.c`, `builtin/describe.c`, `builtin/fsck.c` — so + there should be plenty to choose from. +- Each logical change (e.g., one function or one file) should ideally + be its own commit. +- Follow Git's commit message conventions. +- Before starting, ask on the mailing list to confirm no one else is + working on the same file. + +#### Need Help? + +- See the [gettext manual on plural forms](https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms) + for background on why `ngettext()` is necessary. +- Search the codebase for existing `Q_()` usages as examples + of the correct pattern: + +```bash +git grep -3 'Q_(' -- '*.c' +``` + +- If you can't find any unfixed instances, let us know the search command + you used so we can retire this microproject idea. + + +### 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. + +### 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) + +### 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. + +#### Notes +- only work on `t/t????-*.sh` scripts. +- pick just one script (so as to avoid exhausting the pool for other candidates). +- 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). diff --git a/GSoC-Participants.md b/links/mentoring/soc/SoC-Participants.md similarity index 97% rename from GSoC-Participants.md rename to links/mentoring/soc/SoC-Participants.md index 43e6606d7..b06bdc66f 100644 --- a/GSoC-Participants.md +++ b/links/mentoring/soc/SoC-Participants.md @@ -1,6 +1,6 @@ --- layout: default -title: GSoC participants +title: SoC participants --- This document collects the list of contributors who've contributed @@ -11,7 +11,7 @@ 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/) ] [ [retrsopective interview](https://git.github.io/rev_news/2025/11/30/edition-129/#developer-spotlight-ayush-chandekar) ] -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) ] +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) ] [ [retrospective interview](https://git.github.io/rev_news/2025/12/31/edition-130#developer-spotlight-lucas-seiki-oshiro) ] 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 @@ -78,7 +78,7 @@ to Git via GSoC. ### 2019 1. Rohit Ashiwal [ [project](https://summerofcode.withgoogle.com/archive/2019/projects/5390155215536128) ] [ [final report](https://web.archive.org/web/20210727190950/https://rashiwal.me/2019/final-report/) ] [ [blog](https://web.archive.org/web/20210515085551/https://rashiwal.me/) ] -2. Matheus Tavares [ [project](https://summerofcode.withgoogle.com/archive/2019/projects/4787791739748352) ] [ [final report](https://matheustavares.gitlab.io/posts/gsoc-final-report) ] [ [blog](https://matheustavares.gitlab.io/tags/git/) ] [ [retrsopective interview](http://git.github.io/rev_news/2020/10/30/edition-68/#developer-spotlight-matheus-tavares-bernardino) ] +2. Matheus Tavares [ [project](https://summerofcode.withgoogle.com/archive/2019/projects/4787791739748352) ] [ [final report](https://matheustavares.gitlab.io/posts/gsoc-final-report) ] [ [blog](https://matheustavares.gitlab.io/tags/git/) ] [ [retrsopective interview](https://git.github.io/rev_news/2020/10/30/edition-68/#developer-spotlight-matheus-tavares-bernardino) ] #### References diff --git a/rev_news/archive.md b/rev_news/archive.md index be8a2074c..bd113725c 100644 --- a/rev_news/archive.md +++ b/rev_news/archive.md @@ -1,11 +1,12 @@ --- layout: default title: Git Rev News Archive +order: 3 --- # Archive -Here you can see all the previous editions. See [About Git Rev News](https://git.github.io/about/) for ways you can subscribe. +Here you can see all the previous editions. See [About Git Rev News](https://git.github.io/rev_news/rev_news/) for ways you can subscribe.
    {% for post in site.posts %} diff --git a/rev_news/drafts/edition-130.md b/rev_news/drafts/edition-134.md similarity index 69% rename from rev_news/drafts/edition-130.md rename to rev_news/drafts/edition-134.md index 860f707ea..0d238ad44 100644 --- a/rev_news/drafts/edition-130.md +++ b/rev_news/drafts/edition-134.md @@ -1,19 +1,19 @@ --- -title: Git Rev News Edition 130 (December 31st, 2025) +title: Git Rev News Edition 134 (April 30th, 2026) layout: default -date: 2025-12-31 12:06:51 +0100 +date: 2026-04-30 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 130 (December 31st, 2025) +## Git Rev News: Edition 134 (April 30th, 2026) -Welcome to the 130th edition of [Git Rev News](https://git.github.io/rev_news/rev_news/), +Welcome to the 134th 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). +subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](https://git.github.io). -This edition covers what happened during the months of November and December 2025. +This edition covers what happened during the months of March and April 2026. ## Discussions diff --git a/rev_news/edition-1.md b/rev_news/edition-1.md index 6770979ab..ecc486f64 100644 --- a/rev_news/edition-1.md +++ b/rev_news/edition-1.md @@ -53,8 +53,7 @@ Paul Tan, who will probably apply to be a [Google Summer of Code Git this year, anticipated the start of the GSoC and sent a patch to rewrite git-pull.sh as a built-in. -Indeed as stated in [the GSoC idea -page](https://git.github.io/SoC-2015-Ideas.html): +Indeed as stated in [the GSoC idea page](https://git.github.io/SoC-2015-Ideas/): ``` Many components of Git are still in the form of shell and Perl @@ -122,7 +121,7 @@ Dongcan Jiang, who will also probably apply to be a GSoC student for Git this year, sent a patch to prevent `git log` from being used with both the `--graph` and the `--no-walk` option. He sent this patch because the Git community asks potential students to work on a -[microproject](https://git.github.io/SoC-2015-Microprojects.html) to +[microproject](https://git.github.io/SoC-2015-Microprojects/) to make sure that they can work properly with the community. Eric Sunshine made some good general suggestions that are often made diff --git a/rev_news/index.md b/rev_news/index.md index 35353e4ee..c729e65d4 100644 --- a/rev_news/index.md +++ b/rev_news/index.md @@ -1,6 +1,7 @@ --- layout: default -title: Git Rev News +title: Git Rev News Latest +order: 2 --- # Latest edition diff --git a/rev_news/news_sources.md b/rev_news/news_sources.md index 00db881fc..38bfc3913 100644 --- a/rev_news/news_sources.md +++ b/rev_news/news_sources.md @@ -1,6 +1,7 @@ --- layout: default title: Git Rev News Sources +order: 4 --- # Sources diff --git a/rev_news/rev_news.md b/rev_news/rev_news.md index 0d559192b..1e348c8a5 100644 --- a/rev_news/rev_news.md +++ b/rev_news/rev_news.md @@ -1,6 +1,7 @@ --- layout: default title: About Git Rev News +order: 1 --- # About Git Rev News