Welcome to the 63rd edition of Git 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 on git.github.io.
This edition covers what happened during the month of April 2020.
The following three students have been officially accepted to work on Git as part of the GSoC (Google Summer of Code) 2020:
Hariom Verma will work on Unify ref-filter formats with other --pretty formats. He will be co-mentored by Heba Waly and Christian Couder. More information is available on his proposal and blog.
It will be the 13th Summer that the Git project will mentor students as part of the GSoC. Shourya, Hariom and Abhishek will be the 30th, 31st and 32nd students mentored since 2007 when Git started participating in the GSoC.
It will be the 16th year of the GSoC, but unfortunately because of the current sanitary situation in the world, there will be no GSoC Mentor Summit, and no swag will be sent to participants this year.
Last February Damien Robert sent a patch to change how
Damien had already sent a patch
in April 2019 to fix another bug in ‘ref-filter.c’
%(push:track). This patch was incorporated in Git 2.22.
‘ref-filter.c’ is some internal API that formats information about
Git refs or Git objects. It’s used by commands like
git branch and
The issue Damien wanted to fix was that ‘ref-filter.c’ didn’t take
into account the
push.default config option
which is used when no refspec is specified for the push.
Peff, alias Jeff King, replied to Damien, and made it clear that it
was about taking
push.default into account. He also found that
Damien’s patch wouldn’t work in the case where
push.default was set
upstream and a branch has been set to track a specific branch
different than the default one.
Peff then commented on the code and asked for some tests, saying that the current tests were not covering this case and that they would wrongly fail if Damien’s patch was applied.
Damien replied to Peff agreeing about the
upstream case and to add
more tests. He found that his initial code also wouldn’t work when
push.default was set to
Peff and Damien discussed a bit more some details of the possible changes in the code, while Peff proposed a preparatory patch to clean up the current code before Damien’s changes. Then Damien sent a version 2 of his patch along with Peff’s preparatory patch.
The version 2 handled all
push.default cases and added tests for
them, but Junio Hamano, the Git maintainer, suggested improvements
in the commit message of the preparatory patch. Peff suggested
improvements of his own but agreed with Junio’s suggestion too.
Meanwhile Damien found issues in version 2 of his own patch, and separately Junio commented on it and suggested some improvements. Damien and Junio soon agreed, and then Damien sent a version 3 of his patch. This version contained only Damien’s patch, as Peff’s patch was merged separately.
Peff found a memory leak around Damien’s patch, but the leak had already been there before the patch. Peff also suggested small improvements to the tests, and eventually sent his own version of Damien’s patch for him to “to try it out or hack on it further”.
Damien found an issue in Peff’s patch though, and, after improving the tests in his patch, more existing issues in the current code in case of a triangular workflow. Peff commented that these issues could be left for a separate fix though.
Damien then sent a version 6 of his patch, though the title in the cover letter mistakenly contains “v4”, saying version 4 and version 5 were intermediate versions he made but did not send to the mailing list.
This version contained a preparatory patch to fix the triangular workflow issues Damien had found, as well as his updated patch with tests for both his fixes in this patch and the triangular workflow fixes. However, this patch series was marked as RFC, since its first patch was not very polished and did not fix all corner triangular workflow cases.
This led to some release confusion
as Junio then had merged the 2 patches to the
next branch, while
Damien had sent a
that contained only his patch without the triangular workflow fixes
and test cases.
This last version is now merged in the
pu branch, and is
likely to find its way to
master, while hopefully the fixes
related to triangular workflows will be re-sent separately.
rebaseby Milu Franz.
git rebase -iby Dave Neary.
.gitattributesand a custom shell script for wrapping the
git diffcommand, using
spongeto process JSON files.
Git tools and sites
This edition of Git Rev News was curated by Christian Couder <email@example.com>, Jakub Narębski <firstname.lastname@example.org>, Markus Jansen <email@example.com> and Kaartic Sivaraam <firstname.lastname@example.org> with help from Johannes Schindelin, Elijah Newren and Damien Robert.