From 397cfae676621e6054e1edc0805113e5c8e2fa77 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 15 Mar 2021 08:42:48 +0100 Subject: [PATCH 0001/1248] Hacking-Git: improve introdution text --- Hacking-Git.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index f73b2eee1c..689094e923 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -3,8 +3,18 @@ layout: default title: Hacking Git --- -The goal of this document is not to be a tutorial but rather to point -people to interesting material that has already been written. +The goal of this document is not to be a tutorial, but rather to +point to interesting material that has already been written. + +The goal is also not to list all the articles about Git or its +internals. There are a lot of good resources, including free +[books](http://git-scm.com/book/en/v2/), about that elsewhere. + +Contributions are welcome though! Please contact us on the Git Mailing +list (at [git@vger.kernel.org](mailto:git@vger.kernel.org)) or open an +issue or a pull request on our +[GitHub repo](https://github.com/git/git.github.io/) to discuss or +suggest improvements. Thanks! ## Building Git From 1ac941833f0f3d6418149ffaf8bb9802f1f12a48 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 15 Mar 2021 08:46:31 +0100 Subject: [PATCH 0002/1248] Hacking-Git: add an 'Understanding the Git code base' section --- Hacking-Git.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index 689094e923..b8b34ef2de 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -24,6 +24,14 @@ suggest improvements. Thanks! * [The top of the Makefile](https://github.com/git/git/blob/master/Makefile), for special "Makefile knobs" +## Understanding the Git code base + +* [A birds-eye view of Git’s source code](https://git-scm.com/docs/user-manual#birdview-on-the-source-code) + +* [Fabien Sanglar's Git Source Code Review](https://fabiensanglard.net/git_code_review/architecture.php) + +* [Boost Your Programming Skills by Reading Git's Code](https://www.freecodecamp.org/news/boost-programming-skills-read-git-code/) + ## Getting started hacking and contributing * ["My First Contribution"](https://git-scm.com/docs/MyFirstContribution) From 476e977679977d6e78750c65d2e5c8c47d699f25 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 15 Mar 2021 09:28:27 +0100 Subject: [PATCH 0003/1248] Hacking-Git: improve 'Birds-eye' entry --- Hacking-Git.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index b8b34ef2de..56d1aa4f21 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -26,7 +26,7 @@ suggest improvements. Thanks! ## Understanding the Git code base -* [A birds-eye view of Git’s source code](https://git-scm.com/docs/user-manual#birdview-on-the-source-code) +* ["A birds-eye view of Git’s source code"](https://git-scm.com/docs/user-manual#birdview-on-the-source-code) in the Git User’s Manual * [Fabien Sanglar's Git Source Code Review](https://fabiensanglard.net/git_code_review/architecture.php) From e14643e206094127cdee1060709add8a27ead94f Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 23 Mar 2021 09:53:16 +0100 Subject: [PATCH 0004/1248] rn-73: add releases --- rev_news/drafts/edition-73.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/rev_news/drafts/edition-73.md b/rev_news/drafts/edition-73.md index aa651bd6e8..5de8a653c1 100644 --- a/rev_news/drafts/edition-73.md +++ b/rev_news/drafts/edition-73.md @@ -35,6 +35,33 @@ This edition covers what happened during the month of February 2021. ## Releases ++ Git [2.31.0](https://public-inbox.org/git/xmqqwnu8z03c.fsf@gitster.g/), +[2.31.0-rc2](https://public-inbox.org/git/xmqqblbs19uf.fsf@gitster.c.googlers.com/), +[2.30.2 and below for CVE-2021-21300](https://public-inbox.org/git/xmqqim6019yd.fsf@gitster.c.googlers.com/), +[2.31.0-rc1](https://public-inbox.org/git/xmqqr1kwk0h9.fsf@gitster.c.googlers.com/), +[2.31.0-rc0](https://public-inbox.org/git/xmqqlfbbshza.fsf@gitster.g/) ++ Git for Windows [2.31.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.31.0.windows.1), +[2.31.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.31.0-rc2.windows.1), +[2.31.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.31.0-rc1.windows.1), +[2.31.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.31.0-rc0.windows.1), +[2.30.2(1)](https://github.com/git-for-windows/git/releases/tag/v2.30.2.windows.1) ++ Bitbucket Server [7.11](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ GitHub Enterprise [3.0.2](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.2), +[2.22.8](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.8), +[2.21.16](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.16), +[3.0.1](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.1), +[2.22.7](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.7), +[2.21.15](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.15), +[2.20.24](https://help.github.com/enterprise-server@2.20/admin/release-notes#2.20.24) ++ GitLab [13.10](https://about.gitlab.com/releases/2021/03/22/gitlab-13-10-released/), +[13.9.4, 13.8.6, and 13.7.9](https://about.gitlab.com/releases/2021/03/17/security-release-gitlab-13-9-4-released/), +[13.9.3](https://about.gitlab.com/releases/2021/03/08/gitlab-13-9-3-released/), +[13.9.2, 13.8.5 and 13.7.8](https://about.gitlab.com/releases/2021/03/04/security-release-gitlab-13-9-2-released/), +[13.9.1](https://about.gitlab.com/releases/2021/02/23/gitlab-13-9-1-released/) ++ GitKraken [7.5.2](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [2.6.6](https://desktop.github.com/release-notes/), +[2.6.5](https://desktop.github.com/release-notes/), +[2.6.4](https://desktop.github.com/release-notes/) ## Other News From c9ade1307943b95d010d949810ae2210cec0a985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 24 Mar 2021 02:46:01 +0100 Subject: [PATCH 0005/1248] rn-73: Add links to various articles, and a few tools and sites --- rev_news/drafts/edition-73.md | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/rev_news/drafts/edition-73.md b/rev_news/drafts/edition-73.md index 5de8a653c1..b6d65eda6e 100644 --- a/rev_news/drafts/edition-73.md +++ b/rev_news/drafts/edition-73.md @@ -67,12 +67,62 @@ This edition covers what happened during the month of February 2021. __Various__ +* [Git clone vulnerability announced](https://github.blog/2021-03-09-git-clone-vulnerability-announced/) + by Taylor Blau on GitHub Blog, and + [A vulnerability in Git](https://lwn.net/Articles/848935/) + by Jake Edge on LWN.net +* [Highlights from Git 2.31](https://github.blog/2021-03-15-highlights-from-git-2-31/) + by Taylor Blau on GitHub Blog + __Light reading__ +* [Optimizing git’s merge machinery, #1](https://blog.palantir.com/optimizing-gits-merge-machinery-1-127ceb0ef2a1) + and [#2](https://blog.palantir.com/optimizing-gits-merge-machinery-2-d81391b97878) + by Elijah Newren on Palantir Blog +* [How Does Git Work?](https://www.honeybadger.io/blog/how-does-git-work/) + by Julie Kent +* [Git is my buddy: Effective Git as a solo developer](https://mikkel.ca/blog/git-is-my-buddy-effective-solo-developer/) + by Mikkel Paulson +* [How to Utilize Submodules within Git Repos](https://blog.bitsrc.io/how-to-utilize-submodules-within-git-repos-5dfdd1c62d09): + One Solution When the Primary Code Can be Open Source, but Specific Content Needs to be Private, + by Paige Niedringhaus on Bits and Pieces blog (a Medium site) +* [How to use .mailmap file in git repository](ukasmestan.com/using-mailmap-in-git-repository/) + by Lukáš Mešťan (2020) +* [What is Trunk Based Development? A Different Approach to the Software Development Lifecycle](https://www.freecodecamp.org/news/what-is-trunk-based-development/) + by Kealan Parr on freeCodeCamp. This approach was also one of those described + in [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html) + by Martin Fowler, which was mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). +* [Improving large monorepo performance on GitHub](https://github.blog/2021-03-16-improving-large-monorepo-performance-on-github/) + by Scott Arbeit on GitHub Blog, in the Engineering section +* [Hacking the git shell prompt](https://blog.plover.com/prog/git-prompt-hook-hack.html) + by Mark Dominus describes a hack creating a generic mechanism for abbreviating + or transforming the branch name in the prompt +* [Boost Your Programming Skills by Reading Git's Code](https://www.freecodecamp.org/news/boost-programming-skills-read-git-code/) + by Jacob Stopak on freeCodeCamp +* [How To Set Up Continuous Integration With Git and Jenkins](https://www.lambdatest.com/blog/how-to-setup-continuous-integration-with-git-jenkins/) + by Suparna Khamaru on LambdaTest Blog +* [Store your Kubernetes Secrets in Git thanks to Kubeseal. Hello SealedSecret!](https://dev.to/stack-labs/store-your-kubernetes-secrets-in-git-thanks-to-kubeseal-hello-sealedsecret-2i6h) + by Aurélie Vache on Dev.to. More generic solutions for storing secrets in Git repository + were described in Git Rev News editions [#39](https://git.github.io/rev_news/2018/05/16/edition-39/) + and [#57](https://git.github.io/rev_news/2019/11/20/edition-57/), among others. + __Git tools and sites__ +* [Project GITenberg](http://gitenberg.github.io/) is a Free and Open, + Collaborative, Trackable and Scriptable digital library. It leverages the + power of the Git version control system and the collaborative potential of + GitHub to make books more open. The books in this project originate from + the work of [Project Gutenberg](http://www.gutenberg.org/), a volunteer effort + to digitize and archive cultural works, mostly the full texts of + public domain books. +* [ungit](https://github.com/FredrikNoren/ungit) is a Git command-line UI + with text-editors integrations, + that utilizes web browser for graphical interface. It is intended to make + Git easier to use. In this it is somewhat similar to no longer actively developed + [Easy Git](https://people.gnome.org/~newren/eg/). + ## Credits From 1b1a2ad016b4097eacaada5dcdeccb8d8ed2d6b1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 24 Mar 2021 08:44:21 +0100 Subject: [PATCH 0006/1248] rn-73: add ref-transaction article --- rev_news/drafts/edition-73.md | 83 ++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-73.md b/rev_news/drafts/edition-73.md index b6d65eda6e..35f319428d 100644 --- a/rev_news/drafts/edition-73.md +++ b/rev_news/drafts/edition-73.md @@ -25,9 +25,88 @@ This edition covers what happened during the month of February 2021. ### Reviews --> - + +* [[QUESTION] Tracking HEAD changes?](https://lore.kernel.org/git/CAGgn8PdU1GE_CZdGUpJWKzygd0O+Yn2BnAFGmPfKAxFpoVoqUA@mail.gmail.com/) + + Yaron Wittenstein asked on the mailing list if there is "any + possible way to track changes to HEAD using hooks". He said he would + like to listen to events such as "pre-head-checkout" and + "post-head-checkout", but thought that it was only possible using a + file watch over the `.git/refs` directory. + + Jeff King, alias Peff, first replied that he thought there was no + better way, and that it was also required to watch `.git/HEAD`. He + also showed some code for + Linux/[inotify](https://en.wikipedia.org/wiki/Inotify) he uses to + automatically run tests against the current commit: + + ``` + gitdir=$(git rev-parse --git-dir) + # We need delete_self to pick up changes to HEAD (since it gets renamed + # over), and "move" to pick up changes in the refs directories. + inotifywait -qq -t 60 -e delete_self -e move -r "$gitdir/HEAD" "$gitdir/refs" + ``` + + Peff also recommended using Michael Haggerty's + [git-test tool](https://github.com/mhagger/git-test) for avoiding + re-running tests against the same commits repeatedly. + + Then Peff replied to his previous email that Patrick Steinhardt also + recently (since Git v2.28.0) implemented a new + [ref-transaction hook](https://www.git-scm.com/docs/githooks#_reference_transaction) + that can get triggered by updates to the ref that HEAD is pointing at. + + Yaron replied that this seems to do the trick, except the hook + doesn't execute when switching branches. He found a work-around + though by using the post-checkout hook in addition. + + Peff said that he thought the hook would be triggered when HEAD is + updated by a branch switch, and wondered if that was a bug, a + missing feature, or something intentional in the ref-transaction + hook design. + + Patrick replied that the reason is that + [symrefs](https://git-scm.com/docs/git-symbolic-ref) are not covered + by the reference transaction mechanism itself, which existed before + he implemented the new hook, and which the hook is using + underneath. He also said that he should update the documentation to + make it clearer what is covered by the hook and what's not. + + Yaron thanked Patrick for the clarification and asked if there were + plans for the hook to be called when symrefs are updated. He also + said it didn't seem intuitive to him that the index and working dirs + are being updated, which calls the "post-index-change" hook, before + the transaction is approved, which calls the "ref-transaction" hook. + + Patrick replied that he didn't have plan for the hook to support + symrefs, but wouldn't oppose such effort. About the order in which + things were happening, he said that it is the way Git currently + works and that the goal of the ref-transaction hook, which he worked + on as part of his work for GitLab, was "to catch _all_ reference + updates such that one can coordinate across multiple git nodes the + same action to assert they're moving from the same state to the same + state, regardless of whether they're doing a + [git-push](https://git-scm.com/docs/git-push), + [git-merge](https://git-scm.com/docs/git-merge) or + [git-update-ref](https://git-scm.com/docs/git-update-ref)". + + Junio Hamano, the Git Maintainer, further explained that "ref + transaction is only about changes to the refs" and that "there is no + such 'transaction' that treats a series of operations like object + creation and index manipulation that may happen before a group of + refs are updated as a single unit and make it atomic." + + Meanwhile Peff replied to Patrick's first explanation about why + symrefs are not covered by the hook saying that it might be + something that could be fixed. He also said that GitHub's custom + repository replication mechanism does track symref updates, but uses + a simple lock mechanism to get the state of the symrefs, while it + uses a 3-phase commit based on custom code similar to the + ref-transaction hook for normal refs. + + Yaron then summarized his understanding of how things work and asked + if he was right. Peff replied that it matched his understanding. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From ea0d26d6f126ba7e56523fc025d29c4117c9bebd Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 27 Mar 2021 09:04:30 +0100 Subject: [PATCH 0015/1248] rn-73: remove 'with help from XXX' --- _posts/2021-03-27-edition-73.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_posts/2021-03-27-edition-73.markdown b/_posts/2021-03-27-edition-73.markdown index b642b1ef79..96acb4e869 100644 --- a/_posts/2021-03-27-edition-73.markdown +++ b/_posts/2021-03-27-edition-73.markdown @@ -210,5 +210,4 @@ This edition of Git Rev News was curated by Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and -Kaartic Sivaraam <> -with help from XXX. +Kaartic Sivaraam <>. From 6e59acbfcaec4d3a87ac9575997ee8ded9ae6fa3 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 27 Mar 2021 09:14:20 +0100 Subject: [PATCH 0016/1248] =?UTF-8?q?rn-73:=20actually=20add=20=C3=86var?= =?UTF-8?q?=20and=20Matheus=20as=20helpers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _posts/2021-03-27-edition-73.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_posts/2021-03-27-edition-73.markdown b/_posts/2021-03-27-edition-73.markdown index 96acb4e869..ab02317633 100644 --- a/_posts/2021-03-27-edition-73.markdown +++ b/_posts/2021-03-27-edition-73.markdown @@ -210,4 +210,6 @@ This edition of Git Rev News was curated by Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and -Kaartic Sivaraam <>. +Kaartic Sivaraam <> +with help from Ævar Arnfjörð Bjarmason and Matheus +Tavares Bernardino. From b6ab37f65e09cf2be1f57843c699fc29598596ee Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 27 Mar 2021 09:27:11 +0100 Subject: [PATCH 0017/1248] rn-73: congratulate Charvi and Joey --- _posts/2021-03-27-edition-73.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_posts/2021-03-27-edition-73.markdown b/_posts/2021-03-27-edition-73.markdown index ab02317633..2122ea05fc 100644 --- a/_posts/2021-03-27-edition-73.markdown +++ b/_posts/2021-03-27-edition-73.markdown @@ -153,7 +153,9 @@ __Various__ by Jake Edge on LWN.net. * [Highlights from Git 2.31](https://github.blog/2021-03-15-highlights-from-git-2-31/) by Taylor Blau on GitHub Blog. - +* Congratulations to [Joey Salazar](https://jsal.home.blog/) and + [Charvi Mendiratta](https://charvi-077.github.io/) who successfully completed their + [Outreachy internship](https://www.outreachy.org/alums/)! __Light reading__ From 4d650087e0aa37ba9d8d06b4aacedf507b00b535 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 27 Mar 2021 09:29:17 +0100 Subject: [PATCH 0018/1248] rn-73: improve Charvi and Joey's congratulations --- _posts/2021-03-27-edition-73.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-03-27-edition-73.markdown b/_posts/2021-03-27-edition-73.markdown index 2122ea05fc..15d73ded85 100644 --- a/_posts/2021-03-27-edition-73.markdown +++ b/_posts/2021-03-27-edition-73.markdown @@ -155,7 +155,7 @@ __Various__ by Taylor Blau on GitHub Blog. * Congratulations to [Joey Salazar](https://jsal.home.blog/) and [Charvi Mendiratta](https://charvi-077.github.io/) who successfully completed their - [Outreachy internship](https://www.outreachy.org/alums/)! + [Outreachy internship](https://www.outreachy.org/alums/) working on Git! __Light reading__ From 2d19df54e9af461429a9d72337b4181156a75b64 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 27 Mar 2021 23:46:34 +0530 Subject: [PATCH 0019/1248] Point to information about writing a good commit message Newcomers applying for an internship program might not be aware of the commit message guidelines of our community. So, linking to it from the "General Microproject Information" might be helpful. --- General-Microproject-Information.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 7785766b31..a34f161b39 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -86,7 +86,10 @@ the following steps: to gain at least [a basic familiarity](http://git-scm.com/documentation) with using Git. Make sure to write a good commit message that explains the - reason for the change and any ramifications. Remember to make sure + reason for the change and any ramifications. You can find information + on writing a good commit message in the + ["Describe your changes well" section of the `SubmittingPatches` document](https://git-scm.com/docs/SubmittingPatches#describe-changes). + Remember to make sure that you agree with our "Developer's Certificate of Origin" (whose text is contained in `Documentation/SubmittingPatches`), and to signify your agreement by adding a `Signed-off-by` line. From 3da06d5d543c56023b040ef9f4af33fca2666cb4 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 28 Mar 2021 00:15:26 +0530 Subject: [PATCH 0020/1248] Ensure plain links are linkified Linkify plain links in "General Microproject Information" so that it is easier for students to access those links. --- General-Microproject-Information.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 7785766b31..77525ddff5 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -98,7 +98,7 @@ the following steps: [access permissions confirmation](https://docs.travis-ci.com/user/github-oauth-scopes), and enable builds of your Git fork in your Travis CI profile (you only have to do these steps once). Afterwards you can push - your changes to your fork and on https://travis-ci.org/your-github-name/git/builds + your changes to your fork and on (example [here](https://travis-ci.org/git/git/builds)) you can see if your changes pass the Git test suite on Ubuntu Linux and on Mac OS X. @@ -192,7 +192,7 @@ you did is very significant and/or of high quality! If you don't like for some reason the microprojects that are proposed related to your program, or if you just want more choice, you may find other ideas for microprojects by searching the mailing list -(https://public-inbox.org/git/) or the code base itself. In the code +() or the code base itself. In the code base you could search the code itself or the tests (in the "t" directory). @@ -210,7 +210,7 @@ that recently. ### Searching for bug reports Git has no official bug tracker or bug list. On -https://git-scm.com/community we recommend that people report bugs + we recommend that people report bugs directly on the Git mailing list. On the mailing list people sending bug reports are likely to use @@ -224,26 +224,26 @@ known behaviors or limitations though. So don't expect too much. send patches from a GitHub repository to the Git mailing list, has its own list of Git issues on: -https://github.com/gitgitgadget/git/issues + There are even a couple ideas marked as #leftoverbits, i.e. curated and copied from the Git mailing list see: -https://github.com/gitgitgadget/git/issues?q=is%3Aissue+is%3Aopen+label%3Aleftoverbits + And there are a couple of project ideas marked as "good first issue": -https://github.com/gitgitgadget/git/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 + that might be interesting to look at. There is another non official bug tracker dedicated to Git issues on: -https://crbug.com/git + Git for Windows also has it's own issue tracker: -https://github.com/git-for-windows/git/issues + But of course the Git for Windows issues might not apply to Git itself. Please check that before talking about them on the Git mailing @@ -259,7 +259,7 @@ when they think further small work on the topic could be useful. You can easily search that using: -https://public-inbox.org/git/?q=leftoverbits + But don't forget to search to check if what you find has already been addressed. If it has not been addressed, please ask first on the From 903d7d11d767efd2da56d919b1fa3cc3f3986326 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 28 Mar 2021 00:23:21 +0530 Subject: [PATCH 0021/1248] Link to MyFirstContribution It is a good resource that could help newcomers. So, link to it from the "General-Microproject-Information" page. --- General-Microproject-Information.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index a34f161b39..c2f79fb0b0 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -63,7 +63,8 @@ the following steps: formatting very seriously. * Read about the process for submitting patches to Git: this is - described in `Documentation/SubmittingPatches`. + described in `Documentation/SubmittingPatches`. A more detailed + step-by-step guide could be found in [`Documentation/MyFirstContribution.txt`](https://git-scm.com/docs/MyFirstContribution). * Select a microproject and check that it has not yet been taken or discussed by searching the mailing list. From a329448adb5f9b020cb1a2062b92aca1e8da634a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 28 Mar 2021 00:31:01 +0530 Subject: [PATCH 0022/1248] Mention Hacking-Git as a useful resource --- General-Microproject-Information.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index c2f79fb0b0..0d8d63e4fe 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -66,6 +66,10 @@ the following steps: described in `Documentation/SubmittingPatches`. A more detailed step-by-step guide could be found in [`Documentation/MyFirstContribution.txt`](https://git-scm.com/docs/MyFirstContribution). +* The "[Hacking Git](https://git.github.io/Hacking-Git/)" page + could also serve as a handy resource. It points to resources + on various topics related to working on Git. + * Select a microproject and check that it has not yet been taken or discussed by searching the mailing list. [Public Inbox](http://public-inbox.org/git/) is your friend. From cfa284b2808a843bcf4de15ac9fa419a7c6af48e Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Wed, 7 Apr 2021 13:54:57 +0500 Subject: [PATCH 0023/1248] Update index.md --- index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/index.md b/index.md index 77a81ed78e..237abcdbb7 100644 --- a/index.md +++ b/index.md @@ -1,5 +1,6 @@ --- layout: default +favicon: images/logo.png title: Git Developer Pages navbar: false --- From c4371cbfb8cc52e4adaab647fc42d4be6afb373f Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Thu, 8 Apr 2021 01:38:42 +0500 Subject: [PATCH 0024/1248] Change default.html --- _layouts/default.html | 1 + 1 file changed, 1 insertion(+) diff --git a/_layouts/default.html b/_layouts/default.html index 2887d3b7e6..ae9bd0bf97 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -5,6 +5,7 @@ {{ page.title }} + From de9ad4d471d57ba75227821913b010245cc288d4 Mon Sep 17 00:00:00 2001 From: snxx-lppxx Date: Mon, 12 Apr 2021 19:23:10 +0500 Subject: [PATCH 0025/1248] Revert "Update index.md" This reverts commit cfa284b2808a843bcf4de15ac9fa419a7c6af48e. --- index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/index.md b/index.md index 237abcdbb7..77a81ed78e 100644 --- a/index.md +++ b/index.md @@ -1,6 +1,5 @@ --- layout: default -favicon: images/logo.png title: Git Developer Pages navbar: false --- From 51fa4570994fc4a11176a10628bce237f4445799 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 16 Apr 2021 08:21:13 +0200 Subject: [PATCH 0026/1248] rn-74: add GitLab's Outreachy blog post --- rev_news/drafts/edition-74.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index f5559cbe31..3292b95491 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -40,6 +40,8 @@ This edition covers what happened during the month of March 2021. __Various__ +* [Technology internships meet open source in Outreachy](https://about.gitlab.com/blog/2021/04/15/outreachy-sponsorship-winter-2020/) + on GitLab's blog is about recent Outreachy interns working on Git. __Light reading__ From 87e3163a125f5fbce7778232fae12a7cefc23382 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 27 Apr 2021 07:52:54 +0200 Subject: [PATCH 0027/1248] rn-74: add releases --- rev_news/drafts/edition-74.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index 3292b95491..bd87fe641b 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -35,6 +35,32 @@ This edition covers what happened during the month of March 2021. ## Releases ++ Git [2.31.1](https://lore.kernel.org/git/xmqq1rc1sf2z.fsf@gitster.g/), ++ Git for Windows [2.31.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.31.1.windows.1) ++ GitHub Enterprise [3.0.5](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.5), +[2.22.11](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.11), +[2.21.19](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.19), +[3.0.4](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.4), +[2.22.10](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.10), +[2.21.18](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.18), +[3.0.3](https://docs.github.com/en/enterprise-server@3.0/admin/release-notes#3.0.3), +[2.22.9](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.9), +[2.21.17](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.17) ++ GitLab [13.11.1](https://about.gitlab.com/releases/2021/04/23/gitlab-13-11-1-released/), +[13.11](https://about.gitlab.com/releases/2021/04/22/gitlab-13-11-released/), +[13.10.3, 13.9.6, and 13.8.8](https://about.gitlab.com/releases/2021/04/14/security-release-gitlab-13-10-3-released/), +[13.10.2](https://about.gitlab.com/releases/2021/04/01/gitlab-13-10-2-released/), +[13.10.1, 13.9.5, and 13.8.7](https://about.gitlab.com/releases/2021/03/31/security-release-gitlab-13-10-1-released/) ++ Bitbucket Server [7.12](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ Gerrit Code Review [3.3.3](https://www.gerritcodereview.com/3.3.html#333), +[3.2.8](https://www.gerritcodereview.com/3.2.html#328), +[3.1.13](https://www.gerritcodereview.com/3.1.html#3113) ++ GitKraken [7.5.5](https://support.gitkraken.com/release-notes/current), +[7.5.4](https://support.gitkraken.com/release-notes/current), +[7.5.3](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [2.7.2](https://desktop.github.com/release-notes/), +[2.7.1](https://desktop.github.com/release-notes/), +[2.7.0](https://desktop.github.com/release-notes/) ## Other News From 4e7378b58d9051de0d6a0b4589e0f9e14a66097c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 27 Apr 2021 23:20:48 +0200 Subject: [PATCH 0028/1248] rn-74: All links to various articles and tools --- rev_news/drafts/edition-74.md | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index bd87fe641b..95f5bf82f5 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -64,16 +64,55 @@ This edition covers what happened during the month of March 2021. ## Other News +__Events__ + +* [Announcing the Global Maintainer Summit](https://github.blog/2021-04-06-announcing-the-global-maintainer-summit/) + on June 8--9th. + + __Various__ * [Technology internships meet open source in Outreachy](https://about.gitlab.com/blog/2021/04/15/outreachy-sponsorship-winter-2020/) on GitLab's blog is about recent Outreachy interns working on Git. +* [Enhanced Productivity with Git in Visual Studio](https://devblogs.microsoft.com/visualstudio/enhanced-productivity-with-git-in-visual-studio/) + (in upcoming version 16.10). + __Light reading__ +* [A look under the hood: how branches work in Git](https://stackoverflow.blog/2021/04/05/a-look-under-the-hood-how-branches-work-in-git/) + by Tobias Günther on The Overflow -- the Stack Overflow blog. +* [Experiment on your code freely with Git worktree](https://opensource.com/article/21/4/git-worktree) + by Seth Kenlon (Red Hat) on Opensource.com. +* [5 commands to level-up your Git game](https://opensource.com/article/21/4/git-commands): + `git whatchanged`, `git stash`, `git worktree`, `git cherry-pick` and + [managing $HOME with Git](https://opensource.com/article/21/4/git-home), + by Seth Kenlon (Red Hat) on Opensource.com. +* [A practical guide to using the git stash command](https://opensource.com/article/21/4/git-stash) + by Ramakrishna Pattnaik on Opensource.com. +* [Scanning for secrets](https://lwn.net/Articles/851670/) in Git repositories + automatically, by Jake Edge on LWN.net. +* [How we ship code faster and safer with feature flags](https://github.blog/2021-04-27-ship-code-faster-safer-feature-flags/) + by Alberto Gimeno on GitHub Blog. +* [How to Set Up Continuous Integration for a Monorepo Using Buildkite](https://www.freecodecamp.org/news/how-to-set-up-continuous-integration-for-monorepo-using-buildkite/) + by Subash Adhikari on freeCodeCamp. +* [How to Use Git and Git Workflows -- a Practical Guide](https://www.freecodecamp.org/news/practical-git-and-git-workflows/) + by John Mosesman on freeCodeCamp. +* [Improving shell workflows with fzf](https://seb.jambor.dev/posts/improving-shell-workflows-with-fzf/) + by Sebastian Jambor. The [fzf](https://github.com/junegunn/fzf) tool was mentioned + alongside [git-fuzzy](https://github.com/bigH/git-fuzzy) (that uses it) in + [Git Rev News #64](https://git.github.io/rev_news/2020/06/25/edition-64/). +* [Git email flow vs Github flow](https://blog.brixit.nl/git-email-flow-versus-github-flow/): + Comparing the Github and Gitlab pull request workflow to the Git built-in email workflow, + by Martijn Braam (2020). + __Git tools and sites__ +* [posh-git](http://dahlbyk.github.io/posh-git/) is a PowerShell module + which provides Git/PowerShell integration. It also provides tab completion + support for common git commands, branch names, paths and more. + ## Credits From 632cf7fb15ba04b1217efc6f6e6f7a514aa9b067 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 27 Apr 2021 11:19:28 +0200 Subject: [PATCH 0029/1248] rn-74: add edit after conflict article --- rev_news/drafts/edition-74.md | 101 +++++++++++++++++++++++++++++++++- 1 file changed, 99 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index 95f5bf82f5..fd1d508a7b 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -25,9 +25,106 @@ This edition covers what happened during the month of March 2021. ### Reviews --> - + +* [--no-edit not respected after conflict](https://lore.kernel.org/git/4442fd0a-3306-a22b-3614-e3272f8f0be5@FreeBSD.org/) + + Renato Botelho explained in an email to the mailing list that he was + reverting multiple commit using the `--no-edit` option when there + was a conflict that he resolved using + [`git mergetool`](https://git-scm.com/docs/git-mergetool). After that + though, the revert was not respecting the `--no-edit` option anymore + for the next commits, so for each of them an editor was opened for him + to review the commit messages. + + After brian m. carlson replied to him asking for the set of commands + he used or a reproduction test case, Renato provided a test case + which shows that indeed after `git revert --continue` the + `--no-edit` option, that was provided in the initial + `git revert --no-edit commit1 commit2 ... commitN` command, doesn't + seem to be taken into account. + + Elijah Newren thanked Renato, confirmed he could reproduce the issue + and said he started working on a patch that fixed the issue as well + as a similar one he found. The next day though Elijah replied to + himself saying the issue turned out to be messier than he expected. + + He provided tables showing that the behavior (launching an editor or + not) could depend on a number of factors: the command (`revert` or + `cherry-pick`), the use of a terminal or not, before or after a + conflict, which option (`--edit`, `--no-edit` or no option) has been + passed. The tables also showed that Elijah had some doubts in some + cases. + + Elijah for example was not sure what should be done after a conflict + when neither `--edit` nor `--no-edit` had been passed and when there + was no terminal. It was not clear if an editor should be launched as + it was likely to fail if there was no terminal. + + Junio Hamano, the Git maintainer, replied to Elijah saying that, + when there is a conflict and when reverting (instead of + cherry-picking), the default (so when `--no-edit` is not provided) + should be to give the user a chance to explain the conflict + resolution or the reason for reverting in the commit message. If + there is no terminal though, the process is likely automated and + launching an editor might fail the operation for no good reason. + + Elijah then thanked Junio, sent a proper + [patch](https://lore.kernel.org/git/pull.988.git.git.1616742969145.gitgitgadget@gmail.com/) + to the mailing list fixing the issue and asked Renato to give it a + try. Renato replied that the patch worked indeed and thanked Elijah. + + Philip Oakley and Phillip Wood first replied to Elijah's patch, + which was quite involved, with only small comments. Elijah and Junio + both replied to their comments. Then Elijah sent a + [version 2 of his patch](https://lore.kernel.org/git/pull.988.v2.git.git.1617070174458.gitgitgadget@gmail.com/) + that only included typo fixes and comment clarifications to address + Philip's and Phillip's suggestions. + + Johannes Schindelin, alias Dscho, replied to this new version of the + patch. He first said, as a tangent, that we should move away from + the "Unix shell script heritage", especially what he called "the + awful `let's write out one file per setting` strategy". He would + like the project to use the JSON or the INI (like Git's own config + files) format instead. He recognized that it might not be an easy + switch though, as some users might unfortunately rely too much on + such implementation details. + + Dscho also made a number of small code suggestions. One was about + how the variable encoding the edit related options is + checked. Another one was to get rid of an assert() statement that + Elijah's patch introduced. While Elijah agreed with the first one, + he disagreed about the second, which started a small discussion + about the value of assert() between Elijah, Junio and Dscho, with + Ævar Arnfjörð Bjarmason chiming in. Elijah eventually suggested + replacing the assert() statements using a new BUG_ON() macro. + + About Dscho's tangent that we should stop writing one file per + setting and use a standard format instead, Elijah said he was glad + talking about this because it generates a number of issues. Some of + these issues are related to the different control structures and + code duplication for different operations (like `git cherry-pick` + and `git rebase`) because of the differences in writing the + settings. + + Another issue is some wasted time in the sequencer (which is used by + both `git cherry-pick` and `git rebase`). There is unnecessary + process forking and a lot of useless disk writing (to update the + index and the working directory but also to write all the individual + control files). This started a sub-thread where Dscho, Phillip Wood, + Junio and Elijah discussed if it was actually necessary to often + write many small files to disk. The conclusion seemed to be that we + would need to check if some hooks are configured or not, so that if + they are not, we can avoid writing a lot between each commit which + is processed. Dscho said that "for example, if no `pre-commit` hook + is installed that needs to be run, there is no need to update the + worktree nor HEAD until the rebase is done". + + Meanwhile Elijah sent a + [version 3 of his patch](https://lore.kernel.org/git/pull.988.v3.git.git.1617173541301.gitgitgadget@gmail.com/) + that took into account all the suggestions Dscho made, including the + removal of the assert() statement. Dscho gave his "Reviewed-by:" and + the patch has since been merged into the 'master' branch. + +## Developer Spotlight: Yann Dirson + +* Who are you and what do you do? + + I'm Yann, and for the last few years I've been working on the + Blade/Shadow "stream a Gaming PC" service. + +* What would you name your most important contribution to Git? + + I can't say anything I did stands out by itself. In volume I + certainly contributed more to "third-party" tools: cogito initially, + then stgit, then more recently git-reintegrate. In git.git I've + mostly contributed small patches here and there when it itched too + much, and a number of bugreports and suggestions. + +* What are you doing on the Git project these days, and why? + + I've been mostly dormant there lately, and I've been a happy user + all that time. To me that tells a lot on the maturity of the + project. + + I've started to feel a new itch regarding git-rebase -i, when + iterative work requires to go back-and-forth between patches before + finishing the rebase (something stgit did quite well, and possibly + something most users don't need). I only posted a PoC and some ideas + a couple of weeks ago, and that's likely to be my next venture into + git if time allows. + +* 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? + + On my first contact with git shortly after Linus published his first + version, one thing that standed out as non-intuitive after using all + those former tools, was the "record only the content and not by + which operation we got there" moto, leaving to git-diff the work of + understanding "by which operation". Yet soon after it striked me as + probably the most brillant aspect in git's design. + + Today there are a handful of such operations that git can detect, + and then use when merging to make things easier: essentially renames + and copies. Yet so many other high-level operations on code can be + done, and are not easy enough to merge: code restructuring implying + reindents (think python) and symbol renaming are the first that come + to mind. + + This probably should be done as language-specific diff/merge tools, + but those tools would likely want to share a common core. Providing + such support would likely help many projects, and enable smoother + workflows. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + The current git-rebase syntax, which feels so counter-intuitive today. + +* What is your favorite Git-related tool/library, outside of Git + itself? + + Recently the tool that has helped me most is git-reintegrate, it + simplifies so much the iterative integration process with WiP + branches. It still has a couple of rough edges, but as long as you + don't use submodules and don't have to switch the integration task + with others too often, it runs really smoothly. ## Releases @@ -219,4 +280,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Sven Strickroth. +with help from Yann Dirson and Sven Strickroth. From de160588f482a7e3f271002e39d2480200b22ea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 29 Apr 2021 10:55:28 +0200 Subject: [PATCH 0033/1248] rn-74: More information about feature flags --- rev_news/drafts/edition-74.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index eab426e107..223898f71e 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -225,7 +225,7 @@ This edition covers what happened during the month of March 2021. __Events__ -* [Announcing the Global Maintainer Summit](https://github.blog/2021-04-06-announcing-the-global-maintainer-summit/) +* [GitHub is announcing the Global Maintainer Summit](https://github.blog/2021-04-06-announcing-the-global-maintainer-summit/) on June 8--9th. @@ -253,6 +253,12 @@ __Light reading__ automatically, by Jake Edge on LWN.net. * [How we ship code faster and safer with feature flags](https://github.blog/2021-04-27-ship-code-faster-safer-feature-flags/) by Alberto Gimeno on GitHub Blog. + * [Feature flags](https://featureflags.io/) were one of solutions to hiding partial features + in [trunk based development](https://trunkbaseddevelopment.com/), one of + [patterns for managing source code branches](https://martinfowler.com/articles/branching-patterns.html#continuous-integration) + in Martin Fowler's article of the same name, covered in + [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/) + and mentioned in [#73](https://git.github.io/rev_news/2021/03/27/edition-73/). * [How to Set Up Continuous Integration for a Monorepo Using Buildkite](https://www.freecodecamp.org/news/how-to-set-up-continuous-integration-for-monorepo-using-buildkite/) by Subash Adhikari on freeCodeCamp. * [How to Use Git and Git Workflows -- a Practical Guide](https://www.freecodecamp.org/news/practical-git-and-git-workflows/) @@ -260,7 +266,7 @@ __Light reading__ * [Improving shell workflows with fzf](https://seb.jambor.dev/posts/improving-shell-workflows-with-fzf/) by Sebastian Jambor. The [fzf](https://github.com/junegunn/fzf) tool was mentioned alongside [git-fuzzy](https://github.com/bigH/git-fuzzy) (that uses it) in - [Git Rev News #64](https://git.github.io/rev_news/2020/06/25/edition-64/). + [Git Rev News Edition #64](https://git.github.io/rev_news/2020/06/25/edition-64/). * [Git email flow vs Github flow](https://blog.brixit.nl/git-email-flow-versus-github-flow/): Comparing the Github and Gitlab pull request workflow to the Git built-in email workflow, by Martijn Braam (2020). From d1b5f18796d9ec25a17a8838cd1905da88288090 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 30 Apr 2021 00:05:29 +0530 Subject: [PATCH 0034/1248] rn-74: integrate v2 of Yann Dirson's interview --- rev_news/drafts/edition-74.md | 71 +++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index 223898f71e..a409c2b358 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -131,65 +131,70 @@ This edition covers what happened during the month of March 2021. * Who are you and what do you do? - I'm Yann, and for the last few years I've been working on the - Blade/Shadow "stream a Gaming PC" service. + I'm Yann, and for the last few years I've been working on the Blade/Shadow + "stream a Gaming PC" service, and currently looking for the next adventure. * What would you name your most important contribution to Git? - I can't say anything I did stands out by itself. In volume I - certainly contributed more to "third-party" tools: cogito initially, - then stgit, then more recently git-reintegrate. In git.git I've - mostly contributed small patches here and there when it itched too - much, and a number of bugreports and suggestions. + I can't say that one particular thing stands out by itself. In volume + I certainly contributed more to "third-party" tools: [Cogito][1] + initially, then [StGit][2] (which I'm happy to see has recently received + more activity and a 1.0 release), then more recently + [git-reintegrate][3]. In git.git, I've mostly contributed small patches + here and there when it itched too much, and a number of bugreports and + suggestions. + +[1]: https://en.wikipedia.org/wiki/Cogito_(software) +[2]: https://stacked-git.github.io/ +[3]: https://github.com/felipec/git-reintegrate * What are you doing on the Git project these days, and why? - I've been mostly dormant there lately, and I've been a happy user - all that time. To me that tells a lot on the maturity of the - project. + I've been mostly dormant there lately, and I've been a happy user all + that time, both in dayjob and in personnal projects. To me that tells + a lot on the maturity of the project. - I've started to feel a new itch regarding git-rebase -i, when - iterative work requires to go back-and-forth between patches before - finishing the rebase (something stgit did quite well, and possibly - something most users don't need). I only posted a PoC and some ideas - a couple of weeks ago, and that's likely to be my next venture into - git if time allows. + I've started to feel a new itch regarding `git rebase -i`, when iterative work + requires to go back-and-forth between patches before finishing the rebase + (something StGit did quite well, and possibly something most users don't need). + I only posted a PoC and some ideas a [couple of weeks ago][4], and that's + likely to be my next venture into Git if time allows. * 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? - On my first contact with git shortly after Linus published his first - version, one thing that standed out as non-intuitive after using all - those former tools, was the "record only the content and not by - which operation we got there" moto, leaving to git-diff the work of - understanding "by which operation". Yet soon after it striked me as - probably the most brillant aspect in git's design. - - Today there are a handful of such operations that git can detect, - and then use when merging to make things easier: essentially renames - and copies. Yet so many other high-level operations on code can be - done, and are not easy enough to merge: code restructuring implying + On my first contact with Git shortly after Linus published his first + version, one thing stood out for me as non-intuitive after using all + those former tools: the "record only the content and not by which + operation we got there" moto, which leaves to git-diff the work of + reconstructing the "which operation" part. Yet, soon after it struck + me as probably the most brillant aspect in Git's design. + + Today there are a handful of such operations that Git can detect, and + then use when merging to make things easier: essentially renames and + copies. Yet, so many other high-level operations can be made on code, + and are not easy enough to merge: code restructuring inducing reindents (think python) and symbol renaming are the first that come to mind. This probably should be done as language-specific diff/merge tools, - but those tools would likely want to share a common core. Providing + but those tools would likely want to share a common core. Providing such support would likely help many projects, and enable smoother workflows. * If you could remove something from Git without worrying about backwards compatibility, what would it be? - The current git-rebase syntax, which feels so counter-intuitive today. + The current `git rebase` syntax, which feels so counter-intuitive today. * What is your favorite Git-related tool/library, outside of Git itself? - Recently the tool that has helped me most is git-reintegrate, it + Recently the tool that has helped me most is [git-reintegrate][3], it simplifies so much the iterative integration process with WiP - branches. It still has a couple of rough edges, but as long as you - don't use submodules and don't have to switch the integration task - with others too often, it runs really smoothly. + branches. It still has a couple of rough edges, but as long as + you don't use submodules and don't have to hand over the integration + task to others too often, it runs really smoothly. ## Releases From ce97d0b75f960ac70325a9e28b47c4a79e54c672 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 30 Apr 2021 00:16:16 +0530 Subject: [PATCH 0035/1248] rn-74: add missing link to mailing list --- rev_news/drafts/edition-74.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index a409c2b358..ed1d5c77ca 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -160,6 +160,8 @@ This edition covers what happened during the month of March 2021. I only posted a PoC and some ideas a [couple of weeks ago][4], and that's likely to be my next venture into Git if time allows. +[4]: https://lore.kernel.org/git/139173043.431119331.1615653441685.JavaMail.root@zimbra39-e7/ + * If you could get a team of expert developers to work full time on something in Git for a full year, what would it be? From 5a1fac54701dca955233bcd55b6013ce4ed992c9 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Thu, 29 Apr 2021 12:32:16 -0700 Subject: [PATCH 0036/1248] rn-74: add link to 3rd blog post on optimizing the merge machinery --- rev_news/drafts/edition-74.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index ed1d5c77ca..55d94a0016 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -246,6 +246,8 @@ __Various__ __Light reading__ +* [Optimizing git’s merge machinery, #3](https://blog.palantir.com/optimizing-gits-merge-machinery-3-2dc7c7436978) + by Elijah Newren on Palantir Blog. * [A look under the hood: how branches work in Git](https://stackoverflow.blog/2021/04/05/a-look-under-the-hood-how-branches-work-in-git/) by Tobias Günther on The Overflow -- the Stack Overflow blog. * [Experiment on your code freely with Git worktree](https://opensource.com/article/21/4/git-worktree) From f6cb4a21a2be53b16f50fd7a29ff330f0cd64d19 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 29 Apr 2021 22:12:41 +0200 Subject: [PATCH 0037/1248] rn-74: add Elijah among the helpers --- rev_news/drafts/edition-74.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index 55d94a0016..1faec0bc6b 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -295,4 +295,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Yann Dirson and Sven Strickroth. +with help from Yann Dirsoni, Elijah Newren and Sven Strickroth. From e7b39b0def9b05b8e663bae08ea3428998c60eb8 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Fri, 30 Apr 2021 13:17:34 +0200 Subject: [PATCH 0038/1248] Supplied my usual tiny spelling corrections. --- rev_news/drafts/edition-74.md | 50 +++++++++++++++++------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/rev_news/drafts/edition-74.md b/rev_news/drafts/edition-74.md index 1faec0bc6b..1c676b6a55 100644 --- a/rev_news/drafts/edition-74.md +++ b/rev_news/drafts/edition-74.md @@ -27,11 +27,11 @@ This edition covers what happened during the month of March 2021. ### Support -* [--no-edit not respected after conflict](https://lore.kernel.org/git/4442fd0a-3306-a22b-3614-e3272f8f0be5@FreeBSD.org/) +* [`--no-edit` not respected after conflict](https://lore.kernel.org/git/4442fd0a-3306-a22b-3614-e3272f8f0be5@FreeBSD.org/) - Renato Botelho explained in an email to the mailing list that he was - reverting multiple commit using the `--no-edit` option when there - was a conflict that he resolved using + Renato Botelho explained in an email to the mailing list that while he + was reverting multiple commits using the `--no-edit` option, there + was a conflict he resolved using [`git mergetool`](https://git-scm.com/docs/git-mergetool). After that though, the revert was not respecting the `--no-edit` option anymore for the next commits, so for each of them an editor was opened for him @@ -42,28 +42,28 @@ This edition covers what happened during the month of March 2021. which shows that indeed after `git revert --continue` the `--no-edit` option, that was provided in the initial `git revert --no-edit commit1 commit2 ... commitN` command, doesn't - seem to be taken into account. + seem to be taken into account anymore. Elijah Newren thanked Renato, confirmed he could reproduce the issue and said he started working on a patch that fixed the issue as well - as a similar one he found. The next day though Elijah replied to - himself saying the issue turned out to be messier than he expected. + as a similar one he had found. The next day though Elijah replied to + himself saying the issue turned out to be messier than expected. He provided tables showing that the behavior (launching an editor or not) could depend on a number of factors: the command (`revert` or `cherry-pick`), the use of a terminal or not, before or after a - conflict, which option (`--edit`, `--no-edit` or no option) has been + conflict, which option (`--edit`, `--no-edit` or no option) had been passed. The tables also showed that Elijah had some doubts in some cases. Elijah for example was not sure what should be done after a conflict - when neither `--edit` nor `--no-edit` had been passed and when there + when neither `--edit` nor `--no-edit` had been specified and when there was no terminal. It was not clear if an editor should be launched as it was likely to fail if there was no terminal. - Junio Hamano, the Git maintainer, replied to Elijah saying that, + Junio Hamano, the Git maintainer, replied to Elijah saying that when there is a conflict and when reverting (instead of - cherry-picking), the default (so when `--no-edit` is not provided) + cherry-picking), the default (that is, `--no-edit` is not provided) should be to give the user a chance to explain the conflict resolution or the reason for reverting in the commit message. If there is no terminal though, the process is likely automated and @@ -75,8 +75,8 @@ This edition covers what happened during the month of March 2021. try. Renato replied that the patch worked indeed and thanked Elijah. Philip Oakley and Phillip Wood first replied to Elijah's patch, - which was quite involved, with only small comments. Elijah and Junio - both replied to their comments. Then Elijah sent a + which was not that tiny, with only minor comments, followed by + remarks from Junio. Then Elijah sent a [version 2 of his patch](https://lore.kernel.org/git/pull.988.v2.git.git.1617070174458.gitgitgadget@gmail.com/) that only included typo fixes and comment clarifications to address Philip's and Phillip's suggestions. @@ -91,7 +91,7 @@ This edition covers what happened during the month of March 2021. such implementation details. Dscho also made a number of small code suggestions. One was about - how the variable encoding the edit related options is + how the variable encoding of the edit related options is checked. Another one was to get rid of an assert() statement that Elijah's patch introduced. While Elijah agreed with the first one, he disagreed about the second, which started a small discussion @@ -117,12 +117,12 @@ This edition covers what happened during the month of March 2021. would need to check if some hooks are configured or not, so that if they are not, we can avoid writing a lot between each commit which is processed. Dscho said that "for example, if no `pre-commit` hook - is installed that needs to be run, there is no need to update the + was installed that needs to be run, there was no need to update the worktree nor HEAD until the rebase is done". Meanwhile Elijah sent a [version 3 of his patch](https://lore.kernel.org/git/pull.988.v3.git.git.1617173541301.gitgitgadget@gmail.com/) - that took into account all the suggestions Dscho made, including the + that took into account all the suggestions Dscho had made, including the removal of the assert() statement. Dscho gave his "Reviewed-by:" and the patch has since been merged into the 'master' branch. @@ -141,7 +141,7 @@ This edition covers what happened during the month of March 2021. initially, then [StGit][2] (which I'm happy to see has recently received more activity and a 1.0 release), then more recently [git-reintegrate][3]. In git.git, I've mostly contributed small patches - here and there when it itched too much, and a number of bugreports and + here and there when it itched too much, and a number of bug reports and suggestions. [1]: https://en.wikipedia.org/wiki/Cogito_(software) @@ -168,15 +168,15 @@ This edition covers what happened during the month of March 2021. On my first contact with Git shortly after Linus published his first version, one thing stood out for me as non-intuitive after using all those former tools: the "record only the content and not by which - operation we got there" moto, which leaves to git-diff the work of + operation we got there" motto, which leaves to `git-diff` the work of reconstructing the "which operation" part. Yet, soon after it struck - me as probably the most brillant aspect in Git's design. + me as probably the most brilliant aspect in Git's design. Today there are a handful of such operations that Git can detect, and then use when merging to make things easier: essentially renames and copies. Yet, so many other high-level operations can be made on code, and are not easy enough to merge: code restructuring inducing - reindents (think python) and symbol renaming are the first that come + reindents (think Python) and symbol renaming are the first that come to mind. This probably should be done as language-specific diff/merge tools, @@ -254,16 +254,16 @@ __Light reading__ by Seth Kenlon (Red Hat) on Opensource.com. * [5 commands to level-up your Git game](https://opensource.com/article/21/4/git-commands): `git whatchanged`, `git stash`, `git worktree`, `git cherry-pick` and - [managing $HOME with Git](https://opensource.com/article/21/4/git-home), + [managing `$HOME` with Git](https://opensource.com/article/21/4/git-home), by Seth Kenlon (Red Hat) on Opensource.com. -* [A practical guide to using the git stash command](https://opensource.com/article/21/4/git-stash) +* [A practical guide to using the `git stash` command](https://opensource.com/article/21/4/git-stash) by Ramakrishna Pattnaik on Opensource.com. * [Scanning for secrets](https://lwn.net/Articles/851670/) in Git repositories automatically, by Jake Edge on LWN.net. * [How we ship code faster and safer with feature flags](https://github.blog/2021-04-27-ship-code-faster-safer-feature-flags/) by Alberto Gimeno on GitHub Blog. * [Feature flags](https://featureflags.io/) were one of solutions to hiding partial features - in [trunk based development](https://trunkbaseddevelopment.com/), one of + in [trunk based development](https://trunkbaseddevelopment.com/), one of the [patterns for managing source code branches](https://martinfowler.com/articles/branching-patterns.html#continuous-integration) in Martin Fowler's article of the same name, covered in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/) @@ -276,8 +276,8 @@ __Light reading__ by Sebastian Jambor. The [fzf](https://github.com/junegunn/fzf) tool was mentioned alongside [git-fuzzy](https://github.com/bigH/git-fuzzy) (that uses it) in [Git Rev News Edition #64](https://git.github.io/rev_news/2020/06/25/edition-64/). -* [Git email flow vs Github flow](https://blog.brixit.nl/git-email-flow-versus-github-flow/): - Comparing the Github and Gitlab pull request workflow to the Git built-in email workflow, +* [Git email flow vs GitHub flow](https://blog.brixit.nl/git-email-flow-versus-github-flow/): + Comparing the GitHub and GitLab pull request workflow to the Git built-in email workflow, by Martijn Braam (2020). From 81e2d7c62e29f2c161aff8725b7e448624f92077 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Apr 2021 14:09:29 +0200 Subject: [PATCH 0039/1248] Publish rn-74 in _posts/ --- .../drafts/edition-74.md => _posts/2021-04-30-edition-74.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-74.md => _posts/2021-04-30-edition-74.markdown (100%) diff --git a/rev_news/drafts/edition-74.md b/_posts/2021-04-30-edition-74.markdown similarity index 100% rename from rev_news/drafts/edition-74.md rename to _posts/2021-04-30-edition-74.markdown From 7c3d25d71663719aa494b7d22fdc91cb094b6a56 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Apr 2021 14:09:29 +0200 Subject: [PATCH 0040/1248] Add draft for rn-75 --- rev_news/drafts/edition-75.md | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 rev_news/drafts/edition-75.md diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md new file mode 100644 index 0000000000..05ae1ff497 --- /dev/null +++ b/rev_news/drafts/edition-75.md @@ -0,0 +1,57 @@ +--- +title: Git Rev News Edition 75 (May 26th, 2021) +layout: default +date: 2021-05-26 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 75 (May 26th, 2021) + +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). + +This edition covers what happened during the month of April 2021. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From cdb2952dcf1c3a7b6036adbb5d521e37405a4357 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Apr 2021 14:17:42 +0200 Subject: [PATCH 0041/1248] rn-74: replace 'not that tiny' with 'complex' --- _posts/2021-04-30-edition-74.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2021-04-30-edition-74.markdown b/_posts/2021-04-30-edition-74.markdown index 1c676b6a55..39c3d4b4ad 100644 --- a/_posts/2021-04-30-edition-74.markdown +++ b/_posts/2021-04-30-edition-74.markdown @@ -75,8 +75,8 @@ This edition covers what happened during the month of March 2021. try. Renato replied that the patch worked indeed and thanked Elijah. Philip Oakley and Phillip Wood first replied to Elijah's patch, - which was not that tiny, with only minor comments, followed by - remarks from Junio. Then Elijah sent a + which was quite complex, with only minor comments. Elijah and Junio +- both replied to their comments. Then Elijah sent a [version 2 of his patch](https://lore.kernel.org/git/pull.988.v2.git.git.1617070174458.gitgitgadget@gmail.com/) that only included typo fixes and comment clarifications to address Philip's and Phillip's suggestions. From 4b4817dbea20fcc4e275b1232da69228e71c7d9c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Apr 2021 14:31:47 +0200 Subject: [PATCH 0042/1248] rn-74: fix Yann's last name --- _posts/2021-04-30-edition-74.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-04-30-edition-74.markdown b/_posts/2021-04-30-edition-74.markdown index 39c3d4b4ad..cc033fa314 100644 --- a/_posts/2021-04-30-edition-74.markdown +++ b/_posts/2021-04-30-edition-74.markdown @@ -295,4 +295,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Yann Dirsoni, Elijah Newren and Sven Strickroth. +with help from Yann Dirson, Elijah Newren and Sven Strickroth. From 5cd8485f3a56497ea3082d3ce3c23467a9204426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Fri, 30 Apr 2021 17:47:01 +0200 Subject: [PATCH 0043/1248] rn-74: fix a few formatting issues --- _posts/2021-04-30-edition-74.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_posts/2021-04-30-edition-74.markdown b/_posts/2021-04-30-edition-74.markdown index cc033fa314..3893cf8c50 100644 --- a/_posts/2021-04-30-edition-74.markdown +++ b/_posts/2021-04-30-edition-74.markdown @@ -76,7 +76,7 @@ This edition covers what happened during the month of March 2021. Philip Oakley and Phillip Wood first replied to Elijah's patch, which was quite complex, with only minor comments. Elijah and Junio -- both replied to their comments. Then Elijah sent a + both replied to their comments. Then Elijah sent a [version 2 of his patch](https://lore.kernel.org/git/pull.988.v2.git.git.1617070174458.gitgitgadget@gmail.com/) that only included typo fixes and comment clarifications to address Philip's and Phillip's suggestions. @@ -84,7 +84,7 @@ This edition covers what happened during the month of March 2021. Johannes Schindelin, alias Dscho, replied to this new version of the patch. He first said, as a tangent, that we should move away from the "Unix shell script heritage", especially what he called "the - awful `let's write out one file per setting` strategy". He would + awful _let's write out one file per setting_ strategy". He would like the project to use the JSON or the INI (like Git's own config files) format instead. He recognized that it might not be an easy switch though, as some users might unfortunately rely too much on @@ -92,12 +92,12 @@ This edition covers what happened during the month of March 2021. Dscho also made a number of small code suggestions. One was about how the variable encoding of the edit related options is - checked. Another one was to get rid of an assert() statement that + checked. Another one was to get rid of an `assert()` statement that Elijah's patch introduced. While Elijah agreed with the first one, he disagreed about the second, which started a small discussion - about the value of assert() between Elijah, Junio and Dscho, with + about the value of `assert()` between Elijah, Junio and Dscho, with Ævar Arnfjörð Bjarmason chiming in. Elijah eventually suggested - replacing the assert() statements using a new BUG_ON() macro. + replacing the `assert()` statements using a new `BUG_ON()` macro. About Dscho's tangent that we should stop writing one file per setting and use a standard format instead, Elijah said he was glad @@ -123,7 +123,7 @@ This edition covers what happened during the month of March 2021. Meanwhile Elijah sent a [version 3 of his patch](https://lore.kernel.org/git/pull.988.v3.git.git.1617173541301.gitgitgadget@gmail.com/) that took into account all the suggestions Dscho had made, including the - removal of the assert() statement. Dscho gave his "Reviewed-by:" and + removal of the `assert()` statement. Dscho gave his "Reviewed-by:" and the patch has since been merged into the 'master' branch. @@ -168,7 +168,7 @@ This edition covers what happened during the month of March 2021. On my first contact with Git shortly after Linus published his first version, one thing stood out for me as non-intuitive after using all those former tools: the "record only the content and not by which - operation we got there" motto, which leaves to `git-diff` the work of + operation we got there" motto, which leaves to `git diff` the work of reconstructing the "which operation" part. Yet, soon after it struck me as probably the most brilliant aspect in Git's design. From 4a7b445d7b30fa9b1c534ce5c97d22b9b163a7c6 Mon Sep 17 00:00:00 2001 From: snxx <67647968+snxx-lppxx@users.noreply.github.com> Date: Sun, 2 May 2021 15:50:29 +0500 Subject: [PATCH 0044/1248] Fix icon path (#497) --- _layouts/default.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_layouts/default.html b/_layouts/default.html index ae9bd0bf97..05271afeb3 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -5,7 +5,7 @@ {{ page.title }} - + From 9c26fcee154208e1a80f0a737eeee315dcc94ddc Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 2 May 2021 16:30:23 +0530 Subject: [PATCH 0045/1248] rn-74: support: add a link to the mail that has the behaviour table While reading the support article, I felt that linking to Elijah's e-mail that tabularizes the behaviour for the revert, cherry-pick commands in various cases would be useful. So, adding a link to it. --- _posts/2021-04-30-edition-74.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2021-04-30-edition-74.markdown b/_posts/2021-04-30-edition-74.markdown index 3893cf8c50..55558f0c42 100644 --- a/_posts/2021-04-30-edition-74.markdown +++ b/_posts/2021-04-30-edition-74.markdown @@ -49,7 +49,8 @@ This edition covers what happened during the month of March 2021. as a similar one he had found. The next day though Elijah replied to himself saying the issue turned out to be messier than expected. - He provided tables showing that the behavior (launching an editor or + He [provided tables](https://lore.kernel.org/git/CABPp-BEGEcws69sg6Z2=B1nihFG227mAsSx=boU3uSx2xDUEjg@mail.gmail.com/) + showing that the behavior (launching an editor or not) could depend on a number of factors: the command (`revert` or `cherry-pick`), the use of a terminal or not, before or after a conflict, which option (`--edit`, `--no-edit` or no option) had been From 3838ad81d3eff151819df7cc85f47917c144e2e7 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 2 May 2021 18:27:12 +0200 Subject: [PATCH 0046/1248] Found the hopefully last git-->Git spelling correction. --- _posts/2021-04-30-edition-74.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-04-30-edition-74.markdown b/_posts/2021-04-30-edition-74.markdown index 55558f0c42..063b5e64ea 100644 --- a/_posts/2021-04-30-edition-74.markdown +++ b/_posts/2021-04-30-edition-74.markdown @@ -286,7 +286,7 @@ __Git tools and sites__ * [posh-git](http://dahlbyk.github.io/posh-git/) is a PowerShell module which provides Git/PowerShell integration. It also provides tab completion - support for common git commands, branch names, paths and more. + support for common Git commands, branch names, paths, and more. ## Credits From 210d39a64184dbc57b97d8edc8c9dfe9835ac305 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 7 May 2021 23:02:07 +0200 Subject: [PATCH 0047/1248] Add links to Linus' Tag 1 interview --- rev_news/drafts/edition-75.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 05ae1ff497..e65ca26ab2 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -40,6 +40,11 @@ This edition covers what happened during the month of April 2021. __Various__ +* Linux was [interviewed](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git) + on the Tag1 Consulting site about 30 Years Of Linux and + [about Git](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git#git-distributed-version-control-). + A [part 2](https://www.tag1consulting.com/blog/interview-linus-torvalds-open-source-and-beyond-part-2) + of the interview not related to Git has also been published. __Light reading__ From 810dfb5501a0d32003c4ff6ffa649c7640b0e6fa Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 7 May 2021 23:04:48 +0200 Subject: [PATCH 0048/1248] rn-75: fix Linus' name --- rev_news/drafts/edition-75.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index e65ca26ab2..e22d573153 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -40,7 +40,7 @@ This edition covers what happened during the month of April 2021. __Various__ -* Linux was [interviewed](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git) +* Linus Torvalds was [interviewed](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git) on the Tag1 Consulting site about 30 Years Of Linux and [about Git](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git#git-distributed-version-control-). A [part 2](https://www.tag1consulting.com/blog/interview-linus-torvalds-open-source-and-beyond-part-2) From d91fc3f841097ee4033a561d4949b9e2540c16d1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 20 May 2021 08:42:55 +0200 Subject: [PATCH 0049/1248] Hacking-Git: add Junio's "What's cooking ..." emails --- Hacking-Git.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index 56d1aa4f21..b36e15e100 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -54,6 +54,10 @@ suggest improvements. Thanks! * [Git for Windows' "Good commits"](https://github.com/git-for-windows/git/wiki/Good-commits) +## Status of development topics + +* [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) + ## Branching workflow * ["A note from the maintainer"](https://github.com/git/git/blob/todo/MaintNotes) From cecd902c7f9e1c09f8a0a39b180e4d6daa5c4944 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 20 May 2021 09:01:22 +0200 Subject: [PATCH 0050/1248] Hacking-Git: add Git's release calendar --- Hacking-Git.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index b36e15e100..26d171299f 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -54,9 +54,11 @@ suggest improvements. Thanks! * [Git for Windows' "Good commits"](https://github.com/git-for-windows/git/wiki/Good-commits) -## Status of development topics +## Development status -* [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) +* [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) lists the status of various development topics. + +* [Git's release calendar](https://tinyurl.com/gitCal) shows the planned release cycles, and the maintainer's planned offline time. ## Branching workflow From 79238a64ce760eb060442a848cfcb36b99bb7411 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 20 May 2021 09:04:15 +0200 Subject: [PATCH 0051/1248] Hacking-Git: fix "What's cooking ..." related typo --- Hacking-Git.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index 26d171299f..6d2c30e333 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -56,7 +56,7 @@ suggest improvements. Thanks! ## Development status -* [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) lists the status of various development topics. +* [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) list the status of various development topics. * [Git's release calendar](https://tinyurl.com/gitCal) shows the planned release cycles, and the maintainer's planned offline time. From bf5cd3324b0df98faa0bebcfc58c285b15bd8fa4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 17 May 2021 10:02:35 +0200 Subject: [PATCH 0052/1248] General-Application: suggest more details in applications --- General-Application-Information.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/General-Application-Information.md b/General-Application-Information.md index f3ee82c3c1..91531188f8 100644 --- a/General-Application-Information.md +++ b/General-Application-Information.md @@ -57,9 +57,14 @@ documentation on their web site that you should follow. Please, include link(s) to the mailing-list discussion(s) related to your microproject in your application (e.g. linking to -[lore.kernel.org](https://lore.kernel.org/git/)). If you -participate in the review of other patches, then you may also include -links to discussions that would support your application. +[lore.kernel.org](https://lore.kernel.org/git/)). If you participate +in the review of other patches, then you may also include links to +discussions that would support your application. Please also describe +the status of the patches you have sent and maybe reviewed: Have they +been merged already in an official branch maintained by Junio? What +does [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) +say about it? In general it's a good idea to describe all your Git +related work so far with a good amount of detail. Applicants must send drafts of their proposal on the mailing-list before submitting it officially to GSoC or Outreachy to get feedback From c268ea8274b59616e980ef4ae8b32c2017dd17ac Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 17 May 2021 11:01:52 +0200 Subject: [PATCH 0053/1248] General-Application: update recent slot count --- General-Application-Information.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/General-Application-Information.md b/General-Application-Information.md index 91531188f8..bc004df852 100644 --- a/General-Application-Information.md +++ b/General-Application-Information.md @@ -125,7 +125,7 @@ discussions.) ## Note about the number of slots The Git organization usually has very limited mentoring capacity. -These days we usually accept between 0 and 3 students per season +These days we usually accept around 2 or 3 students per season (Winter or Summer). ## Note about giving back and mentoring @@ -144,13 +144,13 @@ co-mentor other students or interns coming after you. It helps create more opportunities for more students and interns like you, as mentoring capacity is the main factor preventing us from accepting more students and interns. If each student or intern accepted to -co-mentor twice (once in Summer and once in Winter) just after they -have been mentored, our mentoring capacity could increase +co-mentor twice (for example once in Summer and once in Winter) just +after they have been mentored, our mentoring capacity could increase significantly each year. Even though successful former students/interns usually have adequate -technical ability to be a successful mentor, unfortunately very few of -them have been willing to just co-mentor along with an experienced +technical ability to be a successful mentor, unfortunately few of them +have been willing to just co-mentor once along with an experienced mentor. Other free or open source projects have done better than us on From c97afb695b8db7384a0a16e5b9822cff0c386b41 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 17 May 2021 11:05:01 +0200 Subject: [PATCH 0054/1248] General-Application: include Outreachy more --- General-Application-Information.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/General-Application-Information.md b/General-Application-Information.md index bc004df852..46c979a78f 100644 --- a/General-Application-Information.md +++ b/General-Application-Information.md @@ -180,19 +180,19 @@ code merged step by step which is encouraging. In general refactoring projects are worthwhile to do even if the project is not finished at the end of the GSoC and even if the student -stops contributing after that. In those cases it is often a good idea -to later finish the refactoring either by ourselves or by proposing it -to another GSoC student or Outreachy intern. This way the work of both -students and mentors is not likely to be wasted. +or intern stops contributing after that. In those cases it is often a +good idea to later finish the refactoring either by ourselves or by +proposing it to another GSoC student or Outreachy intern. This way the +work of both students and mentors is not likely to be wasted. With a project that implements a feature, there is a risk, if it's too complex or too difficult, that the feature will not be finished and that nothing, or nearly nothing, will have been merged during the GSoC or Outreachy internship. There is also the risk that another way to implement the feature will appear later in the GSoC or Outreachy -internship, and all, or nearly all, the work of the student and -mentors will have been mostly wasted. It could also appear that the -use cases the feature was envisioned to be used in, are better +internship, and all, or nearly all, the work of the student or intern +and mentors will have been mostly wasted. It could also appear that +the use cases the feature was envisioned to be used in, are better addressed by other improvements or a different workflow. Another potential issue is that a new feature might be prone to naming @@ -200,14 +200,14 @@ or user interface discussions which could last for a long time or could not result in clear decisions. Therefore we think that we should be very careful before proposing to -a student, or accepting, a project that implements a new feature. +an applicant, or accepting, a project that implements a new feature. People suggesting such a project should at least carefully consider the above potential issues and see if they can be mitigated before the project is submitted. As [suggested by Google](https://google.github.io/gsocguides/mentor/defining-a-project-ideas-list) -(but this is true for Outreachy internships too), we emphasize that a -student proposing something original must engage with the community +(but this is true for Outreachy internships too), we emphasize that an +applicant proposing something original must engage with the community strongly before and during the application period to get feedback and guidance to improve the proposal and avoid the above potential issues. From 654b01c15e442ecef5060fc253e6c2596d8a53bc Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 17 May 2021 11:09:59 +0200 Subject: [PATCH 0055/1248] General-Application: add a note about getting involved early --- General-Application-Information.md | 34 +++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/General-Application-Information.md b/General-Application-Information.md index 46c979a78f..291028841e 100644 --- a/General-Application-Information.md +++ b/General-Application-Information.md @@ -94,7 +94,8 @@ In summary, all applicants must (not necessarily in this order): * Write a detailed application explaining their project. * Discuss their project by posting drafts of their application on the - mailing-list long before the deadline. + mailing-list long before the deadline. See the "Note about getting + involved early" below. In your application, and in the discussions related to projects you are interested in, it is a good idea to: @@ -211,3 +212,34 @@ applicant proposing something original must engage with the community strongly before and during the application period to get feedback and guidance to improve the proposal and avoid the above potential issues. +## Note about getting involved early + +The process of reviewing microproject patches and applications on the +mailing list can take a lot of time. Depending on your experience and +the tools you are already familiar or not with, it can also take some +time to set up and get used to properly sending emails and patches to +the mailing list, interacting with people on the mailing list, reading +the documentation, getting used to the code base, etc. That's why we +strongly suggest getting involved very early, like several months, +before the deadline. + +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. + +It might therefore be a good idea to find a project idea that is not +yet being pursued by a serious 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. + +The good side of this is that this project idea along with your +enthousiasm for it and the skills you show might encourage Git +developers to mentor you even if they weren't planning to mentor in +the first place. It could also happen that someone, who was only +planning to co-mentor, could agree to fully mentor you alone. From 6f25818c226b4dc02a0d9106603ee05a23a10025 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 20 May 2021 09:24:51 +0200 Subject: [PATCH 0056/1248] General-Application: remove 'serious' as suggested by Junio --- General-Application-Information.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/General-Application-Information.md b/General-Application-Information.md index 291028841e..3da60a0996 100644 --- a/General-Application-Information.md +++ b/General-Application-Information.md @@ -234,9 +234,9 @@ 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 a serious 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. +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. The good side of this is that this project idea along with your enthousiasm for it and the skills you show might encourage Git From ffbf3d9a3cc5fa2ef71a70a232524f1e83004da0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 24 May 2021 17:15:26 +0200 Subject: [PATCH 0057/1248] rn-75: add releases --- rev_news/drafts/edition-75.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index e22d573153..35e0d4a51d 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -35,6 +35,32 @@ This edition covers what happened during the month of April 2021. ## Releases ++ Git [2.32.0-rc1](https://public-inbox.org/git/xmqqk0nqq266.fsf@gitster.g/), +[2.32.0-rc0](https://public-inbox.org/git/xmqqh7j13kmc.fsf@gitster.g/) ++ Git for Windows [2.32.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.32.0-rc1.windows.1), +[2.32.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.32.0-rc0.windows.1) ++ GitLab [13.12](https://about.gitlab.com/releases/2021/05/22/gitlab-13-12-released/), +[13.11.4](https://about.gitlab.com/releases/2021/05/14/gitlab-13-11-4-released/), +[13.11.3](https://about.gitlab.com/releases/2021/04/30/gitlab-13-11-3-released/), +[13.11.2](https://about.gitlab.com/releases/2021/04/28/security-release-gitlab-13-11-2-released/) ++ Bitbucket Server [7.13](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ Gerrit Code Review [3.4.0](https://www.gerritcodereview.com/3.4.html), +[3.3.4](https://www.gerritcodereview.com/3.3.html#334), +[3.2.10](https://www.gerritcodereview.com/3.2.html#3210), +[3.1.15](https://www.gerritcodereview.com/3.1.html#3115), +[3.2.9](https://www.gerritcodereview.com/3.2.html#329), +[3.1.14](https://www.gerritcodereview.com/3.1.html#3114) ++ GitHub Enterprise [3.0.7](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.7), +[2.22.13](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.13), +[2.21.21](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.21), +[3.1.0](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.0), +[3.0.6](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.6), +[2.22.12](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.12), +[2.21.20](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.20) ++ GitKraken [7.6.1](https://support.gitkraken.com/release-notes/current), +[7.6.0](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [2.8.1](https://desktop.github.com/release-notes/), +[2.8.0](https://desktop.github.com/release-notes/) ## Other News From d8a56e2f84a858ce10e6c8b308d1d19141daa3c1 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 24 May 2021 23:57:25 +0530 Subject: [PATCH 0058/1248] rn-75: add interview with Patrick Steinhardt --- rev_news/drafts/edition-75.md | 80 +++++++++++++++++++++++++++++++++-- 1 file changed, 77 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 35e0d4a51d..87c7eb57f1 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -29,9 +29,83 @@ This edition covers what happened during the month of April 2021. ### Support --> - +## Developer Spotlight: Patrick Steinhardt + +* Who are you and what do you do? + + I'm a software developer working at GitLab, more specifically in the + team working on Gitaly. Gitaly is our RPC interface to all Git + repositories, so it is the backbone to all things Git at GitLab. + + In my own free time, I love to tinker with my Gentoo-based systems and + tailor them to my own needs, which results in occasional drive-by + patches to all kinds of open source projects to scratch my own itches. + +* What would you name your most important contribution to Git? + + To me, this is the introduction of the reference-transaction hook, which + gets executed whenever a reference is about to be updated. This allows + tight control over all reference updates happening in a given repository + in a command-agnostic way. At GitLab, we use this hook to coordinate + reference updates across multiple replicas of the same repository such + that we can be sure that all nodes have the same state and move to the + same state. + + My most important contributions I'd not locate in the Git project itself + though, but instead in libgit2. While I unfortunately haven't found the + time to contribute to it lately, I've done a lot more work on libgit2 + than I did on Git. And there it's probably the initial introduction of + support for worktrees, maintenance of the CMake build system and work on + the gitconfig subsystem. + +* What are you doing on the Git project these days, and why? + + My current work is mostly focussed on tuning performance of some areas + we have found to be slow for gitlab.com. This has motivated the recent + introduction of a new git-rev-list(1) filter which allows to filter by + object type via `--filter=object:type=`. This makes it easy to + find for example all blobs introduced between two revisions. + + And right now I'm trying to devise a new implementation of the object + connectivity check performed by git-receive-pack(1) whenever a push gets + accepted on the server side. Depending on the repository's shape, the + current implementation can be a major bottleneck and take dozens of + seconds to compute even for small pushes. You may have noticed this + check when it says "Checking connectivity" on a push. + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + I'm obviously biased coming from the libgit2 project, but I'd really + love to further push the libification of Git. There has been great + progress on this front already to make internal C interfaces look more + like the typical interfaces you'd see from a linkable library. But my + dream would be to merge the efforts of Git and libgit2 such that Git + also provides an official library which can be linked against in your + own program. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + Tough question. There's many user-facing commands which could benefit + from a more consistent design, but my take is that these probably could + provide an improved user interface while still retaining backwards + compatibility. + + But what I'd really love to get rid of is the file-based reference + backend. It works reasonably well to represent references as file paths + in smallish repositories, but even there it imposes limitations which + are only a result of its implementation. It's also inefficient for + bigger repositories and does not really allow for atomic modification of + multiple references at once. There luckily is ongoing work on the + reftable backend, which fixes many of the shortcomings, but it will + likely still take some time to land. + +* What is your favorite Git-related tool/library, outside of Git itself? + + I guess the answer to that question is going to be obvious by now: + libgit2. + ## Releases From b4c9129d7c9f72221d788ce0190b88fc637d27c1 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 25 May 2021 00:00:57 +0530 Subject: [PATCH 0059/1248] rn-75: monospace some man page references --- rev_news/drafts/edition-75.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 87c7eb57f1..ec328de74a 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -62,12 +62,12 @@ This edition covers what happened during the month of April 2021. My current work is mostly focussed on tuning performance of some areas we have found to be slow for gitlab.com. This has motivated the recent - introduction of a new git-rev-list(1) filter which allows to filter by + introduction of a new `git-rev-list(1)` filter which allows to filter by object type via `--filter=object:type=`. This makes it easy to find for example all blobs introduced between two revisions. And right now I'm trying to devise a new implementation of the object - connectivity check performed by git-receive-pack(1) whenever a push gets + connectivity check performed by `git-receive-pack(1)` whenever a push gets accepted on the server side. Depending on the repository's shape, the current implementation can be a major bottleneck and take dozens of seconds to compute even for small pushes. You may have noticed this From 5c557c493dd57656be568674488f7985871e3c10 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 24 May 2021 22:05:43 +0200 Subject: [PATCH 0060/1248] rn-75: add Patrick among the helpers --- rev_news/drafts/edition-75.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index ec328de74a..f3fb074ea2 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -159,4 +159,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Patrick Steinhardt. From 53c6b5f0a9ffeae66681e28aa4a88c2f3ae5524a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 25 May 2021 21:15:18 +0200 Subject: [PATCH 0061/1248] rn-75: add article about '%ah' and '%ch' pretty formats --- rev_news/drafts/edition-75.md | 81 ++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index f3fb074ea2..0a7971c49b 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -21,9 +21,86 @@ This edition covers what happened during the month of April 2021. ### General --> - + +* [[PATCH] [GSOC] pretty: provide human date format](https://lore.kernel.org/git/pull.939.git.1619195245606.gitgitgadget@gmail.com/) + + ZheNing Hu sent a patch to the mailing list to add the new `%ah` and + `%ch` formatting options to the "pretty formats". The "pretty + formats" are the main way for users to customize the output of the + `git log`, `git show`, `git rev-list` and `git diff-tree` commands. + + These formats are specified by the + [`--pretty[=]` or `--format=`](https://git-scm.com/docs/git-log#Documentation/git-log.txt---prettyltformatgt) + command line flags, where ``is the actual + ["pretty format"](https://git-scm.com/docs/git-log#_pretty_formats), + and can be either a "built-in format", like `oneline`, `raw`, + `short`, `medium`, etc, or `format:`, which is called a + "format string". + + These format strings work in a similar way to `printf()` formats, as + they can contain placeholders starting with a `%` character, that + will be expanded by the command. For example `%H` will be expanded + to print the commit hash, `%an`, the author name, etc. + + A lot of placeholders already exist. For the author date, there are: + `%ad`, `%aD`, `%ar`, `%at`, `%ai`, `%aI` and `%as`. And for the + committer date, there are the corresponding: `%cd`, `%cD`, `%cr`, + `%ct`, `%ci`, `%cI` and `%cs`. Each pair of these placeholders uses + a different date format. For example `%aI` and `%cI` use the "strict + ISO 8601 format". + + `%ad` and `%cd` though are special as they use the format specified + by the `--date=` command line flag, so for example with + `--date=iso-strict`, `%ad` and `%cd` will behave in the same way as + `%aI` and `%cI`. + + ZheNing's patch added the new `%ah` and `%ch` placeholders that + would behave in the same way as `%ad` and `%cd` with + `--date=human`. The rationale for the patch being that there are + placeholders corresponding to most of the `--date=` options + except `--date=human`. + + Taylor Blau was the first to review ZheNing's patch and found it + "pretty good", as it was similar to a previous patch by René Scharfe + that added the `%as` and `%cs` placeholders for dates in the "short + date format". ZheNing indeed acknowledged that he learned from + René's patch. + + Philip Oakley though commented on the documentation part of the + patch suggesting adding an example similar to `YYYY-MM-DD` for the + short format. ZheNing replied that in the "human format" a date + could take many forms, so he said he would rather add links to the + documentation of the "human format". + + ZheNing then sent a + [version 2](https://lore.kernel.org/git/pull.939.v2.git.1619275340051.gitgitgadget@gmail.com/) + of his patch where he added the links. Philip suggested further + small superficial changes to the link and the related text added in + this version though. + + Meanwhile Ævar Arnfjörð Bjarmason sent + [a small patch series](https://lore.kernel.org/git/cover-0.2-00000000000-20210425T090506Z-avarab@gmail.com/) + that made a "couple of trivial changes" to the tests related to + `%aI` and `%cI`, and at the same time suggested ZheNing to make + similar changes to the tests in his patch. + + ZheNing then sent a + [version 3](https://lore.kernel.org/git/pull.939.v3.git.1619347306291.gitgitgadget@gmail.com/) + of his patch taking into account Philip's and Ævar's + suggestions. This patch contained a typo though, so ZheNing sent a + [version 4](https://lore.kernel.org/git/pull.939.v4.git.1620056221874.gitgitgadget@gmail.com/) + of his patch. + + As the version 3 of the patch had already been merged to the "next" + branch before ZheNing sent the version 4, the typo got noticed by + Martin Ågren who sent + [a small patch series](https://lore.kernel.org/git/cover.1620551314.git.martin.agren@gmail.com/) + fixing this typo as well as another unrelated one. + + Eventually both ZheNing's patch and Martin's patches were merged + into the "master" branch, so that their improvements will appear in + the soon upcoming Git version v2.32.0. + +* [Git participates in GSoC (Google Summer of Code) 2021](https://summerofcode.withgoogle.com/organizations/5908380398387200/#projects) + + The following two students have been officially accepted to work on Git + as part of the [GSoC 2021](https://summerofcode.withgoogle.com/): + + - ZheNing Hu will work on the + [Use ref-filter formats in git cat-file](https://summerofcode.withgoogle.com/projects/#6499923274498048) + project. He will be co-mentored by Hariom Verma and Christian + Couder. His first blog post about it [is up](https://adlternative.github.io/GSOC-Git-Blog-1/). + + - Atharva Raykar will work on the + [Finish converting submodule to builtin](https://summerofcode.withgoogle.com/projects/#4754589292691456) + project. He will be co-mentored by Shourya Shukla and Christian + Couder. His first blog posts about it are [also up](https://atharvaraykar.me/gitnotes/). ### Reviews From 9a859665e0f4cfe4f4e0ba913e70a92da8b1ad4e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 25 May 2021 21:38:08 +0200 Subject: [PATCH 0063/1248] rn-75: thank students who applied to GSoC 2021 --- rev_news/drafts/edition-75.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 0c32e2cb4f..759b343bc8 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -34,6 +34,10 @@ This edition covers what happened during the month of April 2021. project. He will be co-mentored by Shourya Shukla and Christian Couder. His first blog posts about it are [also up](https://atharvaraykar.me/gitnotes/). + Thanks to the students who applied and worked on micro-projects, but + couldn't be selected! We hope to continue to see you in the + community! + ### Reviews * [[PATCH] [GSOC] pretty: provide human date format](https://lore.kernel.org/git/pull.939.git.1619195245606.gitgitgadget@gmail.com/) From 50b4e2a932e52d5ada0556a456a43a26f54533b2 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 25 May 2021 22:03:36 +0200 Subject: [PATCH 0064/1248] rn-75: change publication date to May 27th --- rev_news/drafts/edition-75.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 759b343bc8..4f54e0959e 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 75 (May 26th, 2021) +title: Git Rev News Edition 75 (May 27th, 2021) layout: default -date: 2021-05-26 12:06:51 +0100 +date: 2021-05-27 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 75 (May 26th, 2021) +## Git Rev News: Edition 75 (May 27th, 2021) 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 From 11e8e0d1363ef2ce5b4ccf85429cfbb59b64ea42 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 25 May 2021 22:05:03 +0200 Subject: [PATCH 0065/1248] rn-75: add a few more GitLab releases --- rev_news/drafts/edition-75.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 4f54e0959e..8a1a482787 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -210,7 +210,7 @@ This edition covers what happened during the month of April 2021. + GitLab [13.12](https://about.gitlab.com/releases/2021/05/22/gitlab-13-12-released/), [13.11.4](https://about.gitlab.com/releases/2021/05/14/gitlab-13-11-4-released/), [13.11.3](https://about.gitlab.com/releases/2021/04/30/gitlab-13-11-3-released/), -[13.11.2](https://about.gitlab.com/releases/2021/04/28/security-release-gitlab-13-11-2-released/) +[13.11.2, 13.10.4, and 13.9.7](https://about.gitlab.com/releases/2021/04/28/security-release-gitlab-13-11-2-released/) + Bitbucket Server [7.13](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) + Gerrit Code Review [3.4.0](https://www.gerritcodereview.com/3.4.html), [3.3.4](https://www.gerritcodereview.com/3.3.html#334), From bdfe6cf2b46e77d38d5d8897fdebe6541a732d1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 26 May 2021 10:58:38 +0200 Subject: [PATCH 0066/1248] rn-75: Add links to various articles, tools and sites --- rev_news/drafts/edition-75.md | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 759b343bc8..a1b0b562a5 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -239,12 +239,60 @@ __Various__ [about Git](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git#git-distributed-version-control-). A [part 2](https://www.tag1consulting.com/blog/interview-linus-torvalds-open-source-and-beyond-part-2) of the interview not related to Git has also been published. +* [Security keys are now supported for SSH Git operations](https://github.blog/2021-05-10-security-keys-supported-ssh-git-operations/) via ecdsa-sk and ed25519-sk key types. + __Light reading__ +* [Scaling monorepo maintenance](https://github.blog/2021-04-29-scaling-monorepo-maintenance/) + by Taylor Blau on GitHub Blog, with reverse indexes, multi-pack bitmaps, and geometric repacking +* [Developing a script in small steps](https://dev.to/vkroll/common-misconception-of-beginners-51jb) + by Volker Kroll on Dev.to +* [Plotting the source code "TODO" history of the most popular open source projects](https://schleiss.io/plotting-source-code-todos-for-open-source-projects) + by Martin Schleiss +* [Git Push to Remote Branch - How to Push a Local Branch to Origin](https://www.freecodecamp.org/news/git-push-to-remote-branch-how-to-push-a-local-branch-to-origin/) + by John Mosesman on freeCodeCamp.org +* [Heroku-style deployments with Docker and git tags](https://ricardoanderegg.com/posts/git-push-deployments-docker-tags/) + (and `post-receive` hook) by Ricardo Ander-Egg Aguilar +* [YubiKey for SSH, Login, 2FA, GPG and Git Signing](https://ocramius.github.io/blog/yubikey-for-ssh-gpg-git-and-local-login/) by Marco Pivetta (Ocramius) +* [Diff and merge CSV files in your git client](https://paulfitz.github.io/2014/07/09/diff-merge-csv.html) + using [daff](http://paulfitz.github.io/daff/) by Paul Fitz (2014) +* [Visual Studio code editor: Eight tips for using GitLab VS Code](https://about.gitlab.com/blog/2021/05/20/vscode-workflows-for-working-with-gitlab/) + extension by Tomas Vik on GitLab Blog +* [Top Ten Git Tips & Tricks](https://www.honeybadger.io/blog/git-tricks/) + by Julie Kent on Honeybadger blog + __Git tools and sites__ +* [Komit](https://github.com/GitSquared/komit) is a Node.js small command line + application providing interactive prompt, designed to be run as a git hook to + help follow the [Conventional Commit message standard](https://www.conventionalcommits.org/en/v1.0.0/). + This standard was mentioned in [Git Rev News Edition #52][rn-52] and [#54][rn-54]; + other tool that helps follow this standard is [Sailr](https://github.com/craicoverflow/sailr) + (also mentioned in [edition #52][rn-52]). +* [Flat Data](https://octo.github.com/projects/flat-data) explores how to make + it easy to work with data in git and GitHub. The Flat Data project + incorporates three different pieces: Flat Action (GitHub Action), Flat Editor + VS Code extension, and Flat Viewer website. +* [git-split-diffs](https://github.com/banga/git-split-diffs), a Node.js + command-line application, provides side-by-side split diffs with syntax + highlighting in your terminal; can be used via `core.pager` or `pager.diff`. +* [daff: data diff](http://paulfitz.github.io/daff/) is a library and a tool for + comparing tables, producing a summary of their differences, and using such a + summary as a patch file. It is optimized for comparing tables that share a + common origin, in other words multiple versions of the "same" table. You can + make also git diffs and merges table-aware using daff. +* [github-csv-diff](https://github.com/wy-z/github-csv-diff) and + [CSVHub](https://github.com/Data-Liberation-Front/csvhub) are both + Chrome extensions to show CSV diffs on GitHub. +* [Semgrep](https://semgrep.dev/) is a fast, open-source, static analysis tool + for finding bugs and enforcing code standards at editor, commit, or CI time; + rules look like the code you’re searching. + + +[rn-52]: https://git.github.io/rev_news/2019/06/28/edition-52/ +[rn-54]: https://git.github.io/rev_news/2019/08/21/edition-54/ ## Credits From e97ae03ffecc0c824771bfe84ff7bc6303d07587 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 26 May 2021 15:10:54 +0200 Subject: [PATCH 0067/1248] rn-75: add Magit and Forge releases --- rev_news/drafts/edition-75.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 8c84519e9a..2cedc66205 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -225,6 +225,8 @@ This edition covers what happened during the month of April 2021. [3.0.6](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.6), [2.22.12](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.12), [2.21.20](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.20) ++ Magit [3.0.0](https://emacsair.me/2021/05/25/magit-3.0) ++ Forge [0.2.0](https://emacsair.me/2021/05/25/forge-0.2) + GitKraken [7.6.1](https://support.gitkraken.com/release-notes/current), [7.6.0](https://support.gitkraken.com/release-notes/current) + GitHub Desktop [2.8.1](https://desktop.github.com/release-notes/), @@ -301,4 +303,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Patrick Steinhardt. +with help from Patrick Steinhardt and Jonas Bernoulli. From 3a097b4d89afe14d16d6a72186bf51ecfd106f0c Mon Sep 17 00:00:00 2001 From: Andrew Ardill Date: Thu, 27 May 2021 02:33:04 +1000 Subject: [PATCH 0068/1248] Add article "The top 1% of commit trailers" Saw this fun little post from @felipec and thought it would make a nice article. I tried to do a little summary and add some comments around trailers I thought were interesting, but please feel free to add/change/suggest others. @felipec as it was your post happy to defer to you if there was anything in particular you wanted to say or highlight. --- rev_news/drafts/edition-75.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 2cedc66205..2bef4e1cc4 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -38,6 +38,28 @@ This edition covers what happened during the month of April 2021. couldn't be selected! We hope to continue to see you in the community! +* [The top 1% of commit trailers](https://lore.kernel.org/git/60ad75ac7ffca_2ae08208b@natae.notmuch/) + + Felipe Contreras posted a fun analysis of how often various commit + trailers (`reviewed-by`, `tested-by`, etc) appear in the git.git project. + + Setting aside `signed-off-by` (which all contributions must include), + the most common trailers are `acked-by` (1945 occurences) and + `reviewed-by` (1729 occurences), together accounting for almost half + of all trailers. + + The next 4 most common trailers give a great insight into just how + much collaboration goes on in the git.git project: `helped-by` (1336), + `reported-by` (960), `mentored-by` (379), and `suggested-by` (281). + + Perhaps most interesting is the long list of trailers that have only + been seen once, though now that this list is out there we may see more + of `deemed-obviously-correct-by`, `worriedly-acked-by`, and `cheered-on-by` + in the future. + + [This script](https://gist.github.com/felipec/ce491d351c88e4acbdbf6bc02a47223d) + can be used to replicate the analysis. + ### Reviews * [[PATCH] [GSOC] pretty: provide human date format](https://lore.kernel.org/git/pull.939.git.1619195245606.gitgitgadget@gmail.com/) From ac1aa681f78d448c624419ba8a60aadec87be9cb Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 May 2021 23:13:37 +0530 Subject: [PATCH 0069/1248] rn-75: minor grammatical corrections --- rev_news/drafts/edition-75.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 2cedc66205..4cb0e88c0c 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -81,11 +81,11 @@ This edition covers what happened during the month of April 2021. Taylor Blau was the first to review ZheNing's patch and found it "pretty good", as it was similar to a previous patch by René Scharfe that added the `%as` and `%cs` placeholders for dates in the "short - date format". ZheNing indeed acknowledged that he learned from + date format". ZheNing acknowledged that he indeed learned from René's patch. Philip Oakley though commented on the documentation part of the - patch suggesting adding an example similar to `YYYY-MM-DD` for the + patch suggesting to add an example similar to `YYYY-MM-DD` for the short format. ZheNing replied that in the "human format" a date could take many forms, so he said he would rather add links to the documentation of the "human format". From 53b68432b8f92ef00f6f8603b04a00c81068880e Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Thu, 27 May 2021 00:10:21 +0200 Subject: [PATCH 0070/1248] Applied my usual tiny spelling fixes. --- rev_news/drafts/edition-75.md | 66 +++++++++++++++++------------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 4cb0e88c0c..2942c64864 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -25,7 +25,7 @@ This edition covers what happened during the month of April 2021. as part of the [GSoC 2021](https://summerofcode.withgoogle.com/): - ZheNing Hu will work on the - [Use ref-filter formats in git cat-file](https://summerofcode.withgoogle.com/projects/#6499923274498048) + [Use ref-filter formats in `git cat-file`](https://summerofcode.withgoogle.com/projects/#6499923274498048) project. He will be co-mentored by Hariom Verma and Christian Couder. His first blog post about it [is up](https://adlternative.github.io/GSOC-Git-Blog-1/). @@ -45,7 +45,7 @@ This edition covers what happened during the month of April 2021. ZheNing Hu sent a patch to the mailing list to add the new `%ah` and `%ch` formatting options to the "pretty formats". The "pretty formats" are the main way for users to customize the output of the - `git log`, `git show`, `git rev-list` and `git diff-tree` commands. + `git log`, `git show`, `git rev-list`, and `git diff-tree` commands. These formats are specified by the [`--pretty[=]` or `--format=`](https://git-scm.com/docs/git-log#Documentation/git-log.txt---prettyltformatgt) @@ -58,16 +58,16 @@ This edition covers what happened during the month of April 2021. These format strings work in a similar way to `printf()` formats, as they can contain placeholders starting with a `%` character, that will be expanded by the command. For example `%H` will be expanded - to print the commit hash, `%an`, the author name, etc. + to print the commit hash, `%an` the author name, etc. A lot of placeholders already exist. For the author date, there are: - `%ad`, `%aD`, `%ar`, `%at`, `%ai`, `%aI` and `%as`. And for the - committer date, there are the corresponding: `%cd`, `%cD`, `%cr`, - `%ct`, `%ci`, `%cI` and `%cs`. Each pair of these placeholders uses - a different date format. For example `%aI` and `%cI` use the "strict + `%ad`, `%aD`, `%ar`, `%at`, `%ai`, `%aI` and `%as`. For the + committer date, there are the corresponding `%cd`, `%cD`, `%cr`, + `%ct`, `%ci`, `%cI` and `%cs` ones. Each pair of these placeholders uses + a different date format. For example, `%aI` and `%cI` use the "strict ISO 8601 format". - `%ad` and `%cd` though are special as they use the format specified + Formats `%ad` and `%cd`, though, are special as they use the format specified by the `--date=` command line flag, so for example with `--date=iso-strict`, `%ad` and `%cd` will behave in the same way as `%aI` and `%cI`. @@ -84,7 +84,7 @@ This edition covers what happened during the month of April 2021. date format". ZheNing acknowledged that he indeed learned from René's patch. - Philip Oakley though commented on the documentation part of the + Philip Oakley, though, commented on the documentation part of the patch suggesting to add an example similar to `YYYY-MM-DD` for the short format. ZheNing replied that in the "human format" a date could take many forms, so he said he would rather add links to the @@ -92,7 +92,7 @@ This edition covers what happened during the month of April 2021. ZheNing then sent a [version 2](https://lore.kernel.org/git/pull.939.v2.git.1619275340051.gitgitgadget@gmail.com/) - of his patch where he added the links. Philip suggested further + of his patch where he had added the links. Philip suggested further small superficial changes to the link and the related text added in this version though. @@ -104,8 +104,8 @@ This edition covers what happened during the month of April 2021. ZheNing then sent a [version 3](https://lore.kernel.org/git/pull.939.v3.git.1619347306291.gitgitgadget@gmail.com/) - of his patch taking into account Philip's and Ævar's - suggestions. This patch contained a typo though, so ZheNing sent a + of his patch, taking Philip's and Ævar's suggestions into account. + This patch contained a typo, though, so ZheNing sent a [version 4](https://lore.kernel.org/git/pull.939.v4.git.1620056221874.gitgitgadget@gmail.com/) of his patch. @@ -241,54 +241,54 @@ __Various__ [about Git](https://www.tag1consulting.com/blog/interview-linus-torvalds-linux-and-git#git-distributed-version-control-). A [part 2](https://www.tag1consulting.com/blog/interview-linus-torvalds-open-source-and-beyond-part-2) of the interview not related to Git has also been published. -* [Security keys are now supported for SSH Git operations](https://github.blog/2021-05-10-security-keys-supported-ssh-git-operations/) via ecdsa-sk and ed25519-sk key types. +* GitHub announced that [security keys are now supported for SSH Git operations](https://github.blog/2021-05-10-security-keys-supported-ssh-git-operations/) via `ecdsa-sk` and `ed25519-sk` key types. __Light reading__ * [Scaling monorepo maintenance](https://github.blog/2021-04-29-scaling-monorepo-maintenance/) - by Taylor Blau on GitHub Blog, with reverse indexes, multi-pack bitmaps, and geometric repacking + by Taylor Blau on GitHub Blog, with reverse indexes, multi-pack bitmaps, and geometric repacking. * [Developing a script in small steps](https://dev.to/vkroll/common-misconception-of-beginners-51jb) - by Volker Kroll on Dev.to + by Volker Kroll on Dev.to. * [Plotting the source code "TODO" history of the most popular open source projects](https://schleiss.io/plotting-source-code-todos-for-open-source-projects) - by Martin Schleiss + by Martin Schleiss. * [Git Push to Remote Branch - How to Push a Local Branch to Origin](https://www.freecodecamp.org/news/git-push-to-remote-branch-how-to-push-a-local-branch-to-origin/) - by John Mosesman on freeCodeCamp.org -* [Heroku-style deployments with Docker and git tags](https://ricardoanderegg.com/posts/git-push-deployments-docker-tags/) - (and `post-receive` hook) by Ricardo Ander-Egg Aguilar -* [YubiKey for SSH, Login, 2FA, GPG and Git Signing](https://ocramius.github.io/blog/yubikey-for-ssh-gpg-git-and-local-login/) by Marco Pivetta (Ocramius) -* [Diff and merge CSV files in your git client](https://paulfitz.github.io/2014/07/09/diff-merge-csv.html) - using [daff](http://paulfitz.github.io/daff/) by Paul Fitz (2014) + by John Mosesman on freeCodeCamp.org. +* [Heroku-style deployments with Docker and Git tags](https://ricardoanderegg.com/posts/git-push-deployments-docker-tags/) + (and `post-receive` hook) by Ricardo Ander-Egg Aguilar. +* [YubiKey for SSH, Login, 2FA, GPG and Git Signing](https://ocramius.github.io/blog/yubikey-for-ssh-gpg-git-and-local-login/) by Marco Pivetta (Ocramius). +* [Diff and merge CSV files in your Git client](https://paulfitz.github.io/2014/07/09/diff-merge-csv.html) + using [daff](http://paulfitz.github.io/daff/) by Paul Fitz (2014). * [Visual Studio code editor: Eight tips for using GitLab VS Code](https://about.gitlab.com/blog/2021/05/20/vscode-workflows-for-working-with-gitlab/) - extension by Tomas Vik on GitLab Blog + extension by Tomas Vik on GitLab Blog. * [Top Ten Git Tips & Tricks](https://www.honeybadger.io/blog/git-tricks/) - by Julie Kent on Honeybadger blog + by Julie Kent on Honeybadger blog. __Git tools and sites__ * [Komit](https://github.com/GitSquared/komit) is a Node.js small command line - application providing interactive prompt, designed to be run as a git hook to + application providing interactive prompt, designed to be run as a Git hook to help follow the [Conventional Commit message standard](https://www.conventionalcommits.org/en/v1.0.0/). This standard was mentioned in [Git Rev News Edition #52][rn-52] and [#54][rn-54]; - other tool that helps follow this standard is [Sailr](https://github.com/craicoverflow/sailr) + another tool that helps follow this standard is [Sailr](https://github.com/craicoverflow/sailr) (also mentioned in [edition #52][rn-52]). * [Flat Data](https://octo.github.com/projects/flat-data) explores how to make - it easy to work with data in git and GitHub. The Flat Data project - incorporates three different pieces: Flat Action (GitHub Action), Flat Editor - VS Code extension, and Flat Viewer website. + it easy to work with data in Git and GitHub. The Flat Data project + incorporates three different pieces: the Flat Action (GitHub Action), the Flat Editor + VS Code extension, and the Flat Viewer website. * [git-split-diffs](https://github.com/banga/git-split-diffs), a Node.js command-line application, provides side-by-side split diffs with syntax - highlighting in your terminal; can be used via `core.pager` or `pager.diff`. + highlighting in your terminal, and can be used via `core.pager` or `pager.diff`. * [daff: data diff](http://paulfitz.github.io/daff/) is a library and a tool for comparing tables, producing a summary of their differences, and using such a summary as a patch file. It is optimized for comparing tables that share a - common origin, in other words multiple versions of the "same" table. You can - make also git diffs and merges table-aware using daff. + common origin, in other words multiple versions of the "same" table. With daff, + you can also make Git diffs and merges table-aware. * [github-csv-diff](https://github.com/wy-z/github-csv-diff) and [CSVHub](https://github.com/Data-Liberation-Front/csvhub) are both Chrome extensions to show CSV diffs on GitHub. -* [Semgrep](https://semgrep.dev/) is a fast, open-source, static analysis tool +* [Semgrep](https://semgrep.dev/) is a fast, Open Source, static analysis tool for finding bugs and enforcing code standards at editor, commit, or CI time; rules look like the code you’re searching. From 2ae3c726982ddf849f97f222d34a9bec34d6df28 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 27 May 2021 14:36:58 +0530 Subject: [PATCH 0071/1248] rn-75: small readability correction in a sentence --- rev_news/drafts/edition-75.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 2942c64864..3f6b4632de 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -267,7 +267,7 @@ __Light reading__ __Git tools and sites__ -* [Komit](https://github.com/GitSquared/komit) is a Node.js small command line +* [Komit](https://github.com/GitSquared/komit) is a Node.js based small command line application providing interactive prompt, designed to be run as a Git hook to help follow the [Conventional Commit message standard](https://www.conventionalcommits.org/en/v1.0.0/). This standard was mentioned in [Git Rev News Edition #52][rn-52] and [#54][rn-54]; From cff0937e07146fd2058d55cfe0f6f777dc531231 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 27 May 2021 22:25:02 +0200 Subject: [PATCH 0072/1248] rn-75 add Andrew Ardill among the helpers --- rev_news/drafts/edition-75.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 28385b4418..91d2fc0ce7 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -325,4 +325,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Patrick Steinhardt and Jonas Bernoulli. +with help from Patrick Steinhardt, Andrew Ardill and +Jonas Bernoulli. From d59f5838a788c985b27db56309e4645111b799dc Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 27 May 2021 22:29:39 +0200 Subject: [PATCH 0073/1248] rn-75 add Felipe's Zip's law note --- rev_news/drafts/edition-75.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-75.md b/rev_news/drafts/edition-75.md index 91d2fc0ce7..11282bd933 100644 --- a/rev_news/drafts/edition-75.md +++ b/rev_news/drafts/edition-75.md @@ -56,7 +56,11 @@ This edition covers what happened during the month of April 2021. been seen once, though now that this list is out there we may see more of `deemed-obviously-correct-by`, `worriedly-acked-by`, and `cheered-on-by` in the future. - + + One can also note that this distribution roughly follows + [Zip's law](https://en.wikipedia.org/wiki/Zipf%27s_law); the 10th most + popular line ("improved-by") is about 1/10 as popular as the 1st. + [This script](https://gist.github.com/felipec/ce491d351c88e4acbdbf6bc02a47223d) can be used to replicate the analysis. @@ -325,5 +329,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Patrick Steinhardt, Andrew Ardill and -Jonas Bernoulli. +with help from Patrick Steinhardt, Andrew Ardill, +Felipe Contreras and Jonas Bernoulli. From 35028c73408614792498c75dafbc713f1e5499e0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 27 May 2021 22:31:30 +0200 Subject: [PATCH 0074/1248] Publish rn-75 in _posts/ --- .../drafts/edition-75.md => _posts/2021-05-27-edition-75.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-75.md => _posts/2021-05-27-edition-75.markdown (100%) diff --git a/rev_news/drafts/edition-75.md b/_posts/2021-05-27-edition-75.markdown similarity index 100% rename from rev_news/drafts/edition-75.md rename to _posts/2021-05-27-edition-75.markdown From 6c461240cb1fcb31d85eeb5c903e18632271bc8f Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 27 May 2021 22:31:30 +0200 Subject: [PATCH 0075/1248] Add draft for rn-76 --- rev_news/drafts/edition-76.md | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 rev_news/drafts/edition-76.md diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md new file mode 100644 index 0000000000..b7f95f8b6f --- /dev/null +++ b/rev_news/drafts/edition-76.md @@ -0,0 +1,57 @@ +--- +title: Git Rev News Edition 76 (June 23rd, 2021) +layout: default +date: 2021-06-23 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 76 (June 23rd, 2021) + +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). + +This edition covers what happened during the month of May 2021. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From b0660d2818a3cbff6b4eff42d32f12a46d05c027 Mon Sep 17 00:00:00 2001 From: Jeffrey Palmer Date: Fri, 28 May 2021 09:28:56 -0700 Subject: [PATCH 0076/1248] Update edition-76.md with git history site Add reference and description for Interactive Git History site. --- rev_news/drafts/edition-76.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index b7f95f8b6f..411e99f5fc 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -45,6 +45,14 @@ __Light reading__ __Git tools and sites__ +* [A Git history visualization page](https://git-history.jpalmer.dev/) +by Jeff Palmer <> shows "An Interactive Development History" of Git in +three columns: project and contributor statistics, relative cumulative +contributions by contributor, and aggregated commits by +contributor by month with milestone annotations. Jeff wrote +[an associated blog post](https://jpalmer.dev/2021/05/interactive-git-history/) about how +he created the visualization, and he's also looking for +feedback and ideas for milestones or features he could add. ## Credits From 8429351c791e055dbcb62eeef85f8e8192c9282b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 31 May 2021 10:26:32 +0200 Subject: [PATCH 0077/1248] Add Mentoring-Program-Guide.md --- Mentoring-Program-Guide.md | 346 +++++++++++++++++++++++++++++++++++++ 1 file changed, 346 insertions(+) create mode 100644 Mentoring-Program-Guide.md diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md new file mode 100644 index 0000000000..f8c8395b90 --- /dev/null +++ b/Mentoring-Program-Guide.md @@ -0,0 +1,346 @@ +--- +layout: default +title: Mentoring Program Guide +--- + +This is the page to help people, who got accepted in a Mentoring +Program like the Google Summer of Code (GSoC) or Outreachy, during the +program. It can also help those interested in applying to such a +program get an idea about how it goes. + +First congratulations for being accepted! + +# Introduction + +The way you will be mentored depends on a lot of different things, for +example how well you are doing, who are your mentors, what your +project is about, what the mentoring program (GSoC or Outreachy) +requires or suggests (which can significantly change each year), how +the mailing list responds to your patches, what currently happens in +your country or in your mentors' countries, etc. + +This document might give you an idea about how things usually go, but +don't be surprised if your mentors ask for things that are a bit +different than what is described here. It's also possible that things +change during the mentoring program. Typically your mentors will +expect that you become more autonomous. + +# Communication + +## Blogging + +One of the first things you might want to setup (if you haven't one +already), after you have been accepted, but before the working period +actually starts, (GSoC calls this the "Community Bonding" period,) is a +blog. + +You might want to check which blogging tools previous Outreachy +interns and GSoC students used. Using a Git related tools is of course +a good idea. + +For example using GitLab and GitLab pages: + +https://mirucam.gitlab.io/outreachy_blog/ +https://matheustavares.gitlab.io/ +https://gitlab.com/MatheusTavares/matheustavares.gitlab.io/ + +Using GitHub: + +https://charvi-077.github.io/ + +If you already have something setup using other tools though, even if +it's not Git based, it's perfectly OK to use what you already have, +and focus on your project right away. + +Your blog should be a tool to improve communication between you and +the Git community, including your mentors. Your blog is also something +that can help you in your career by reflecting positively on your +abilities and dedication. A good example is Matheus' GSoC blog posts: + +https://matheustavares.gitlab.io/gsoc + +## Regular updates + +Mentors should be regularly updated about your work, so they can know +if you are stuck on something, what you have done, and what you are +planning to work on and how. + +The best way to update everyone about your work is probably to post on +your blog. We understand though that you might not want to put +everything you might want to say on your blog. Also people on the Git +mailing list might be interested to know that you published something +on your blog, so that they can give you some help or feedback about +your next steps or problems you are facing. Your mentors should be +notified too that you posted something. + +So we think that you might want to email the mailing list to notify +every one about each new blog post. If you don't feel like doing that, +we might find an alternative solution, but letting people know is +often a good idea to get help and suggestions. You can also take +advantage of the notification email to ask for help or to ask +questions related to issues you have. + +To notify your mentors, you can either cc them when you email the +mailing list, or you can send them a separate email. In a separate +email you might add things that you might not want to post on your +blog or to the mailing list. + +We require you to update your mentors at least every week. So the best +is if you can post on your blog weekly (and send the related +notifications discussed above). If sometimes for some reason (like a +vacation or exams or family issues) you cannot post a weekly update, +then it's OK to just email your mentors, or to ask them to have a chat +one way or another. Then please make sure you post on your blog the +following week. + +In the blog post update and your emails to your mentors and the +mailing list, it is important that you cover all the following topics: + +1) what you have done since last update and how +2) what is blocking you if anything +3) what you find difficult to do or understand +4) what things you think should be easier +5) what you are planning to work on and how + +The reason we ask for 2), 3) and 4) is that often interns or students +don't know about things, like existing documentation, historical +discussions, debugging scripts, features, tools or techniques, that +could help them understand what's going on, or work in a more +efficient way. If a mentor doesn't know that the intern or student is +blocked or slowed by something or has a hard time moving forward, it's +difficult for the mentor to help. So it's important for interns or +students to reflect on the issues, blocks, inefficiencies, complex +things that they are facing. + +Notifying the mailing list or your mentors about a blog post, should +not prevent you from emailing or contacting the mailing list or your +mentor when you might want to do that at other times. In general don't +be afraid of posting or contacting people early and often. + +## Chat + +It can help to sometimes have a chat (by that we mean a real-time +conversation) with your mentors. This can especially help you when you +are stuck or after you have reflected a bit on the status of your work +and internship, and have doubts or feelings that things aren't going +as well as they could. + +As we think it's best that you decide on your own the best time to +update your blog and send notifications, you should then also decide +when it's best to have a chat with your mentors. So, unless you prefer +to plan regular chats, your mentors might not ask for a chat, and +might just want you to pro-actively email them when you want a chat. + +Some mentors might not be always online on a chat platform, so you +might need to schedule chat discussions, and try to find a good time +for everyone. You can also propose the tools and media that work best +for you (instant messaging, phone call, video call, WhatsApp, Zoom, or +even email ...) and your mentors will likely do their best to adapt to +your preferences. + +Mentors usually look at their emails several times per day on week +days, so you can say for example in an email that you are free during +the next 2 hours to have a chat, and that could be enough to schedule +a chat to unblock you. You can also use a notification email after a +blog post to schedule a chat. In general if you are not blocked and +you have more than one mentor, it's better to schedule a chat a few +days in advance to increase the chances that all your mentors can +participate. + +In general for everything specifically related to your project and +internship, it's better to try to involve all of your mentors (for +example by Ccing all of them in emails, and by using an instant +messaging group they all belong to), though we know it's not always +possible or practical when you are blocked. + +It could be OK to discuss personal or technical things or anything not +directly related to your project with only one of your mentors, (like +with anyone else). Just ask them. + +If you prefer to have a completely fixed schedule from the start as +you know each week well in advance when you will post on your blog and +when you want to have a chat with your mentors, that can work too +and you can probably set this up with them. + +It's also OK to have such conversations completely over email if you +prefer. We know that email is not usually considered really real-time, +but we think it is, or can be, close enough compared to instant +messaging chat for example. It sometimes happen on the Git mailing +list that people debug together or discuss together +something over email in a very real-time way (at least similar as +instant messaging chat). + +Such chats can sometimes help a student or intern (or even long timers +on the project) move very fast in a short amount of time. So consider +taking advantage of that. + +It's also easier for mentors to help (or understand how they could +help) when discussing informally using a real time or near real time +communication medium, rather than blog posts or emails, so don't +hesitate to ask for that even if you are not sure that they could +help. And don't hesitate to ask them to use a medium you haven't +already used with them, like Zoom for example to have a video chat, as +sometimes it's just easier to understand something by sharing a +screen. + +You are also encouraged to take advantage of the whole Git community +and its communication channels (https://git-scm.com/community), like +the #git-devel IRC channel. Some or all of your mentors might not be +on this channel or on alternative community channels you might want to +use, but if you want to discuss with your mentors there, that's +something they can consider. + +## Scheduling and other communication issues + +Some mentors cannot easily let you know in advance what days and times +they will be available to answer questions. They might not have a well +planned schedule. They should be able to schedule things or give you +time periods when they are more likely to be available though. + +Anyway you should usually not wait much before asking a question. If +you haven't found an answer or don't understand something after a 20 +minute search on the mailing list archive, the code, the documentation +and Google, it's high time to ask a question or ask to have a chat. +Please try to search for 5 to 10 minutes before asking though, and +please let your mentors know how you searched, so that they can +perhaps help you be more efficient in searching for answers. + +In general being as open as possible about everything related to your +work, like what you don't know or don't understand, possible mistakes +you have made and are still making, how you are searching when there +is something you don't understand, which commands you are running, and +even how you are feeling, helps a lot in resolving issues and moving +forward. + +If you plan to have a vacation or if something might prevent you from +contacting your mentors, from updating them weekly, or from working on +your project for some time, please let them know in advance. + +# Code + +## Repository + +We require that you store and regularly update your current work in +public repos on GitLab or GitHub (or maybe Gerrit, gitolite, etc, but +please discuss it with us before choosing something other than GitHub +or GitLab). Usually a single repo forked from an official git.git repo +maintained by Junio (like https://github.com/git/git) is enough, and +you probably already have one. + +It unfortunately happens that people stop working on their in progress +project, either after the mentoring program is finished, or sometimes +during the mentoring program, and we might want to reuse their work +later. Often for example it takes a number of mentoring programs to +finish a big project and you have to continue a project from where it +was left by someone else. + +Having everything in one, or a few, public repositories makes it +easier to continue some work and also to test or contribute to it +occasionally. So making your work available this way and frequently +linking to your repo and the branches and commits in it you have +worked on (for example from your blog posts and emails to the mailing +list and your mentors), can help you get comments, code contributions, +bug reports, etc, which will move your project forward. + +## Draft patch series and branches + +It's a good idea to have your mentors review your patches or patch +series or branches on your repo before sending them to the mailing +list. It's OK though if you want to sometimes send a draft patch or +patch series directly to the mailing list to get as much as possible +everyone's feedback on something. You should mark them as [RFC] +(request for comment) or [WIP] (work in progress) though. + +A good way to have your mentors review something is to send them a +link to it on your public repo. This way they can comment there and +maybe make suggestions that you can easily apply. You could also +directly send them your patches as emails if they are OK with it. + +When you update your work after having received feedback from your +mentors or others, it's nice if instead of updating the same branch, +you could make changes, on a new branch. For example, if you are +working on `git bisect` you could make some initial changes on a +branch named bisect1, then, after receiving some comments on it, make +further changes on bisect2, and so on. This way your mentors and +others could check what you did using a diff, or a range-diff, between +the branches. + +Before you ask your mentors to review something, even if it's in the +draft or work in progress state, it's a good idea to make sure that +you have put some effort in writing a good commit message for each of +the commits you'd like them to review. Without a commit message (with +a title and a body) explaining the purpose of your patch, it can be +difficult for your mentors (or anyone actually) to tell if it makes +sense. + +If you know that something is missing in your patch, it's a good idea +to add [WIP] or [RFC] in the title and to add comments somewhere about +things that are missing, (like /* TODO: XXX */ comments in the code +for example), so that your mentors know which parts of your work are +not finished. + +A good time to send a link to a branch you are working on to your +mentors and ask them to review it, is typically when the commit +message and the code look good, and when it compiles without warnings +and passes existing tests, but when you haven't yet written the +documentation and the new tests. You can then work on the new tests +and documentation while your mentors review the code. Even then, +please say that documentation and new tests are missing. + +That said, it's OK to send something when a number of parts are +missing, including maybe some parts of the commit message and when the +code does not even compile, as long as you describe clearly what you'd +like to do, what are the issues you are facing and what is missing or +not yet finished, so that your mentors don't have to guess or tell you +that things are missing or should be improved when you already know +it. + +The goal is really to have efficient discussions for both you and your +mentors, so that your project can move forward fast with as few +misunderstandings as possible and as little frustration as possible. + +As much as possible you should work on different parts of your work in +different branches, and avoid having similar commits you are working +on in different branches. + +It's much better to work on many small branches and patch series that +can be regularly sent or resent to the mailing list, rather than on a +single big one that can be sent only at the end when everything looks +good. + +## Sending patch series to the mailing list + +It's up to you if you prefer to wait until your mentors have reviewed +everything and found nothing wrong with your patches, which could be a +good thing as it would likely decrease the reviewers' work on the +mailing list, or if you prefer to send your patches when you think +they are ready. + +You might acknowledge your mentors' help with the work you are doing +by adding a "Mentored-by: Mentor Name " trailer for each +of your mentors in the commit message of all the patches you send. We +recommend doing this systematically instead of spending time finding +which mentor helped or not on which patch. + +Basically sending patch to the mailing list is the same process as +when working on a micro-project. + +A few things that you might want to do are: + +- Make sure your mentors are Cc'ed on all of your patches. + +- Make sure everyone who commented or got involved is also Cc'ed. + +- Make sure Junio is among the recipients (in the "To:" header) if + your patches have been reviewed. + +- Consider adding the "Mentored-by:" trailers discussed above. + +- Consider adding some "Helped-by:", "Reviewed-by:" or "Acked-by:" + trailers if relevant. + +- Don't forget bumping up the version of the patch series. + +- Don't forget using [GSoC] or [Outreachy]. + +- Don't forget using [RFC] or [WIP], if it's relevant. From cb523db2ef6b543c5bd982c6a8b7e40f0ac731dc Mon Sep 17 00:00:00 2001 From: Atharva Raykar <24277692+tfidfwastaken@users.noreply.github.com> Date: Tue, 8 Jun 2021 19:35:27 +0530 Subject: [PATCH 0078/1248] Update IRC link to Libera Chat Many of the regulars on #git-devel are now on Libera Chat, to the extent that the community page now lists it as the IRC Channel[1]. This will help new contributors find the right place, if they choose to ask questions on `#git-devel`. [1] https://git-scm.com/community --- Hacking-Git.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index 6d2c30e333..3b3742f24c 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -90,7 +90,7 @@ suggest improvements. Thanks! * [git-scm community page](https://git-scm.com/community) -* [freenode webchat for the #git-devel IRC channel](https://webchat.freenode.net/#git-devel) +* [web interface to #git-devel IRC channel on Libera Chat](https://web.libera.chat/#git-devel) * [#git-devel IRC channel archive](https://colabti.org/irclogger/irclogger_logs/git-devel) From bda6f861914e306e8100c046cdca95de2c977681 Mon Sep 17 00:00:00 2001 From: Atharva Raykar <24277692+tfidfwastaken@users.noreply.github.com> Date: Mon, 14 Jun 2021 11:59:53 +0530 Subject: [PATCH 0079/1248] Mentoring-Program-Guide: make lines break Add two spaces at the end of the numbered list, so that it does not all come on the same line. Makes it easier to scan, and formats it more closely to what I think the author intended. --- Mentoring-Program-Guide.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index f8c8395b90..dc5116c831 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -96,11 +96,11 @@ following week. In the blog post update and your emails to your mentors and the mailing list, it is important that you cover all the following topics: -1) what you have done since last update and how -2) what is blocking you if anything -3) what you find difficult to do or understand -4) what things you think should be easier -5) what you are planning to work on and how +1) what you have done since last update and how +2) what is blocking you if anything +3) what you find difficult to do or understand +4) what things you think should be easier +5) what you are planning to work on and how The reason we ask for 2), 3) and 4) is that often interns or students don't know about things, like existing documentation, historical From 31745b45cdccad3a57d3b106a142d179b687c33c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 17 Jun 2021 22:08:47 +0200 Subject: [PATCH 0080/1248] README: discourage Git bug reporting Let's try to avoid people using issues in this repo to discuss/report Git problems. --- _includes/README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/_includes/README.md b/_includes/README.md index b6d95aa06e..b106d6dc8a 100644 --- a/_includes/README.md +++ b/_includes/README.md @@ -1,12 +1,19 @@ -# About +# About Git Developer Pages -This homepage is maintained by editing files in the +This is a website to help Git Developers. + +It is NOT a place to discuss Git issues. Please see +[git-scm.org's community page](https://git-scm.com/community) +for information about bug reporting or interacting with the +community. + +The pages are maintained by editing files in the [git/git.github.io](https://github.com/git/git.github.io) repository on GitHub. It is then published on the [https://git.github.io](https://git.github.io) GitHub page. It is meant to be edited collaboratively like a wiki, except that -instead of a web form, you get to use a text editor and git. What could +instead of a web form, you get to use a text editor and Git. What could be better? If you want push access, contact peff@peff.net and provide your GitHub From 40e26905fbe10074bd0febc9d04dc82cca29f534 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 17 Jun 2021 22:45:04 +0200 Subject: [PATCH 0081/1248] index: make this website definitive Let's acknowledge that this website isn't an experiment anymore and that it contains information about Git Rev News and the Git project involvement in the GSoC and Outreachy mentoring programs. --- index.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/index.md b/index.md index 77a81ed78e..e7b05a788f 100644 --- a/index.md +++ b/index.md @@ -6,19 +6,23 @@ navbar: false # {{ page.title }} -This is a tentative homepage for information on Git development. If you +This is a website for information on Git development. If you stumbled into this by mistake, you may want: - , which has information on running - git and links to download the latest version + Git and links to download the latest version - , the wiki that has historically contained developer information These pages are intended to collect information useful to Git -developers, including collaborative editing of documents (i.e., it is an -alternative to us having a wiki, but one that is edited entirely via git -pushes). +developers. This is also the web home of: + + - the [Git Rev News newsletter](/rev_news/), + - the [involvement of the Git project in mentoring programs](/General-Application-Information/) + like [Outreachy](https://www.outreachy.org/) and the + [GSoC (Google Summer of Code)](https://summerofcode.withgoogle.com/) -Note that this page is an experiment and a work in progress. It may go -away at any time if it turns out not to be useful. +These pages are intended to be edited collaboratively (i.e., it is an +alternative to us having a wiki, but one that is edited entirely via Git +pushes). From 01f4b247c92fa626af10d18622f5318c32bbada1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jun 2021 07:27:52 +0200 Subject: [PATCH 0082/1248] rn-76: change publication date to June 27th --- rev_news/drafts/edition-76.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index 411e99f5fc..d4f1310506 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 76 (June 23rd, 2021) +title: Git Rev News Edition 76 (June 27th, 2021) layout: default -date: 2021-06-23 12:06:51 +0100 +date: 2021-06-27 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 76 (June 23rd, 2021) +## Git Rev News: Edition 76 (June 27th, 2021) 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 From cc8a6d422fec8663a1e4c0b40f2bebeacea25c93 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jun 2021 07:34:34 +0200 Subject: [PATCH 0083/1248] rn-76: add releases --- rev_news/drafts/edition-76.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index d4f1310506..a6312f9b2f 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -35,6 +35,29 @@ This edition covers what happened during the month of May 2021. ## Releases ++ Git [2.32.0](https://public-inbox.org/git/xmqqa6o3xj2e.fsf@gitster.g/), +[2.32.0-rc3](https://public-inbox.org/git/xmqq4kegr7o3.fsf@gitster.g/), +[2.32.0-rc2](https://public-inbox.org/git/xmqq4ken75cv.fsf@gitster.g/) ++ Git for Windows [2.32.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.32.0.windows.1), +[2.32.0-rc3(1)](https://github.com/git-for-windows/git/releases/tag/v2.32.0-rc3.windows.1), +[2.32.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.32.0-rc2.windows.1) ++ Bitbucket Server [7.14](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ GitHub Enterprise [3.1.2](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.2), +[3.0.10](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.10), +[2.22.16](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.16), +[3.1.1](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.1), +[3.0.9](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.9), +[2.22.15](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.15), +[2.21.23](https://help.github.com/enterprise-server@2.21/admin/release-notes#2.21.23), +[3.1.0](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.0) ++ GitLab [14.0.1](https://about.gitlab.com/releases/2021/06/24/gitlab-14-0-1-released/), +[14.0](https://about.gitlab.com/releases/2021/06/22/gitlab-14-0-released/), +[13.12.5](https://about.gitlab.com/releases/2021/06/21/gitlab-13-12-5-released/), +[13.12.4](https://about.gitlab.com/releases/2021/06/14/gitlab-13-12-4-released/), +[13.12.3](https://about.gitlab.com/releases/2021/06/07/gitlab-13-12-3-released/), +[13.12.2, 13.11.5, and 13.10.5](https://about.gitlab.com/releases/2021/06/01/security-release-gitlab-13-12-2-released/) ++ GitHub Desktop [2.9.0](https://desktop.github.com/release-notes/), +[2.8.3](https://desktop.github.com/release-notes/) ## Other News From 6199ba4811fb668b421a0b69219c8be9da25ac2b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jun 2021 08:44:57 +0200 Subject: [PATCH 0084/1248] rn-76: add Jeffrey Palmer among the helpers --- rev_news/drafts/edition-76.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index a6312f9b2f..3fd35dcb14 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -85,4 +85,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Jeffrey Palmer. From e5db242edac81364f56e7b06aa68a7d628c76ecf Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jun 2021 22:23:48 +0200 Subject: [PATCH 0085/1248] rn-76: add article about NO_PTHREAD --- rev_news/drafts/edition-76.md | 55 +++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index 3fd35dcb14..88c3433df6 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -25,9 +25,60 @@ This edition covers what happened during the month of May 2021. ### Reviews --> - + +* [[BUG] Unix Builds Requires Pthread Support](https://lore.kernel.org/git/009d01d74b44$9efe8a60$dcfb9f20$@nexbridge.com/) + + Not long after 2.32.0-rc0 was released, Randall S. Becker reported + to the mailing list that + [a patch series](https://lore.kernel.org/git/pull.766.v4.git.1613598529.gitgitgadget@gmail.com/) + from Jeff Hostetler, which introduced a "Simple IPC Mechanism", + broke the build for the NonStop x86 and ia64 platforms. This build + defines `NO_PTHREADS`, as supporting pthreads on these platforms is + considered to cause "a bunch of other issues". + + It seems that Jeff patch series has introduced a file, called + `ipc-unix-socket.c`, which contains a call to the + `pthread_sigmask()` function part of the pthreads library which is + of course not linked to when `NO_PTHREADS` is defined. + + Randall suggested a "simple, but probably wrong fix" which just + surrounds the call to `pthread_sigmask()` with `#ifndef NO_PTHREADS` + and `#endif`. + + Peff, alias Jeff King, replied to Randall that usually an "async" + mechanism is used for tasks that can be performed by several workers + in parallel, and that underneath this mechanism can be implemented + both using different processes and using different threads. At build + time, depending on the availability of pthread, one or the other + implementation is selected. + + Peff couldn't tell though, if the "async" interface that the IPC + mechanism defines can actually be implemented using + processes. Anyway he proposed an improved patch to fix the build by + just removing the files implementing the mechanism from the build if + NO_PTHREAD if defined. + + Jeff Hostetler, who had implemented the IPC mechanism, then replied + to Peff, that the mechanism is heavily threaded and that there was + no point in trying to "fake it" with processes. So he agreed with + Peff's patch which removes it from the build. + + Peff replied to Jeff asking if he wanted to pick his patch up from + there and produce a polished patch before the 2.32.0 release. Jeff + then agreed to do that, and sent + [a more elaborate patch](https://lore.kernel.org/git/pull.955.git.1621352192238.gitgitgadget@gmail.com/) + based on Peff's patch and on some discussions about it that happened + in the meantime between Peff and Randall. + + Junio reviewed Jeff's patch and made some suggestions, which after + further discussion were integrated in + [the version 2 of the patch](https://lore.kernel.org/git/pull.955.v2.git.1621520547726.gitgitgadget@gmail.com/). + + A [version 3](https://lore.kernel.org/git/pull.955.v3.git.1621535291406.gitgitgadget@gmail.com/) + soon followed to fix the build for people using CMake instead of make. + This version was merged before 2.32.0-rc1. + +## Developer Spotlight: Han-Wen Nienhuys + +* Who are you and what do you do? + + I’m Han-Wen Nienhuys. I work at Google, where I manage the Gerrit + team. If you don’t know yet, [Gerrit](https://www.gerritcodereview.com/) + is the Git-based code review system that Google uses for large open + source projects, such Android and Chrome. + + For a while, Shawn Pearce was my boss. I got to know him because of + previous Git adventures at Google: I created git5, a wrapper around + our internal Perforce (‘p4’) deployment as a side project. You can + still see some traces of this, if you look at the commit history of + git-p4. + +* What would you name your most important contribution to Git? + + I didn’t contribute many patches to Git directly, but here is my + biggest one so far: + + Gerrit accepts code for review through a `git push` command, and user + studies showed that Gerrit’s error messages didn’t stand out among + the verbose terminal output. I added colorization for keywords like + “ERROR” and “WARNING” to draw more attention. + +* What are you doing on the Git project these days, and why? + + Gerrit uses Git as a database, storing all review metadata + (comments, LGTMs) in Git itself, which is extremely cool, but it + also creates extremely ..interesting.. scaling problems for Git and + JGit. + + One area of scaling is the ref database: Gerrit stores both metadata + and each version of a code review in a separate ref. As a result, + large projects, such as Chrome, now have several millions of refs in + their repository. Handling those efficiently is a challenge. Shawn + designed reftable to solve these problems, and partly implemented it + in JGit, but he never got round to updating the Git project itself + to use the format. + + At the end 2019, I thought it would be an interesting and fun + project to drive that project further. I did severely underestimate + how complicated it would be to do brain surgery on Git itself, + though, so 1.5 years later, it still hasn’t merged. Working on Git + itself (as opposed to Gerrit, and managing the team) is a side + project, so progress hasn’t been as fast as I’d like it to be. + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + Rewrite Git on top of [libgit2](https://libgit2.org/). Or even, + better rewrite it in Go. Hacking on Git is a fun trip down memory + lane, because the last time I wrote C seriously, I was half my + current age. It doesn’t feel very productive though, in part because + of limitations of the language (memory management, lack of + strings/maps/GC etc.). + + I realize that’s ambitious, and would turn off a lot of the current + contributors, however, I think much could also be gained by + structuring the program better (eg. banish global variables, + introduce more unittested abstraction boundaries), and that could be + achieved by rewriting parts on top of libgit2. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + The packed/loose ref backend. All of Git storage is user-accessible + (under the `.git` directory), but the packed/loose ref storage is + extra insidious, because you read/write it using `cat` and `echo`, + which invites people to break abstraction boundaries. + +* What is your favorite Git-related tool/library, outside of Git + itself? + + It’s Gerrit, of course. ## Releases From 7ef04c446d7b08ace5ef341117682afac9048cec Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jun 2021 22:35:23 +0200 Subject: [PATCH 0087/1248] rn-76: add Han-Wen among the helpers --- rev_news/drafts/edition-76.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index b9f5612db8..0cd808da1f 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -209,4 +209,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Jeffrey Palmer. +with help from Han-Wen Nienhuys and Jeffrey Palmer. From 9e5b25f80036d9188317c458eb5d5b3e19da4d4b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 25 Jun 2021 22:37:02 +0200 Subject: [PATCH 0088/1248] rn-76: remove spurious spaces --- rev_news/drafts/edition-76.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index 0cd808da1f..8563f9929f 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -194,9 +194,9 @@ __Light reading__ __Git tools and sites__ * [A Git history visualization page](https://git-history.jpalmer.dev/) by Jeff Palmer <> shows "An Interactive Development History" of Git in -three columns: project and contributor statistics, relative cumulative -contributions by contributor, and aggregated commits by -contributor by month with milestone annotations. Jeff wrote +three columns: project and contributor statistics, relative cumulative +contributions by contributor, and aggregated commits by +contributor by month with milestone annotations. Jeff wrote [an associated blog post](https://jpalmer.dev/2021/05/interactive-git-history/) about how he created the visualization, and he's also looking for feedback and ideas for milestones or features he could add. From c86583a5c9a3ef859d311616f58fc5475f67c0c6 Mon Sep 17 00:00:00 2001 From: Luca Milanesio Date: Fri, 25 Jun 2021 22:13:08 +0100 Subject: [PATCH 0089/1248] Add link to the Gerrit Community Survey 2021 --- rev_news/drafts/edition-76.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index 8563f9929f..76d5412aee 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -186,7 +186,9 @@ This edition covers what happened during the month of May 2021. ## Other News __Various__ - +* [The 2021 Gerrit Community Survey results](https://docs.google.com/presentation/d/11Ivu6xtYZBYTU5e5y_lc6tni3nm9fNIUbX2VRTyTMbE/edit#slide=id.ge209b6f75c_0_1459) + has been published, showing a robust increase of the overall number of users and the adoption + of the most recent versions of [Gerrit Code Review](https://www.gerritcodereview.com). __Light reading__ From 5d801e144597d35d2675524e8bcb34aabb6c8bb2 Mon Sep 17 00:00:00 2001 From: Luca Milanesio Date: Fri, 25 Jun 2021 22:25:22 +0100 Subject: [PATCH 0090/1248] Update edition-76.md --- rev_news/drafts/edition-76.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index 76d5412aee..f3ca76b3c5 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -187,7 +187,7 @@ This edition covers what happened during the month of May 2021. __Various__ * [The 2021 Gerrit Community Survey results](https://docs.google.com/presentation/d/11Ivu6xtYZBYTU5e5y_lc6tni3nm9fNIUbX2VRTyTMbE/edit#slide=id.ge209b6f75c_0_1459) - has been published, showing a robust increase of the overall number of users and the adoption + have been published, showing a robust increase of the overall number of users and the adoption of the most recent versions of [Gerrit Code Review](https://www.gerritcodereview.com). __Light reading__ From 706b5cfaf4bb639a3cda3ff3f0016ed7a65edd51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 26 Jun 2021 23:58:39 +0200 Subject: [PATCH 0091/1248] rn-76: Add links to various articles and tools --- rev_news/drafts/edition-76.md | 70 +++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index f3ca76b3c5..58ef4da011 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -190,7 +190,54 @@ __Various__ have been published, showing a robust increase of the overall number of users and the adoption of the most recent versions of [Gerrit Code Review](https://www.gerritcodereview.com). +* [Got typos? Git 2.32 lands, finally offers way to reword commits [easily]](https://devclass.com/2021/06/07/got-typos-git-2-32-lands-finally-offers-way-to-reword-commits/). + + __Light reading__ +* [Crypto Mining is Killing All Free CI/CD Platforms](https://dev.to/n3wt0n/crypto-mining-is-killing-all-free-ci-cd-platforms-4chc) + by Davide 'CoderDave' Benvegnù is a blog post on Dev.to + and a [video on YouTube](https://www.youtube.com/watch?v=9TOJqJSHVvI). + The platforms affected include GitLab, TravisCI, CircleCI and GitHub Actions; + the CI providers have limited their free tiers, or have to spend much effort + on combating crypto miners abusing the platform in response. + +* [Pulling GitHub into the kernel process](https://lwn.net/Articles/860607/) by Jake Edge on LWN.net + ([free link for not subscribed](https://lwn.net/SubscriberLink/860607/fdbce807fe931123/)) + describes attempts to make it possible to submit patches to the Linux kernel + via GitHub pull requests (PR). While at it, it also mentions various attempts + and tools to improve email-based workflow. + + * For submitting patch series to the Git project via GitHub pull request, + there is [GitGitGadget](https://gitgitgadget.github.io/), described in + [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/). + +* [A Random Walk Through Git](https://bakkenbaeck.github.io/a-random-walk-through-git/) + by Bakken & Bæck is a weird in-depth tour through Git and some of its internals, + including reflog, interactive rebase, bisect and rerere. + +* [How to never type passwords when using Git](https://dev.to/github/how-to-never-type-passwords-when-using-git-18bb) + by Michelle Mannering on Dev.to. + +* [Confusing Terms in the Git Terminology](https://dev.to/pragativerma18/confusing-terms-in-the-git-terminology-1578) + by Pragati Verma on Dev.to. + +* [Git Good - The magic of keeping a clean Git history](https://simplabs.com/blog/2021/05/26/keeping-a-clean-git-history/) + post by Chris Manson is designed to help you form a solid mental model while + working with Git both professionally and in an open source project, and how to + ensure you are following best practices to make the process easier for + everyone. + +* [Merge vs rebase](https://dev.to/emyller/merge-vs-rebase-63e) + by Evandro Myller on Dev.to. + +* [Git Log: How to Use It](https://careerkarma.com/blog/git-log/) + by James Gallagher (2020), one of Git tutorials on Career Karma blog. + +* [Fixing basic mistakes with Git](https://dev.to/abh1navv/fixing-basic-mistakes-with-git-4m4l) + by Abhinav Pandey on Dev.to. + +* [After CRUD: Intro to Git and basic workflows](https://johnmosesman.com/post/after-crud-git/) + by John Mosesman (2019) __Git tools and sites__ @@ -203,6 +250,29 @@ contributor by month with milestone annotations. Jeff wrote he created the visualization, and he's also looking for feedback and ideas for milestones or features he could add. +* [git undo: We can do better](https://blog.waleedkhan.name/git-undo/) +describes the `git-undo` tool that is +a [part of the git-branchless suite of tools](https://github.com/arxanas/git-branchless); +it can undo bad merges and rebases with ease, and even some rarer operations. +This `git undo` tool was made possible by a recent addition to Git: +the [reference-transaction hook](https://git-scm.com/docs/githooks#_reference_transaction) +(not yet present on the [GitHooks.com](https://githooks.com) site, mentioned +in [Git Rev News Edition #43](https://git.github.io/rev_news/2018/09/19/edition-43/); +the reference-transaction hook was described in [#75](https://git.github.io/rev_news/2021/03/27/edition-73/)). + + * The [GitUp](https://gitup.co/) client also supports undo/redo via snapshots, + also by adding additional plumbing on top of Git. This tool was first mentioned + in [Git Rev News #5](https://git.github.io/rev_news/2015/07/08/edition-5/). + + * The `undo` Git alias described in [Git Undo](http://megakemp.com/2016/08/25/git-undo/) + post by Enrico Campidoglio simply uses the reflog, and is less capable. This post + was mentioned in [Git Rev News #19](https://git.github.io/rev_news/2016/08/17/edition-18/). + +* [git-branchless](https://github.com/arxanas/git-branchless) is a suite of tools, +written in Rust, to help you **visualize**, **navigate**, **manipulate**, and **repair** +your commit history. It's based off of the branchless Mercurial workflows at large companies +such as Google and Facebook. + ## Credits From 241f481eb2dab876c2aee4c609def455c44b2692 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 27 Jun 2021 01:39:25 +0200 Subject: [PATCH 0092/1248] Applied some tiny spelling fixes. --- rev_news/drafts/edition-76.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index 58ef4da011..7066560b49 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -40,7 +40,7 @@ This edition covers what happened during the month of May 2021. It seems that Jeff patch series has introduced a file, called `ipc-unix-socket.c`, which contains a call to the - `pthread_sigmask()` function part of the pthreads library which is + `pthread_sigmask()` function part of the pthreads library, which is of course not linked to when `NO_PTHREADS` is defined. Randall suggested a "simple, but probably wrong fix" which just @@ -58,12 +58,12 @@ This edition covers what happened during the month of May 2021. mechanism defines can actually be implemented using processes. Anyway he proposed an improved patch to fix the build by just removing the files implementing the mechanism from the build if - NO_PTHREAD if defined. + `NO_PTHREADS` if defined, similar to dealing with `NO_UNIX_SOCKETS`. Jeff Hostetler, who had implemented the IPC mechanism, then replied - to Peff, that the mechanism is heavily threaded and that there was + to Peff that the mechanism was heavily threaded and that there was no point in trying to "fake it" with processes. So he agreed with - Peff's patch which removes it from the build. + Peff's patch, which conditionally removes it from the build. Peff replied to Jeff asking if he wanted to pick his patch up from there and produce a polished patch before the 2.32.0 release. Jeff @@ -74,7 +74,7 @@ This edition covers what happened during the month of May 2021. Junio reviewed Jeff's patch and made some suggestions, which after further discussion were integrated in - [the version 2 of the patch](https://lore.kernel.org/git/pull.955.v2.git.1621520547726.gitgitgadget@gmail.com/). + [version 2 of the patch](https://lore.kernel.org/git/pull.955.v2.git.1621520547726.gitgitgadget@gmail.com/). A [version 3](https://lore.kernel.org/git/pull.955.v3.git.1621535291406.gitgitgadget@gmail.com/) soon followed to fix the build for people using CMake instead of make. @@ -88,7 +88,7 @@ This edition covers what happened during the month of May 2021. I’m Han-Wen Nienhuys. I work at Google, where I manage the Gerrit team. If you don’t know yet, [Gerrit](https://www.gerritcodereview.com/) is the Git-based code review system that Google uses for large open - source projects, such Android and Chrome. + source projects, such as Android and Chrome. For a while, Shawn Pearce was my boss. I got to know him because of previous Git adventures at Google: I created git5, a wrapper around @@ -140,8 +140,8 @@ This edition covers what happened during the month of May 2021. I realize that’s ambitious, and would turn off a lot of the current contributors, however, I think much could also be gained by - structuring the program better (eg. banish global variables, - introduce more unittested abstraction boundaries), and that could be + structuring the program better (e.g. banish global variables, + introduce more unit tested abstraction boundaries), and that could be achieved by rewriting parts on top of libgit2. * If you could remove something from Git without worrying about @@ -205,9 +205,9 @@ __Light reading__ ([free link for not subscribed](https://lwn.net/SubscriberLink/860607/fdbce807fe931123/)) describes attempts to make it possible to submit patches to the Linux kernel via GitHub pull requests (PR). While at it, it also mentions various attempts - and tools to improve email-based workflow. + and tools to improve an email-based workflow. - * For submitting patch series to the Git project via GitHub pull request, + * For submitting patch series to the Git project via GitHub pull requests, there is [GitGitGadget](https://gitgitgadget.github.io/), described in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/). @@ -237,7 +237,7 @@ __Light reading__ by Abhinav Pandey on Dev.to. * [After CRUD: Intro to Git and basic workflows](https://johnmosesman.com/post/after-crud-git/) - by John Mosesman (2019) + by John Mosesman (2019). __Git tools and sites__ From 2f13150297f34d22f484f3857fee8df19d0ad67c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 27 Jun 2021 09:11:27 +0200 Subject: [PATCH 0093/1248] rn-76: add Luca Milanesio among the helpers --- rev_news/drafts/edition-76.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-76.md b/rev_news/drafts/edition-76.md index 7066560b49..43a9ca3f96 100644 --- a/rev_news/drafts/edition-76.md +++ b/rev_news/drafts/edition-76.md @@ -281,4 +281,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Han-Wen Nienhuys and Jeffrey Palmer. +with help from Han-Wen Nienhuys, Luca Milanesio and +Jeffrey Palmer. From e49b7ba18054b4e8fe32b497e712797979872d55 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 27 Jun 2021 22:55:59 +0200 Subject: [PATCH 0094/1248] Publish rn-76 in _posts/ --- .../drafts/edition-76.md => _posts/2021-06-27-edition-76.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-76.md => _posts/2021-06-27-edition-76.markdown (100%) diff --git a/rev_news/drafts/edition-76.md b/_posts/2021-06-27-edition-76.markdown similarity index 100% rename from rev_news/drafts/edition-76.md rename to _posts/2021-06-27-edition-76.markdown From 65511b0d3f195938111306399a4e6f36ba4bc8ae Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 27 Jun 2021 22:55:59 +0200 Subject: [PATCH 0095/1248] Add draft for rn-77 --- rev_news/drafts/edition-77.md | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 rev_news/drafts/edition-77.md diff --git a/rev_news/drafts/edition-77.md b/rev_news/drafts/edition-77.md new file mode 100644 index 0000000000..0f28e0f76f --- /dev/null +++ b/rev_news/drafts/edition-77.md @@ -0,0 +1,57 @@ +--- +title: Git Rev News Edition 77 (July 28th, 2021) +layout: default +date: 2021-07-28 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 77 (July 28th, 2021) + +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). + +This edition covers what happened during the month of June 2021. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 784d58102df64693c5432805b2b9fb7b489bcf69 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 29 Jun 2021 13:53:13 +0200 Subject: [PATCH 0096/1248] Fixed another tiny spelling mistake found in the email publishing phase. --- _posts/2021-06-27-edition-76.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2021-06-27-edition-76.markdown b/_posts/2021-06-27-edition-76.markdown index 43a9ca3f96..2840f499f1 100644 --- a/_posts/2021-06-27-edition-76.markdown +++ b/_posts/2021-06-27-edition-76.markdown @@ -131,8 +131,8 @@ This edition covers what happened during the month of May 2021. * 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? - Rewrite Git on top of [libgit2](https://libgit2.org/). Or even, - better rewrite it in Go. Hacking on Git is a fun trip down memory + Rewrite Git on top of [libgit2](https://libgit2.org/). Or even + better, rewrite it in Go. Hacking on Git is a fun trip down memory lane, because the last time I wrote C seriously, I was half my current age. It doesn’t feel very productive though, in part because of limitations of the language (memory management, lack of From c6ef6096561088e1343fede9300fa371f1f89af3 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 27 Jul 2021 12:36:42 +0200 Subject: [PATCH 0097/1248] rn-77: add releases --- rev_news/drafts/edition-77.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/rev_news/drafts/edition-77.md b/rev_news/drafts/edition-77.md index 0f28e0f76f..74600f27ba 100644 --- a/rev_news/drafts/edition-77.md +++ b/rev_news/drafts/edition-77.md @@ -35,6 +35,22 @@ This edition covers what happened during the month of June 2021. ## Releases ++ Git for Windows [2.32.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.32.0.windows.2) ++ libgit2 [1.1.1](https://github.com/libgit2/libgit2/releases/tag/v1.1.1) ++ Gerrit Code Review [3.3.5](https://www.gerritcodereview.com/3.3.html#335), +[3.2.11](https://www.gerritcodereview.com/3.2.html#3211) ++ GitHub Enterprise [3.1.3](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.3), +[3.0.11](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.11), +[2.22.17](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.17) ++ GitLab [14.1.0](https://about.gitlab.com/releases/2021/07/22/gitlab-14-1-released/), +[14.0.6](https://about.gitlab.com/releases/2021/07/20/gitlab-14-0-6-released/), +[14.0.5](https://about.gitlab.com/releases/2021/07/08/gitlab-14-0-5-released/), +[14.0.4, 13.12.8, and 13.11.7](https://about.gitlab.com/releases/2021/07/07/critical-security-release-gitlab-14-0-4-released/), +[14.0.3](https://about.gitlab.com/releases/2021/07/06/gitlab-14-0-3-released/), +[13.12.7](https://about.gitlab.com/releases/2021/07/05/gitlab-13-12-7-released/), +[14.0.2, 13.12.6, and 13.11.6](https://about.gitlab.com/releases/2021/07/01/security-release-gitlab-14-0-2-released/) ++ Bitbucket Server [7.15](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ GitKraken [7.7.0](https://support.gitkraken.com/release-notes/current) ## Other News From 1b121699673ed375240effec307e4b748dbbaae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 28 Jul 2021 02:21:08 +0200 Subject: [PATCH 0098/1248] rn-77: Add links to various articles and tools, part 1 --- rev_news/drafts/edition-77.md | 42 ++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-77.md b/rev_news/drafts/edition-77.md index 74600f27ba..adf65a24bc 100644 --- a/rev_news/drafts/edition-77.md +++ b/rev_news/drafts/edition-77.md @@ -55,12 +55,52 @@ This edition covers what happened during the month of June 2021. ## Other News __Various__ - +* [Tower 7 - The New Commit Experience](https://www.git-tower.com/blog/tower-mac-7) __Light reading__ +* [Git quick tips #1: git commit --fixup](https://citizen428.net/blog/git-quick-tips-1-commit-fixup/) and + [Git quick tips #2: Working with many branches](https://citizen428.net/blog/git-quick-tips-2-working-with-many-branches/) + by Michael Kohl. + +* [Git For Data Engineers](https://towardsdatascience.com/git-for-data-engineers-a8b979d8b2ab) + by Kovid Rathee: a shortish guide to source control for data engineers, + data analysts, and data scientists. + +* [How to Learn Git Slowly](https://suchdevblog.com/lessons/HowToLearnGit.html) + by Samuel Faure. + +* [On the Evilness of Feature Branching - A Tale of Two Teams](https://thinkinglabs.io/articles/2021/07/14/on-the-evilness-of-feature-branching-a-tale-of-two-teams.html), + one novice practising [trunk-based development](https://trunkbaseddevelopment.com/), + the other very experienced using [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/), + by Thierry de Pauw. + + * See also [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html) + by Martin Fowler, mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/) + +* [Things I wish Git had: Commit groups](http://blog.danieljanus.pl/2021/07/01/commit-groups/) + by Daniel Janus - to have advantages of topic branch workflow + when using "rebase and merge" workflow. + +* [How Git Branches Work](https://www.freecodecamp.org/news/how-git-branches-work/): + Git Branches Tutorial, by Beau Carnes, on freeCodeCamp. + +* [How NOT to use Git in Practice. Ten Git usages, you should know to avoid.](https://blog.greenroots.info/how-not-to-use-git-in-practice-ten-git-usages-you-should-know-to-avoid) + by Tapas Adhikary on GreenRoots Blog. + +* [Elevate your Git-fu!](https://dev.to/abhaykrishna/elevate-your-git-fu-3ip4) + by Abhay Krishna Arunachalam on DEV.to + +* [git update: the odyssey for a sensible git pull](https://felipec.wordpress.com/2021/07/05/git-update/) + by Felipe Contreras. __Git tools and sites__ +* [diffsitter](https://github.com/afnanenayet/diffsitter) creates semantically meaningful + diffs that ignore formatting differences like spacing. It does so by computing a diff + on the AST (abstract syntax tree) of a file rather than computing the diff on the text + contents of the file. `diffsitter` uses the parsers from + the [tree-sitter](https://tree-sitter.github.io/tree-sitter) project + to parse source code. Written in Rust, it is very much a work in progress. ## Credits From 0c8de12b588a38a9049fff5dce8fcf38d185abc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 28 Jul 2021 12:03:23 +0200 Subject: [PATCH 0099/1248] rn-77: Add links to various articles and tools, part 2 --- rev_news/drafts/edition-77.md | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/rev_news/drafts/edition-77.md b/rev_news/drafts/edition-77.md index adf65a24bc..0c8ed724f7 100644 --- a/rev_news/drafts/edition-77.md +++ b/rev_news/drafts/edition-77.md @@ -58,6 +58,10 @@ __Various__ * [Tower 7 - The New Commit Experience](https://www.git-tower.com/blog/tower-mac-7) __Light reading__ +* [How to Get Better with Git](https://www.anavela.dev/how-to-get-better-with-git) + by Ana Vela provides a list of free and paid resources to help you boost your + Git know-how. + * [Git quick tips #1: git commit --fixup](https://citizen428.net/blog/git-quick-tips-1-commit-fixup/) and [Git quick tips #2: Working with many branches](https://citizen428.net/blog/git-quick-tips-2-working-with-many-branches/) by Michael Kohl. @@ -69,6 +73,16 @@ __Light reading__ * [How to Learn Git Slowly](https://suchdevblog.com/lessons/HowToLearnGit.html) by Samuel Faure. +* [How NOT to use Git in Practice. Ten Git usages, you should know to avoid.](https://blog.greenroots.info/how-not-to-use-git-in-practice-ten-git-usages-you-should-know-to-avoid) + by Tapas Adhikary on GreenRoots Blog. + +* [Elevate your Git-fu!](https://dev.to/abhaykrishna/elevate-your-git-fu-3ip4) + by Abhay Krishna Arunachalam on DEV.to + +* [How to Collaborate on Components across Projects with Bit](https://dev.to/giteden/how-to-collaborate-on-components-across-projects-with-bit-29c3) + by Eden Ella on DEV.to. The [Bit](https://github.com/teambit/bit) project was + mentioned in [Git Rev News Edition #45](https://git.github.io/rev_news/2018/11/21/edition-45/). + * [On the Evilness of Feature Branching - A Tale of Two Teams](https://thinkinglabs.io/articles/2021/07/14/on-the-evilness-of-feature-branching-a-tale-of-two-teams.html), one novice practising [trunk-based development](https://trunkbaseddevelopment.com/), the other very experienced using [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/), @@ -81,15 +95,12 @@ __Light reading__ by Daniel Janus - to have advantages of topic branch workflow when using "rebase and merge" workflow. +* [Git Squash Simplified](https://dev.to/pb/git-squash-simplified-3ba1) + by Pawel Borkar on DEV.to. + * [How Git Branches Work](https://www.freecodecamp.org/news/how-git-branches-work/): Git Branches Tutorial, by Beau Carnes, on freeCodeCamp. -* [How NOT to use Git in Practice. Ten Git usages, you should know to avoid.](https://blog.greenroots.info/how-not-to-use-git-in-practice-ten-git-usages-you-should-know-to-avoid) - by Tapas Adhikary on GreenRoots Blog. - -* [Elevate your Git-fu!](https://dev.to/abhaykrishna/elevate-your-git-fu-3ip4) - by Abhay Krishna Arunachalam on DEV.to - * [git update: the odyssey for a sensible git pull](https://felipec.wordpress.com/2021/07/05/git-update/) by Felipe Contreras. @@ -102,6 +113,16 @@ __Git tools and sites__ the [tree-sitter](https://tree-sitter.github.io/tree-sitter) project to parse source code. Written in Rust, it is very much a work in progress. +* [The best 6 VS Code extensions to supercharge Git](https://dev.to/jamieswift90/the-best-vs-code-extensions-to-supercharge-git-yes-there-s-more-than-gitlens-4588) + by Jamie Swift on DEV.to. + +* [GitLive](https://marketplace.visualstudio.com/items?itemName=TeamHub.teamhub) + is a Visual Studio Code extension [to see which branch your teammates are on in VS Code](https://dev.to/gitlive/how-to-see-which-branch-your-teammates-are-on-in-vs-code-cb1). + +* [Git Immersion](https://gitimmersion.com/index.html) provides a guided tour + that walks through the fundamentals of Git, inspired by the premise that to + know a thing is to do it. Another [variant of Git Immersion](http://jce-il.github.io/git-immersion/index.html) + was mentioned in [Git Rev News Edition #38](https://git.github.io/rev_news/2018/04/18/edition-38/). ## Credits From 21d223fbfa8595e6b6c8de77c50a68097ae6e4f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 28 Jul 2021 12:07:57 +0200 Subject: [PATCH 0100/1248] rn-77: Add links to various articles and tools, part 3 --- rev_news/drafts/edition-77.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rev_news/drafts/edition-77.md b/rev_news/drafts/edition-77.md index 0c8ed724f7..164d4ce2cf 100644 --- a/rev_news/drafts/edition-77.md +++ b/rev_news/drafts/edition-77.md @@ -57,6 +57,13 @@ This edition covers what happened during the month of June 2021. __Various__ * [Tower 7 - The New Commit Experience](https://www.git-tower.com/blog/tower-mac-7) +* [NO\_COLOR](https://no-color.org/) is a proposed universal standard of + disabling colored text output in command-line software programs. The website + also documents which software has adopted this standard and when support was + added, and for projects that did not adopt this standard it tries to document + how to otherwise disable color. + + __Light reading__ * [How to Get Better with Git](https://www.anavela.dev/how-to-get-better-with-git) by Ana Vela provides a list of free and paid resources to help you boost your From edc6e4925e9795de5ab14e639c89b168008fd5f8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 29 Jul 2021 08:52:41 +0200 Subject: [PATCH 0101/1248] rn-77: add return instead of exit article --- rev_news/drafts/edition-77.md | 68 +++++++++++++++++++++++++++++++++-- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-77.md b/rev_news/drafts/edition-77.md index 164d4ce2cf..9b36d429d0 100644 --- a/rev_news/drafts/edition-77.md +++ b/rev_news/drafts/edition-77.md @@ -21,9 +21,73 @@ This edition covers what happened during the month of June 2021. ### General --> - + +* [[PATCH] builtins + test helpers: use return instead of exit() in cmd_*](https://lore.kernel.org/git/patch-1.1-61d7e6e079-20210607T111008Z-avarab@gmail.com/) + + Ævar Arnfjörð Bjarmason sent a patch to the mailing list that + changed some cmd_*() functions so that they use a `return` statement + instead of `exit()`. He further said that it is legitimate for the + SunCC compiler on Solaris to complain about the exit() calls, as + they would skip any cleanup made after them. + + The cmd_*() functions are important in the architecture of Git, as + there is one such function for each Git "builtin" command, and the + function is called by `run_builtin()` in `git.c` to perform the + command. For example when `git log` is launched, the `cmd_log()` + function is called by `run_builtin()`. + + Felipe Contreras reviewed the patch and found it obviously correct. + + Peff, alias Jeff King, also said that it looked like simple and + obvious conversions, but he wondered what was SunCC complaining + about, especially if it didn't know about `NORETURN`, and would + complain about many other exit() calls. + + `NORETURN` is a special statement to tell the compiler that a + function doesn't return, but instead uses a function like `exit()` + to stop the current process. + + Phillip Wood also wondered if SunCC would complain about die() + calls, which use exit() underneath. + + Ævar then sent + [a version 2](https://lore.kernel.org/git/patch-1.1-f225b78e01-20210608T104454Z-avarab@gmail.com/) + of his patch, with no code change but explaining that SunCC actually + complains when there's no NORETURN while we declare a cmd_*() + function to return an int. He replied to Peff with the same + explanation and added that around half of SunCC warnings are + legitimate, and that he had already been sending miscellaneous fixes + for 15-20 of them. + + Junio Hamano, the Git maintainer, replied to the version 2 patch. + He especially had issue with the part in the commit message that + said that directly exit()-ing would skip the cleanups `git.c` would + otherwise do, like closing file descriptors and erroring if it + failed. He considered that it was "not a crime" for the functions to + exit themselves as file descriptors are closed when we exit and "if + we do have clean-ups that are truly important, we would have + arranged them to happen in the `atexit()` handler". + + Junio anyway thought that the patch was still "a good idea because + it encourages good code hygiene". + + Ævar replied to Junio that file descriptors are indeed closed when we + exit, but the errors we get when closing them would not be + reported. He pointed to previous commits that had been merged back + in 2007 to make sure IO errors were properly reported after the + cmd_*() functions return, and said that "the `atexit()` handlers + cannot modify the exit code (both per the C standard, and POSIX)". + He also discussed a bit how glibc allows `atexit()` handlers to + munge the exit code though it's not portable behavior. + + Junio replied that Ævar was right and that "we leave a final clean-up + for normal returns (i.e. when `cmd_foo()` intends to return or exit + with 0) to be done by the caller". + + The patch was later merged into the master branch and the next + version of Git will better signal IO errors, thanks to SunCC and + people running it to compile Git on Solaris machines. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From a20b501418491e9e841425ee0179a45108a8a729 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 25 Aug 2021 17:28:26 +0200 Subject: [PATCH 0108/1248] rn-78: Add links to various news, articles and tools --- rev_news/drafts/edition-78.md | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/rev_news/drafts/edition-78.md b/rev_news/drafts/edition-78.md index cb2c28b9b4..ef63b0e70a 100644 --- a/rev_news/drafts/edition-78.md +++ b/rev_news/drafts/edition-78.md @@ -39,12 +39,65 @@ This edition covers what happened during the month of July 2021. ## Other News __Various__ +* [Highlights from Git 2.33](https://github.blog/2021-08-16-highlights-from-git-2-33/) + by Taylor Blau on GitHub Blog. +* [Treeverse raises $23M to bring Git-like version control to data lakes](https://venturebeat.com/2021/07/28/treeverse-raises-23m-to-bring-git-like-version-control-to-data-lakes/): + [LakeFS](https://lakefs.io/). +* [GitHub has shut down its Git password authentication on August 13, 2021](https://github.blog/changelog/2021-08-12-git-password-authentication-is-shutting-down/); + you should use instead [token-based authentication](https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/). __Light reading__ +* [How to write release notes](https://drewdevault.com/2021/05/19/How-to-write-release-notes.html) + by Drew DeVault. +* [From a Single Repo, to Multi-Repos, to Monorepo, to Multi-Monorepo](https://css-tricks.com/from-a-single-repo-to-multi-repos-to-monorepo-to-multi-monorepo/) + by Leonardo Losoviz on CSS-Tricks. + * The idea of monorepos was first mentioned by this name in [Git Rev News Edition #4](https://git.github.io/rev_news/2015/06/03/edition-4/), + with [Edition #47](https://git.github.io/rev_news/2019/01/23/edition-47/) + including many links to discussions about their advantages and disadvantages. +* [Visualizing a codebase](https://next.github.com/projects/repo-visualization): + how can we automatically “fingerprint” a codebase to see its structure at a glance, + by Amelia Wattenberger on GitHub Next. +* [The History Behind Git](https://ahmedgouda.hashnode.dev/the-history-behind-git) + by Ahmed Gouda (also [on DEV.to](https://dev.to/ahmedgouda/the-history-behind-git-53ag)). +* [Getting geeky with Git](https://wanago.io/courses/getting-geeky-with-git/), + an 11 part series by Marcin Wanago. +* [New in Git: switch and restore](https://www.banterly.net/2021/07/31/new-in-git-switch-and-restore/) + by Dragos Barosan (new for the author; [`git switch`](https://git-scm.com/docs/git-switch) + and [`git restore`](https://git-scm.com/docs/git-restore) appeared in Git 2.23 in 2019). +* [A Guide to Git Stash](https://dev.to/pragativerma18/a-guide-to-git-stash-2h5d) + by Pragati Verma on DEV.to. +* [How to Fix, Edit, or Undo Git Commits (Changing Git History)](https://www.cloudsavvyit.com/13067/how-to-fix-edit-or-undo-git-commits-changing-git-history/) + by Anthony Heddings on CloudSavvy IT. +* [5 Ways to Undo Mistakes with Git](https://www.sitepoint.com/5-ways-to-undo-mistakes-with-git) + by Tobias Günther on SitePoint. +* [5 Git Tricks Every Developer Should Know](https://dev.to/shadid12/5-git-tricks-every-developer-should-know-1201) + by Shadid Haque on DEV.to. +* [Git for Managing Small Projects](https://thenewstack.io/git-for-managing-small-projects/) + by Rob "drtorq" Reilly on The New Stack, the first part in a planned series of tutorials on Git. __Git tools and sites__ +* [lakeFS](https://lakefs.io/) is an open source tool that transforms your + object storage into a Git-like repository. It enables you to manage your + [data lake](https://aws.amazon.com/big-data/datalakes-and-analytics/what-is-a-data-lake/) + (storing _unprocessed_ data) the way you manage your code. Supports AWS S3, + Azure Blob Storage and Google Cloud Storage; works seamlessly with all + modern data frameworks such as Spark, Hive, AWS Athena, Presto, etc. + * Existing products comparable to LakeFS include tools such as + [DVC](https://dvc.org/) (first mentioned in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/)), + [Pachyderm](https://www.pachyderm.com/) (first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/)), and + [Meltano](https://meltano.com/) (first mentioned in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/)). + +* [`CITATION.cff`](https://citation-file-format.github.io/) files, + which use Citation File Format (CFF), are plain text files with + human- and machine-readable citation information for software (and datasets). + Code developers can include them in their repositories to let others know + how to correctly cite their software. Supported by GitHub, Zenodo and Zotero. + +* [GitUI](https://github.com/extrawurst/gitui) is a blazing fast terminal-ui for Git + written in Rust, meant to work reliably even on large repositories. + Similar to [tig](https://jonas.github.io/tig/). ## Credits From 5b395982c8f8e2bfffa91c2bcee3cd76e9ea7872 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Wed, 25 Aug 2021 09:08:54 -0700 Subject: [PATCH 0109/1248] rn-78: Link to latest blog post on optimizing Git's merge machinery --- rev_news/drafts/edition-78.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-78.md b/rev_news/drafts/edition-78.md index ef63b0e70a..e478c285d9 100644 --- a/rev_news/drafts/edition-78.md +++ b/rev_news/drafts/edition-78.md @@ -48,6 +48,7 @@ __Various__ __Light reading__ +* [Optimizing Git’s Merge Machinery, Part V](https://blog.palantir.com/optimizing-gits-merge-machinery-part-v-46ff3710633e) by Elijah Newren on Palantir Blog. * [How to write release notes](https://drewdevault.com/2021/05/19/How-to-write-release-notes.html) by Drew DeVault. * [From a Single Repo, to Multi-Repos, to Monorepo, to Multi-Monorepo](https://css-tricks.com/from-a-single-repo-to-multi-repos-to-monorepo-to-multi-monorepo/) From 776d837cd1dcf7c3d50d3302c7af10cba2db38cc Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 27 Aug 2021 08:32:16 +0200 Subject: [PATCH 0110/1248] rn-78: add releases --- rev_news/drafts/edition-78.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/rev_news/drafts/edition-78.md b/rev_news/drafts/edition-78.md index e478c285d9..052a2fb189 100644 --- a/rev_news/drafts/edition-78.md +++ b/rev_news/drafts/edition-78.md @@ -35,6 +35,36 @@ This edition covers what happened during the month of July 2021. ## Releases ++ Git [2.33.0](https://public-inbox.org/git/xmqq1r6touqi.fsf@gitster.g/), +[2.33.0-rc2](https://public-inbox.org/git/xmqqo8a37eim.fsf@gitster.g/), +[2.33.0-rc1](https://public-inbox.org/git/xmqq5ywigls4.fsf@gitster.g/), +[2.33.0-rc0](https://public-inbox.org/git/xmqqbl6fv2b8.fsf@gitster.g/) ++ Git for Windows [2.33.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.33.0.windows.2), +[2.33.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.33.0.windows.1), +[2.33.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.33.0-rc2.windows.1), +[2.33.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.33.0-rc1.windows.1), +[2.33.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.33.0-rc0.windows.1) ++ GitHub Enterprise [3.1.6](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.6), +[3.0.14](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.14), +[2.22.20](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.20), +[3.1.5](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.5), +[3.0.13](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.13), +[2.22.19](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.19) ++ GitLab [14.0.8](https://about.gitlab.com/releases/2021/08/26/gitlab-14-0-8-released/), +[14.2.1](https://about.gitlab.com/releases/2021/08/23/gitlab-14-2-1-released/), +[14.2](https://about.gitlab.com/releases/2021/08/22/gitlab-14-2-released/), +[14.1.3](https://about.gitlab.com/releases/2021/08/17/gitlab-14-1-3-released/), +[13.12.10](https://about.gitlab.com/releases/2021/08/10/gitlab-13-12-10-released/), +[14.1.2](https://about.gitlab.com/releases/2021/08/03/security-release-gitlab-14-1-2-released/), +[14.1.1](https://about.gitlab.com/releases/2021/07/28/gitlab-14-1-1-released/) ++ Gerrit Code Review [3.3.6](https://www.gerritcodereview.com/3.3.html#336), +[3.2.12](https://www.gerritcodereview.com/3.2.html#3212), +[3.1.16](https://www.gerritcodereview.com/3.1.html#3116), +[3.4.1](https://www.gerritcodereview.com/3.4.html#341) ++ GitKraken [7.7.2](https://support.gitkraken.com/release-notes/current), +[7.7.1](https://support.gitkraken.com/release-notes/current), ++ GitHub Desktop [2.9.2](https://desktop.github.com/release-notes/), +[2.9.1](https://desktop.github.com/release-notes/) ## Other News From 56c08492fb238c0da8edf1c10e7bd674c9f84ce0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 29 Aug 2021 10:06:30 +0200 Subject: [PATCH 0111/1248] rn-78: add GIT_CONFIG article --- rev_news/drafts/edition-78.md | 47 +++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-78.md b/rev_news/drafts/edition-78.md index 052a2fb189..0121183c91 100644 --- a/rev_news/drafts/edition-78.md +++ b/rev_news/drafts/edition-78.md @@ -25,9 +25,52 @@ This edition covers what happened during the month of July 2021. ### Reviews --> - + +* [Bug report: GIT_CONFIG and user.email/name](https://lore.kernel.org/git/1C6C1E49-5EC1-420D-A72A-8C50BD1931A2@getmailspring.com/) + + German Lashevich sent a bug report about an issue when using the + `GIT_CONFIG` environment variable. + + He gave an example where he sets the `user.name` and `user.email` + config variables to some values in a temporary + `/tmp/git-test/.gitconfig` config file, and then sets `GIT_CONFIG` + to point to this file. + + When he then tries to commit some changes, Git errors out with an + "Author identity unknown" error and instructions about how to set + the current account's default identity. He expected that the values + of the `user.name` and `user.email` variables set in the temporary + config file would be taken into account. + + Peff, alias Jeff King, replied that `GIT_CONFIG` is an historical + wart that isn't used by all of Git, but only the `git config` + command, and even there `git config --file` should be used instead. + + He suggested using `GIT_CONFIG_GLOBAL` or `GIT_CONFIG_SYSTEM` which + are available since v2.32.0. They instruct Git to read a specific + file instead of the usual global (usually `/etc/gitconfig`) or + system-level (`$HOME/.gitconfig` and `$XDG_CONFIG_HOME/git/config`) + config files respectively. + + German thanked Peff saying `GIT_CONFIG_GLOBAL` is what he needed. + + Junio Hamano, the Git maintainer, replied to Peff that reading the + `GIT_CONFIG` documentation gave a misleading impression as it + doesn't say that `GIT_CONFIG` is only for the `git config` command. + + Peff agreed with Junio saying that the documentation hasn't been + updated since 2007, when `GIT_CONFIG` really did impact other + commands, and that he was sending + [a small patch series](https://lore.kernel.org/git/YO9ZGTX9f1fOpTkh@coredump.intra.peff.net/) + to improve the situation. + + Taylor Blau and Martin Ågren reviewed the patches and discussed them + a bit with Peff and Junio. + + The patch series was later merged into the master branch, and the + documentation improvements are now available in the recently + released Git 2.33. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 8957f91cc49fe8d14b04494603fbb74a5e8b9ee7 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Mon, 6 Sep 2021 12:03:47 +0200 Subject: [PATCH 0118/1248] --comma_at_end_of_item, synced with version published by mail. --- _posts/2021-08-31-edition-78.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-08-31-edition-78.markdown b/_posts/2021-08-31-edition-78.markdown index ee117898dd..b93893d3ef 100644 --- a/_posts/2021-08-31-edition-78.markdown +++ b/_posts/2021-08-31-edition-78.markdown @@ -105,7 +105,7 @@ This edition covers what happened during the month of July 2021. [3.1.16](https://www.gerritcodereview.com/3.1.html#3116), [3.4.1](https://www.gerritcodereview.com/3.4.html#341) + GitKraken [7.7.2](https://support.gitkraken.com/release-notes/current), -[7.7.1](https://support.gitkraken.com/release-notes/current), +[7.7.1](https://support.gitkraken.com/release-notes/current) + GitHub Desktop [2.9.2](https://desktop.github.com/release-notes/), [2.9.1](https://desktop.github.com/release-notes/) From 76f1dfdd65af1f9002be3c4a1c74cec29f8fc6d0 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 18 Sep 2021 23:43:15 +0530 Subject: [PATCH 0119/1248] rn-79: add interview with Josh Steadmon --- rev_news/drafts/edition-79.md | 53 +++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index 6e10b4194e..c53ba9e78c 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -29,9 +29,56 @@ This edition covers what happened during the month of August 2021. ### Support --> - +## Developer Spotlight: Josh Steadmon + +* Who are you and what do you do? + + I'm a Software Engineer at Google, and I work on a team dedicated to + Git. Outside of work, I'm a husband and a new dad, which doesn't leave + me much time for anything else :). + + Git is actually my first experience as a professional developer. Up + until I joined the Git team in 2018, my career had been in system + administration and reliability engineering. + +* What would you name your most important contribution to Git? + + Probably the addition of fuzz tests. Not so much due to impact so far + (although it has found a few small bugs), but because of the opportunity + for future work in this area. If I had more time, I'd love to look into + having a proper fuzz tester for client/server communication, for + example. + +* What are you doing on the Git project these days, and why? + + Until recently, the majority of my work has been internal performance + monitoring of Git usage by Google developers. Lately I've been winding + down my work on monitoring and starting to look into improving + performance and the user experience with submodules. Only the very + beginnings of that have started to show up on-list so far. + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + I think I'd echo my former coworker [Brandon Williams (edition 28)](https://git.github.io/rev_news/2017/06/14/edition-28/#developer-spotlight-brandon-williams), + and work on cleaning up the global state. For a new-ish developer who + doesn't have full history on all the various subsystems, it can be + difficult to follow the logic when there's lots of non-local state being + modified. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + Not so much to remove as change: I wish it was easier to move away from + SHA-1 hashes. I'm very happy that brian m. carlson has been working on + supporting SHA-256. + +* What is your favorite Git-related tool/library, outside of Git itself? + + I'm a huge fan of git-annex (https://git-annex.branchable.com/) and use + it to keep my ever-growing pile of PDFs and ebooks synced and organized + across various devices. I also use it to archive primary sources in a + homebrew personal knowledge base. ## Releases From 207ac187a17dfbdf52ecc8d58c4b6824131ae2a8 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 18 Sep 2021 23:44:56 +0530 Subject: [PATCH 0120/1248] rn-79: linkinfy git-annex --- rev_news/drafts/edition-79.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index c53ba9e78c..73852804fc 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -75,7 +75,7 @@ This edition covers what happened during the month of August 2021. * What is your favorite Git-related tool/library, outside of Git itself? - I'm a huge fan of git-annex (https://git-annex.branchable.com/) and use + I'm a huge fan of [git-annex](https://git-annex.branchable.com/) and use it to keep my ever-growing pile of PDFs and ebooks synced and organized across various devices. I also use it to archive primary sources in a homebrew personal knowledge base. From ebae7e5a19d59d3ebcc4ed5b04982435e23e6d7a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 20 Sep 2021 17:05:14 +0200 Subject: [PATCH 0121/1248] Add Outreachy-23-Microprojects.md --- Outreachy-23-Microprojects.md | 90 +++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 Outreachy-23-Microprojects.md diff --git a/Outreachy-23-Microprojects.md b/Outreachy-23-Microprojects.md new file mode 100644 index 0000000000..7858b4af66 --- /dev/null +++ b/Outreachy-23-Microprojects.md @@ -0,0 +1,90 @@ +--- +layout: default +title: Outreachy Winter 2021-2022 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 + +### Add more builtin patterns for userdiff + +"git diff" shows the function name corresponding to each hunk after +the @@ ... @@ line. For common languages (C, HTML, Ada, Matlab, ...), +the way to find the function name is built-in Git's source code as +regular expressions (see userdiff.c). A few languages are common +enough to deserve a built-in driver, but are not yet recognized. For +example, shell. + +This project requires a very good knowledge of regular expressions. + +It is easy though to find examples of how this can be done by +searching the code base and the mailing list archive, as this has +already been done for a number of languages. + +### Replace a run_command*() call by direct calls to C functions + +See for example what Junio did in +[ffcb4e94d3](https://github.com/git/git/commit/ffcb4e94d3) (bisect: do +not run show-branch just to show the current commit, 2021-07-27). + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Use `test_path_is_*` functions in test scripts + +Find one test script that verifies the presence/absence of +files/directories with 'test -(e|f|d|...)' and replace them with the +appropriate `test_path_is_file`, `test_path_is_dir`, etc. helper +functions. + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Avoid pipes in git related commands in test scripts + +See the commit +[c6f44e1da5](https://github.com/git/git/commit/c6f44e1da5e88e34) +for example, and then do the same thing in one other test script. + +The git command should be on the left side of the pipe. + +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. + +### Use unsigned integral type for collection of bits. + +Pick one field of a structure that (1) is of signed integral type and (2) is +used as a collection of multiple bits. Discuss if there is a good reason +why it has to be a signed integral field and change it to an unsigned +type otherwise. [[thread](https://public-inbox.org/git/xmqqsiebrlez.fsf@gitster.dls.corp.google.com)] + +Even though the amount of code to write is small, these projects +involve a lot of prior work to understand the specification and deal +with all potential corner-cases. + +### Modernize a test script + +A number of our test scripts have been written a long time ago in a +style that is now outdated. + +In the following email it is explained in details how to modernize and +clean up the t7001 test script: + + + +t7001 is not the only test script where similar changes could be made +though. + +Find one test script that needs some of the same changes and make +them. Please make sure that the test script is not already being +worked on by asking on the mailing list before starting to work on it. + +There should be only one kind of change per commit. For example if one +of your commits indents test bodies with TABs, instead of spaces, then +this should be the only kind of change in this commit. From 799d933503117175da44c938e99bbe9cf45e8d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 21 Sep 2021 23:22:27 +0200 Subject: [PATCH 0122/1248] rn-79: Add links to various news, articles and tools --- rev_news/drafts/edition-79.md | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index 73852804fc..5c2d6081d5 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -86,12 +86,48 @@ This edition covers what happened during the month of August 2021. ## Other News __Various__ +* [3 Reasons to Upgrade Git For The First Time Ever](https://dev.to/swyx/3-reasons-to-upgrade-git-2bj3) + by swyx on DEV.to. +* [Emacs discusses web-based development workflows](https://lwn.net/Articles/867956/) + by Jake Edge on LWN.net. __Light reading__ +* [Ship / Show / Ask: A modern branching strategy](https://martinfowler.com/articles/ship-show-ask.html) + by Rouan Wilsenach on martinFowler.com, showing different ways of doing + Continuous Integration with Pull Request workflow, and explaining when + to use which method. +* [GitHub merges 'useless garbage' says Linus Torvalds (as new NTFS support added to Linux kernel 5.15)](https://www.theregister.com/2021/09/06/github_merges_useless_garbage_says/) + by Tim Anderson in The Register. +* [How to Protect Your Private Email Addresses in Git & GitHub?](https://www.geeksforgeeks.org/how-to-protect-your-private-email-addresses-in-git-github/) + on GeeksforGeeks (GitHub specific with respect to hiding your email while + still counting your contributions). +* [Advanced Git Workflow Tips](https://blog.jetbrains.com/dotnet/2021/09/13/advanced-git-workflow-tips/) + by Khalid Abuhakmeh on JetBrains' The .NET Tools Blog, additionally explaining + how to do the steps from [Rider](https://www.jetbrains.com/rider/)’s .NET IDE UI. +* [Increasing developer happiness with GitHub code scanning](https://github.blog/2021-09-07-increasing-developer-happiness-github-code-scanning/) + by Sam Partington on the GitHub Blog; the examples use the Go language. + [GitHub code scanning](https://github.blog/2021-09-07-increasing-developer-happiness-github-code-scanning/) + uses [CodeQL](https://securitylab.github.com/tools/codeql/) semantic code analysis engine. +* [GitHub Workflow, Merge and Rebase](https://dev.to/aarondski/github-workflow-merge-and-rebase-1cig), + actually about Git more than about GitHub, by AaronDski on DEV.to. +* [How to Use Git Hooks For Commit Automation](https://www.cloudsavvyit.com/14036/how-to-use-git-hooks-for-commit-automation/) + by Anthony Heddings on CloudSavvy IT. +* [Run RuboCop on `git commit` with Overcommit Gem](https://prabinpoudel.com.np/articles/run-rubocop-on-git-commit-with-overcommit-gem/) + by Prabin Poudel on his blog. [Overcommit gem](https://github.com/sds/overcommit) + was mentioned in [Git Rev News #63](https://git.github.io/rev_news/2020/05/28/edition-63/), + along various other hook management tools. __Git tools and sites__ +* [Glean](https://glean.software/): System for collecting, deriving and querying facts about source code. +* [5 JetBrains plugins to upgrade the built-in Git support to the next level!](https://dev.to/anotherdevuser/5-jetbrains-plugins-to-upgrade-the-builtin-git-support-to-the-next-level-3ojf) + by Thomas Scott on DEV.to. Similar list for Visual Studio Code was + presented in [Git Rev News Edition #77](https://git.github.io/rev_news/2021/07/31/edition-77/). +* [GitHub Web Editor: FREE VSCode in the browser](https://dev.to/github/vscode-in-the-browser-for-free-github-web-editor-k4h) + by Davide 'CoderDave' Benvegnù on DEV.to, about the lightweight code editor, + based on Visual Studio Code (VSCode), that is a part of [GitHub Codespaces](https://dev.to/github/github-codespaces-ga-any-good-reviewed-and-tested-3e62). + The GitHub Codespaces project was mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). ## Credits From 7fdf7be187c0b1f10af8ef9ea37cfa118200532e Mon Sep 17 00:00:00 2001 From: ZheNing Hu Date: Thu, 23 Sep 2021 13:50:35 +0800 Subject: [PATCH 0123/1248] Add a new Outreachy-23 micro-project --- Outreachy-23-Microprojects.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Outreachy-23-Microprojects.md b/Outreachy-23-Microprojects.md index 7858b4af66..9f82653366 100644 --- a/Outreachy-23-Microprojects.md +++ b/Outreachy-23-Microprojects.md @@ -88,3 +88,25 @@ 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. + +### Add --no-sort option for git-for-each-ref + +In "git for-each-ref", `ref_array_sort()` is used to sort ref_array with +sorting options. Even if the user does not provide any `--sort` option, +`ref_default_sorting()` will also provide the default sorting options with +the sort key "refname". + +But it turns out that the ref_array we get through `filter_refs()` is +already sorted by "refname". So providing a `--no-sort` option may +improve the performance of git for-each-ref when we don't provide any +sorting options on the command line. [thread](https://lore.kernel.org/git/YTNpeH+jO0zQgAVT@coredump.intra.peff.net/), +[thread](https://lore.kernel.org/git/YTTARcEvpXWSDfYW@coredump.intra.peff.net/) + +But the `--no-sort` option seems to be disabled in "git for-each-ref", +see "NEEDWORK" hint in `parse_opt_ref_sorting()`. You may need a new +list api to replace the original linked list implementation for ref_sorting. +You can refer to the implementation of this patch: +[thread](https://lore.kernel.org/git/e68635cda515a9cd504c1d7366e9c353ab2adb2e.1629882532.git.gitgitgadget@gmail.com/) + +You can use t/perf for performance testing between upstream and your patches. +[t/perf/README](https://github.com/git/git/blob/master/t/perf/README) \ No newline at end of file From 8ef25182ee79cf99cb73168832d1d6ec932e1eaa Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 25 Sep 2021 04:51:13 +0200 Subject: [PATCH 0124/1248] rn-79: add releases --- rev_news/drafts/edition-79.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index 5c2d6081d5..fb0e35c793 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -82,6 +82,24 @@ This edition covers what happened during the month of August 2021. ## Releases ++ libgit2 [1.2.0](https://github.com/libgit2/libgit2/releases/tag/v1.2.0) ++ GitLab [13.12.12](https://about.gitlab.com/releases/2021/09/22/gitlab-13-12-12-released/), +[14.3](https://about.gitlab.com/releases/2021/09/22/gitlab-14-3-released/), +[14.2.4](https://about.gitlab.com/releases/2021/09/17/gitlab-14-2-4-released/), +[13.12.11](https://about.gitlab.com/releases/2021/09/02/gitlab-13-12-11-released/), +[14.0.10](https://about.gitlab.com/releases/2021/09/02/gitlab-14-0-10-released/), +[14.2.3](https://about.gitlab.com/releases/2021/09/01/gitlab-14-2-3-released/), +[14.2.2, 14.1.4, and 14.0.9](https://about.gitlab.com/releases/2021/08/31/security-release-gitlab-14-2-2-released/) ++ Bitbucket Server [7.16](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ GitHub Enterprise [3.1.8](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.8), +[3.0.16](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.16), +[2.22.22](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.22), +[3.2.0](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.0), +[3.1.7](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.7), +[3.0.15](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.15), +[2.22.21](https://help.github.com/enterprise-server@2.22/admin/release-notes#2.22.21) ++ GitKraken [8.0.0](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [2.9.3](https://desktop.github.com/release-notes/) ## Other News From cfc663ecbe0a861363f81ee1d3aa366898aebba0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 28 Sep 2021 14:20:56 +0200 Subject: [PATCH 0125/1248] rn-79: add dangling branches article --- rev_news/drafts/edition-79.md | 92 ++++++++++++++++++++++++++++++++++- 1 file changed, 90 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index fb0e35c793..eb0e1ceec3 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -25,9 +25,97 @@ This edition covers what happened during the month of August 2021. ### Reviews --> - + +* [bug in `git fsck`?](https://public-inbox.org/git/60DF1C22020000A100042225@gwsmtp.uni-regensburg.de/) + + Last July, Ulrich Windl asked the mailing list whether `git fsck` + should be able to cleanup orphaned branches. He pointed to + [a question he asked on StackOverflow](https://stackoverflow.com/questions/68226081/how-to-recover-head-problems-in-filtered-repository) + as he wanted to get rid of obsolete branches after filtering a repo. + + `git fsck` was complaining about a branch called `bitmap-generic` + saying `notice: HEAD points to an unborn branch (bitmap-generic)`, + because that branch was pointing to a commit that didn't exist + anymore after filtering the repo, and he couldn't delete that branch + as `git branch -d` errored out with `fatal: Couldn't look up commit + object for HEAD`. + + Junio Hamano replied to Ulrich that "HEAD pointing at an unborn + branch is not even a corruption", as that's what happen to the + default branch when a repo is initialized. + + Ulrich replied that he might have been confused by `git fsck` and + suggested updating the documentation to explain what "unborn" + means. Ævar Arnfjörð Bjarmason then agreed with Ulrich that "fsck's + error messages/reporting is pretty bad". He said that he had been + working on it though. + + Meanwhile René Scharfe replied to Junio saying that `git branch -D` + (`-D` is a shortcut for `--delete --force`) should delete a branch + pointing to an inexisting commit, instead of requiring users to + first reset the branch to some known commit using + `git branch --force` and then to delete it with `git branch --delete`. + In this reply René even provided a patch called `branch: allow deleting + dangling branches with --force` that implemented what he suggested. + + Ulrich and René then discussed how to actually force a branch so + that it can then be deleted. The issue was that Ulrich tried to + force the dangling branch, using `git branch --force bitmap-generic` + when the current branch wasn't a valid one, so the dangling branch + wasn't restored to a valid commit. + + To René's patch, Junio replied that he felt the filtering process + Ulrich used shoudn't have left dangling branches hanging around in + the first place. He agreed though that it should be easy to recover + from "such a deliberate repository corruption". + + René's patch then fell through the cracks for several weeks, until + the end of August when + [René resent it](https://public-inbox.org/git/7894f736-4681-7656-e2d4-5945d2c71d31@web.de/). + + Junio replied that the test in René's patch went "against the + spirit" of a recently merged patch series by Han-Wen Nienhuys that + was preparing tests for the new `reftable` ref backend. + + The [reftable backend](https://www.git-scm.com/docs/reftable) was + initially [proposed and developed](https://lore.kernel.org/git/CAJo=hJtyof=HRy=2sLP0ng0uZ4=S-DpZ5dR1aF+VHVETKG20OQ@mail.gmail.com/) + in 2017 by Shawn Pearce. An implementation of it has then been integrated in + [JGit](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/refs/heads/master/Documentation/technical/reftable.md), + and Han-Wen has been working for sometime on versions of this backend + for Git and libgit2. + + Junio suggested to change parts of the test that were creating or + testing refs to use higher functions to manipulate refs, instead of + directly manipulating loose ref files like + `.git/refs/heads/dangling`. + + Junio, Ævar, Han-Wen, Ulrich and René then discussed different ways + to change the test, like using the `REFFILES` test + prerequisite. They wondered if such a dangling ref could also happen + with the reftable backend. But it seemed that it could indeed + happen. + + Han-Wen suggested the ref-store test-helper's `update-ref` command + to manipulate refs instead. Ulrich proposed implementing a new + `--disarm-safety-belt` option to disable checks for testing + purposes. Ævar suggested a work around using an alternate object + directory. + + Meanwhile Ævar commented a bit on René's resent patch. And René + replied to the comments, especially noting that `git tag -d` would + delete a dangling tag even without `--force`. + + René then sent [a version 2](https://public-inbox.org/git/325d64e9-8a31-6ba0-73f2-5e9d67b8682f@web.de/) + of his resent patch with an updated test that was now + independent from any ref backend. + + Junio, Ævar and René discussed the patch a bit more, after which René sent + [a version 3](https://public-inbox.org/git/c192f438-2eaf-c098-9fe4-c03a9d36cbd0@web.de/) + with a few more improvements to the test. + + As this version of the patch has since been merged into the master + branch, Git will soon allow to more easily delete dangling branches. ## Developer Spotlight: Josh Steadmon From 0b12dc23fb79e867c50b07ee9bb45bf65362a67e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 28 Sep 2021 14:38:56 +0200 Subject: [PATCH 0126/1248] rn-79: change publication date to 2021-09-30 --- rev_news/drafts/edition-79.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index eb0e1ceec3..45dfc121c5 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 79 (September 22nd, 2021) +title: Git Rev News Edition 79 (September 30th, 2021) layout: default -date: 2021-09-22 12:06:51 +0100 +date: 2021-09-30 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 79 (September 22nd, 2021) +## Git Rev News: Edition 79 (September 30th, 2021) 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 From 8ee8cebf1a0cca6071604c86abcefa1bc0455876 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 28 Sep 2021 14:40:47 +0200 Subject: [PATCH 0127/1248] rn-79: add Josh Steadmon among the helpers --- rev_news/drafts/edition-79.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index 45dfc121c5..c8ef3e84d5 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -243,4 +243,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Josh Steadmon. From 6c207822482d7081cb780f89e5b4b75d65463a2d Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 28 Sep 2021 23:57:17 +0200 Subject: [PATCH 0128/1248] Added some tiny fixes as usual. --- rev_news/drafts/edition-79.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index c8ef3e84d5..620713ac47 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -53,20 +53,20 @@ This edition covers what happened during the month of August 2021. Meanwhile René Scharfe replied to Junio saying that `git branch -D` (`-D` is a shortcut for `--delete --force`) should delete a branch - pointing to an inexisting commit, instead of requiring users to + pointing to an unexisting commit, instead of requiring users to first reset the branch to some known commit using `git branch --force` and then to delete it with `git branch --delete`. In this reply René even provided a patch called `branch: allow deleting dangling branches with --force` that implemented what he suggested. - Ulrich and René then discussed how to actually force a branch so + Ulrich and René then discussed how to actually force a branch in a way that it can then be deleted. The issue was that Ulrich tried to force the dangling branch, using `git branch --force bitmap-generic` when the current branch wasn't a valid one, so the dangling branch wasn't restored to a valid commit. To René's patch, Junio replied that he felt the filtering process - Ulrich used shoudn't have left dangling branches hanging around in + Ulrich used shouldn't have left dangling branches hanging around in the first place. He agreed though that it should be easy to recover from "such a deliberate repository corruption". @@ -82,7 +82,7 @@ This edition covers what happened during the month of August 2021. initially [proposed and developed](https://lore.kernel.org/git/CAJo=hJtyof=HRy=2sLP0ng0uZ4=S-DpZ5dR1aF+VHVETKG20OQ@mail.gmail.com/) in 2017 by Shawn Pearce. An implementation of it has then been integrated in [JGit](https://git.eclipse.org/r/plugins/gitiles/jgit/jgit/+/refs/heads/master/Documentation/technical/reftable.md), - and Han-Wen has been working for sometime on versions of this backend + and Han-Wen has been working for some time on versions of this backend for Git and libgit2. Junio suggested to change parts of the test that were creating or @@ -93,13 +93,13 @@ This edition covers what happened during the month of August 2021. Junio, Ævar, Han-Wen, Ulrich and René then discussed different ways to change the test, like using the `REFFILES` test prerequisite. They wondered if such a dangling ref could also happen - with the reftable backend. But it seemed that it could indeed + with the reftable backend, and it seemed that this could indeed happen. Han-Wen suggested the ref-store test-helper's `update-ref` command to manipulate refs instead. Ulrich proposed implementing a new `--disarm-safety-belt` option to disable checks for testing - purposes. Ævar suggested a work around using an alternate object + purposes. Ævar suggested a workaround using an alternate object directory. Meanwhile Ævar commented a bit on René's resent patch. And René @@ -115,7 +115,7 @@ This edition covers what happened during the month of August 2021. with a few more improvements to the test. As this version of the patch has since been merged into the master - branch, Git will soon allow to more easily delete dangling branches. + branch, Git will soon allow to delete dangling branches more easily. ## Developer Spotlight: Josh Steadmon @@ -201,7 +201,7 @@ __Various__ __Light reading__ * [Ship / Show / Ask: A modern branching strategy](https://martinfowler.com/articles/ship-show-ask.html) by Rouan Wilsenach on martinFowler.com, showing different ways of doing - Continuous Integration with Pull Request workflow, and explaining when + Continuous Integration with a Pull Request workflow, and explaining when to use which method. * [GitHub merges 'useless garbage' says Linus Torvalds (as new NTFS support added to Linux kernel 5.15)](https://www.theregister.com/2021/09/06/github_merges_useless_garbage_says/) by Tim Anderson in The Register. @@ -210,13 +210,13 @@ __Light reading__ still counting your contributions). * [Advanced Git Workflow Tips](https://blog.jetbrains.com/dotnet/2021/09/13/advanced-git-workflow-tips/) by Khalid Abuhakmeh on JetBrains' The .NET Tools Blog, additionally explaining - how to do the steps from [Rider](https://www.jetbrains.com/rider/)’s .NET IDE UI. + how to perform the actions from [Rider](https://www.jetbrains.com/rider/)’s .NET IDE UI. * [Increasing developer happiness with GitHub code scanning](https://github.blog/2021-09-07-increasing-developer-happiness-github-code-scanning/) by Sam Partington on the GitHub Blog; the examples use the Go language. [GitHub code scanning](https://github.blog/2021-09-07-increasing-developer-happiness-github-code-scanning/) - uses [CodeQL](https://securitylab.github.com/tools/codeql/) semantic code analysis engine. + uses the [CodeQL](https://securitylab.github.com/tools/codeql/) semantic code analysis engine. * [GitHub Workflow, Merge and Rebase](https://dev.to/aarondski/github-workflow-merge-and-rebase-1cig), - actually about Git more than about GitHub, by AaronDski on DEV.to. + actually more about Git than about GitHub, by AaronDski on DEV.to. * [How to Use Git Hooks For Commit Automation](https://www.cloudsavvyit.com/14036/how-to-use-git-hooks-for-commit-automation/) by Anthony Heddings on CloudSavvy IT. * [Run RuboCop on `git commit` with Overcommit Gem](https://prabinpoudel.com.np/articles/run-rubocop-on-git-commit-with-overcommit-gem/) @@ -228,7 +228,7 @@ __Light reading__ __Git tools and sites__ * [Glean](https://glean.software/): System for collecting, deriving and querying facts about source code. * [5 JetBrains plugins to upgrade the built-in Git support to the next level!](https://dev.to/anotherdevuser/5-jetbrains-plugins-to-upgrade-the-builtin-git-support-to-the-next-level-3ojf) - by Thomas Scott on DEV.to. Similar list for Visual Studio Code was + by Thomas Scott on DEV.to. A similar list for Visual Studio Code was presented in [Git Rev News Edition #77](https://git.github.io/rev_news/2021/07/31/edition-77/). * [GitHub Web Editor: FREE VSCode in the browser](https://dev.to/github/vscode-in-the-browser-for-free-github-web-editor-k4h) by Davide 'CoderDave' Benvegnù on DEV.to, about the lightweight code editor, From 5343c20b269ff76287005a428d0716ad93778ee4 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Wed, 29 Sep 2021 08:48:41 -0700 Subject: [PATCH 0129/1248] rn-79: link to final blog post on optimizing Git's merge machinery --- rev_news/drafts/edition-79.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index 620713ac47..8ba83561e4 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -199,6 +199,7 @@ __Various__ __Light reading__ +* [Optimizing Git’s Merge Machinery, Part VI](https://blog.palantir.com/optimizing-gits-merge-machinery-6-7bf887a131d8) by Elijah Newren on Palantir Blog, the final in the series. * [Ship / Show / Ask: A modern branching strategy](https://martinfowler.com/articles/ship-show-ask.html) by Rouan Wilsenach on martinFowler.com, showing different ways of doing Continuous Integration with a Pull Request workflow, and explaining when From de2f269657eead023b61ad3e02db2aa748676688 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 29 Sep 2021 18:46:05 +0200 Subject: [PATCH 0130/1248] rn-79: add Elijah Newren among the helpers --- rev_news/drafts/edition-79.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-79.md b/rev_news/drafts/edition-79.md index 8ba83561e4..2f2d20a1c7 100644 --- a/rev_news/drafts/edition-79.md +++ b/rev_news/drafts/edition-79.md @@ -244,4 +244,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Josh Steadmon. +with help from Josh Steadmon and Elijah Newren. From 2de895d000a3f26c43d5c21076bb81e87cbcf998 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Sep 2021 14:34:08 +0200 Subject: [PATCH 0131/1248] Publish rn-79 in _posts/ --- .../drafts/edition-79.md => _posts/2021-09-30-edition-79.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-79.md => _posts/2021-09-30-edition-79.markdown (100%) diff --git a/rev_news/drafts/edition-79.md b/_posts/2021-09-30-edition-79.markdown similarity index 100% rename from rev_news/drafts/edition-79.md rename to _posts/2021-09-30-edition-79.markdown From 545eb6d1e6354e75cd0be38f02dc4ce493e9bc08 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Sep 2021 14:34:08 +0200 Subject: [PATCH 0132/1248] Add draft for rn-80 --- rev_news/drafts/edition-80.md | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 rev_news/drafts/edition-80.md diff --git a/rev_news/drafts/edition-80.md b/rev_news/drafts/edition-80.md new file mode 100644 index 0000000000..61a6d2f762 --- /dev/null +++ b/rev_news/drafts/edition-80.md @@ -0,0 +1,57 @@ +--- +title: Git Rev News Edition 80 (October 27th, 2021) +layout: default +date: 2021-10-27 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 80 (October 27th, 2021) + +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). + +This edition covers what happened during the month of September 2021. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 956f4989b160d61732979e35e0462bf5c05ea6e1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Sep 2021 14:42:13 +0200 Subject: [PATCH 0133/1248] rn-79: add Philip Oakley's links --- _posts/2021-09-30-edition-79.markdown | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_posts/2021-09-30-edition-79.markdown b/_posts/2021-09-30-edition-79.markdown index 2f2d20a1c7..d55be85120 100644 --- a/_posts/2021-09-30-edition-79.markdown +++ b/_posts/2021-09-30-edition-79.markdown @@ -224,6 +224,11 @@ __Light reading__ by Prabin Poudel on his blog. [Overcommit gem](https://github.com/sds/overcommit) was mentioned in [Git Rev News #63](https://git.github.io/rev_news/2020/05/28/edition-63/), along various other hook management tools. +* [Git Flow Is A Bad Idea](https://www.youtube.com/watch?v=_w6TwnLCFwA) video by Dave Farley of Continuous Delivery. + An interesting perspective on the Git branching model. Worth reflecting on the underlying assumptions + and management approaches that make Git branches such a bad idea, in that particular context. +* [Full Git Tutorial](https://www.youtube.com/watch?v=58zsLtwzL60). Basics for the new user. + Leap to Part 7 for the `Git Log Fully Explained`. __Git tools and sites__ @@ -244,4 +249,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Josh Steadmon and Elijah Newren. +with help from Josh Steadmon, Elijah Newren and +Philip Oakley. From b231fe894e7a7246ebb9bcdbccba45f26588ec9d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 30 Sep 2021 15:08:24 +0200 Subject: [PATCH 0134/1248] rn-79: add GSoC 2021 article --- _posts/2021-09-30-edition-79.markdown | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/_posts/2021-09-30-edition-79.markdown b/_posts/2021-09-30-edition-79.markdown index d55be85120..cfe6b528b8 100644 --- a/_posts/2021-09-30-edition-79.markdown +++ b/_posts/2021-09-30-edition-79.markdown @@ -17,9 +17,24 @@ This edition covers what happened during the month of August 2021. ## Discussions - + +* [GSoC (Google Summer of Code) 2021 End](https://summerofcode.withgoogle.com/organizations/5908380398387200/#projects) + + Congratulations to the two students who had been accepted to work on + Git as part of the [GSoC 2021](https://summerofcode.withgoogle.com/) + as they successfully passed all the evaluations! + + - Atharva Raykar worked on the + [Finish converting submodule to builtin](https://summerofcode.withgoogle.com/projects/#4754589292691456) + project. He was co-mentored by Shourya Shukla and Christian Couder. He posted 2 final blog posts about it, + some [Reflections on Working With the Git Community](https://atharvaraykar.me/gitnotes/final-reflection) + and a [Technical Report](https://atharvaraykar.me/gitnotes/final-report). + + - ZheNing Hu worked on the + [Use ref-filter formats in `git cat-file`](https://summerofcode.withgoogle.com/projects/#6499923274498048) + project. He was co-mentored by Hariom Verma and Christian Couder and posted + [a final blog post about it](https://adlternative.github.io/GSOC-Git-Final-Blog/). - + +## Developer Spotlight: David Aguilar + +* Who are you and what do you do? + + My name is David Aguilar and I work as a Staff Software Engineer - + Architecture Lead for a small team of devops and infrastructure + engineers at the Walt Disney Animation Studios. Outside of work I'm a + husband and a caretaker, so my time is usually pretty occupied these + days. + + Cats, art, music and mountain biking are a few of my favorite things + outside of the usual technical topics. + +* What would you name your most important contribution to Git? + + We started adopting Git as our VCS of choice relatively early in Git's + history around 2007 at Disney Animation. One of the things that I + tried to do early on was to listen to some of the loudest and most + vocal critics and get to the root of their complaints about Git at the + time. + + One of the tools that fell out of this was `git difftool`. The + criticism at the time was along the lines of, "I can't believe Git is + missing such a fundamentally basic workflow that even tkcvs / tkdifff + have". Git already had `git mergetool` for helping resolve merge + conflicts at the time, so adding support for diff workflows seemed + like a natural extension of Git's capabilities. + + The original difftool RFC patches started as a crude shell script that + drove the diff itself and handled interacting with external diff tools + directly. Feedback from the Git mailing list improved it by making it + use git diff's `GIT_EXTERNAL_DIFF` functionality when it first landed in + git.git's contrib/ area. difftool eventually graduated out of contrib/ + to become a builtin tool, and its implementation was heavily + refactored so that it can share all of its tool-specific + implementation details with `git mergetool`. + + Mergetool and difftool are a small yet key part of day-to-day Git + usage for many developers and is a great example of a general internal + need that was best addressed by proposing a solution to the Git + development community so that it can be evolved and improved alongside + Git. + +* What are you doing on the Git project these days, and why? + + Beyond difftool, I'm the author and maintainer of [Git Cola](https://git-cola.github.io/), + a powerful yet simple GUI for Git [[source code](https://github.com/git-cola/git-cola/)]. + + Git Cola started as a learning project. I wanted to better learn PyQt + and Git in 2007, and creating a user interface for Git's unique and + powerful staging area features seemed like a perfect project. One of + the features I use very often is its keyboard-driven interactive + staging feature. If you've ever wanted to stage, unstage, and revert + edits at a line-by-line granularity, using a unified interface (no + need to jump between `git add -p` and `git checkout -p`) that is + keyboard-driven with vim-inspired hotkeys for power users that + understand Git and its strengths, then Git Cola might be just the tool + for you. + + Git Cola has been gradually improved over the last 14 years and is + extremely stable and capable these days. It includes everything from a + drag+drop rebase editor (itself reusable as a `GIT_SEQUENCE_EDITOR` that + is provided as a standalone `git-cola-sequence-editor` tool) and + encourages users to leverage Git's unique strengths by making it easy + for new Git users to follow Git "best practices" such as creating + fixup commits and rebasing their work. + + These days I do try to keep an eye on difftool (a big thank you to + Johannes Schindelin for rewriting difftool in C in the context of the + Git for Windows improvements) and continue to improve Git Cola. + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + I would really like to see more effort put into getting the + ideas/improvements from the Microsoft Scalar project integrated into + Core Git. Props should go to Microsoft for working alongside the Git + project towards up-streaming this work. Focusing on the scaling + challenges that come up when working with huge repositories is an area + I am hopeful will continue to improve. Git continues to be perceived + as being "bad at binary files", and "not industrial-grade like + perforce" by the GameDev community, and that's something that can + definitely be improved. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + Submodules are useful and serve a specific use case, but working with + them involves a lot of little paper cuts that makes them painful for + users that aren't ready to deal with their complexities. + Double-commits (having to commit in the sub and super-project) is one + of the little paper cuts that really shouldn't exist were the + capability to compose and operate on multiple repos intrinsic to Git + itself. This is by no means a simple problem. + + On the bright side, `git submodule` has been getting a lot of + attention recently. I don't think I would remove them without a + compelling replacement in their place. + + Sometimes the downsides of submodules are moreso about how they are + used than how they are implemented. Whenever I encounter a project + that does `git submodule update` or `git clone` in their `make` build + process, I get a bit nervous. That's not really Git's fault, though. + + Transitioning to SHA-256 is an obvious area that would be much simpler + if it didn't have to deal with backwards compatibility. + +* What is your favorite Git-related tool/library, outside of Git itself? + + Git Cola =) + + [Git Annex](https://git-annex.branchable.com/) is a really great tool + for archival purposes and is what I use for backing up my personal + files. It'd be nice if it didn't have to exist, but I'm very happy + that it does. Git Annex has some concepts that are unique and + different from Git LFS and other solutions in this space. + + I somewhat recently wrote a Git workflow tool for myself that I call + `garden`. [Garden](https://github.com/davvid/garden/) is basically + a glorified way to operate over ad-hoc collections of Git trees. + I wrote it because I have lots of Git Annexes and other repos in + arbitrary places that I often need to iterate over and perform + custom commands or other operations on. `garden` lets me do that. + I'm not sure if anyone would ever find it useful, but I wrote + it for myself so that's okay. + + I often find myself cloning random repos, figuring out how to build + them (lots of projects have bespoke build systems), and then later + figuring out how to run and interact with the repo. I used to have a + smattering of shell scripts to build and run various projects. I now + use `garden` for holding all of these disparate bits in a single place + so that the workflows become easier to transport (and store in Git). + URLs, multiple worktrees, the remotes associated with each worktree + (useful for recreating a worktree with dozens of remotes from + contributors) and custom commands for operating in the context of the + worktrees can all be grouped together into a single "garden file" that + can be shared and reproduced on another machine. + +* Do you happen to have any memorable experience w.r.t contributing to the + Git project? If yes, could you share it with us? + + I personally learned a lot from the Git development community. The + review process is one that focuses on quality and perfection (Git + doesn't settle for "good enough") with a strong eye towards + maintainability and not breaking existing users. The Git project + teaches us to create commits that are reviewable, to make independent, + logically-separate changes, and to describe our changes well. These + principles, alongside the idea that all code should be reviewed and + collaborated on, is something that has helped transform our internal + development processes. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + If you've never built Git yourself from scratch then the quickest way + to get started is to clone the repo and run `make`. Start looking + around the code base, read the `git log` messages, and start reading + the new contributor documentation in the Documentation/ folder. + + A lot of effort has been put into making it easier to contribute to + Git itself, but the community won't know about any of the pain points + unless you reach out and illuminate what might be blind spots in our + practices. + + Setup your mail filters and subscribe to the Git mailing list once + you're ready to start diving deeper. There is a lot of activity, but + there's also no shortage of things you can learn by reaching out and + engaging with the community. ## Releases From f0ff989c5649cba30dca85613ae3d6b77df698df Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 28 Oct 2021 14:32:51 +0200 Subject: [PATCH 0142/1248] rn-80: add range-diff article --- rev_news/drafts/edition-80.md | 71 ++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-80.md b/rev_news/drafts/edition-80.md index d1d2f9b676..acc8e09b69 100644 --- a/rev_news/drafts/edition-80.md +++ b/rev_news/drafts/edition-80.md @@ -21,9 +21,76 @@ This edition covers what happened during the month of September 2021. ### General --> - + +* [[PATCH] MyFirstContribution: Document --range-diff option when writing v2](https://lore.kernel.org/git/20210913194816.51182-1-chooglen@google.com/) + + Glen Choo sent a patch to the mailing list to improve the + `Documentation/MyFirstContribution.txt` tutorial, so that it + suggests using the `--range-diff` option of `git format-patch` when + sending a new v2 version of an already sent patch series. + + The `Documentation/MyFirstContribution.txt` tutorial was initially + created by Emily Shaffer in 2019, and has been a popular way for + developers to start learning how to improve Git. + + Eric Sunshine agreed with Glen's idea, but made a few comments on + some minor issues, like using `--range-diff=psuh` over `--range-diff + psuh..psuh-v2` and adding a link to the `git range-diff` + documentation. + + Junio Hamano, the Git maintainer, also replied to Glen, saying that + the tutorial should promote a slightly different workflow to work on + an updated branch. + + He suggested creating a topic branch or a lightweight tag called for + example `psuh-v1` that points to the old tip of the `psuh` branch + and continuing to work on the `psuh` branch to prepare the version 2 + of a patch series, instead of creating and working on a `psuh-v2` + branch. + + He also commented that the commands given in the tutorial might not + work well when the branch corresponding to the first and second + patch series had the same commits after diverging from the `master` + branch. + + Glen agreed with Junio's suggestion, though they discussed it a bit + further. + + Bagas Sanjaya replied to Glen initial email saying he wasn't sure + that the `--range-diff` option was necessary, but Eric disagreed + with him saying: + + "Anyone who does any serious amount of review on this project finds + it tremendously helpful to have both a prose description of the + changes ("Changes since v1..." plus a link to the previous + submission) and a mechanical range-diff or interdiff." + + Glen then sent a + [version 2 of his patch](https://lore.kernel.org/git/20210920223226.25877-1-chooglen@google.com/). + that took into account Junio's and Eric's suggestions. Especially it + recommend marking the tip of the `psuh` branch corresponding to + version 1 and continuing to work on the `psuh` branch to prepare the + version 2. + + Eric Sunshine replied to this new patch with a number of suggestions + to improve some wordings and explanations. Glen agreed with Erics + suggestions. + + Bagas then suggested creating a `psuh-v2` branch and continuing to + work on it, but this was against what Junio had suggested earlier, + so Glen didn't agree with that. He agreed with a wording improvement + that Bagas made though. + + Philip Oakley chimed in to discuss some wording when the version + number would change again later to 3, 4, etc. But after further + discussion with Glen and Bagas, he agreed with the original wording. + + Glen then sent a + [version 3 of his patch](https://lore.kernel.org/git/20210922202218.7986-1-chooglen@google.com/) + taking into account Eric's and Bagas' suggestions. This version of + the patch was later merged into the `master` branch, so we can now + enjoy a better tutorial explaining an improved workflow. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 48da7f3c0a273081b63dbc075707a24388bd4d0a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 31 Oct 2021 07:17:23 +0100 Subject: [PATCH 0150/1248] rn-80: missing '.' after 'podcast' --- _posts/2021-10-31-edition-80.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-10-31-edition-80.markdown b/_posts/2021-10-31-edition-80.markdown index 9e3b5d206e..e622763c56 100644 --- a/_posts/2021-10-31-edition-80.markdown +++ b/_posts/2021-10-31-edition-80.markdown @@ -296,7 +296,7 @@ __Various__ a thread by Johannes Schindelin. * One of the topics was having public "Git chalk talks", an idea which [has now its own thread](https://public-inbox.org/git/nycvar.QRO.7.76.6.2110220950020.62@tvgsbejvaqbjf.bet/t/#u). -* [Software at Scale 35 - Maintaining Git \[for Windows\] with Johannes Schindelin](https://www.softwareatscale.dev/p/software-at-scale-35-maintaining), a podcast +* [Software at Scale 35 - Maintaining Git \[for Windows\] with Johannes Schindelin](https://www.softwareatscale.dev/p/software-at-scale-35-maintaining ), a podcast. __Light reading__ From e592fe9e7ba1f893f93ec85f58bfcbfa891837b8 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Mon, 8 Nov 2021 16:41:00 +0100 Subject: [PATCH 0151/1248] Rev News: link to Stolee's and Lessley's newest talk Signed-off-by: Johannes Schindelin --- rev_news/drafts/edition-81.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-81.md b/rev_news/drafts/edition-81.md index faab40bdca..ce6f48f993 100644 --- a/rev_news/drafts/edition-81.md +++ b/rev_news/drafts/edition-81.md @@ -40,6 +40,7 @@ This edition covers what happened during the month of October 2021. __Various__ +* Derrick Stolee and Lessley Dennington [talk about the future of Git at scale](https://www.youtube.com/watch?v=pXdabSCz4JA). __Light reading__ From 6e70e5ed7fb4dffce85135b6a557e00ef6ca57c3 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 23 Nov 2021 10:12:34 +0100 Subject: [PATCH 0152/1248] rn-81: add releases --- rev_news/drafts/edition-81.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/rev_news/drafts/edition-81.md b/rev_news/drafts/edition-81.md index ce6f48f993..d6b02bb365 100644 --- a/rev_news/drafts/edition-81.md +++ b/rev_news/drafts/edition-81.md @@ -35,6 +35,33 @@ This edition covers what happened during the month of October 2021. ## Releases ++ Git [2.34.0](https://public-inbox.org/git/xmqq8rxpgwki.fsf@gitster.g/), +[2.34.0-rc2](https://public-inbox.org/git/xmqq4k8kzuz2.fsf@gitster.g/), +[2.34.0-rc1](https://public-inbox.org/git/xmqqsfwc4yne.fsf@gitster.g/), +[2.34.0-rc0](https://public-inbox.org/git/xmqqwnlve57e.fsf@gitster.g/) ++ Git for Windows [2.34.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.34.0.windows.1), +[2.34.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.34.0-rc2.windows.1), +[2.34.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.34.0-rc1.windows.1), +[2.34.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.34.0-rc0.windows.1) ++ Bitbucket Server [7.18](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ GitHub Enterprise [3.3.0](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.0), +[3.2.3](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.3), +[3.1.11](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.11), +[3.0.19](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.19), +[3.2.2](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.2), +[3.1.10](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.10), +[3.0.18](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.18) ++ GitLab [14.5](https://about.gitlab.com/releases/2021/11/22/gitlab-14-5-released/) +[14.1.8](https://about.gitlab.com/releases/2021/11/15/gitlab-14-1-8-released/), +[14.4.2](https://about.gitlab.com/releases/2021/11/08/gitlab-14-4-2-released/), +[14.0.12](https://about.gitlab.com/releases/2021/11/05/gitlab-14-0-12-released/), +[13.12.15](https://about.gitlab.com/releases/2021/11/03/gitlab-13-12-15-released/), +[14.4.1, 14.3.4, and 14.2.6](https://about.gitlab.com/releases/2021/10/28/security-release-gitlab-14-4-1-released/) ++ Gerrit Code Review [3.4.2](https://www.gerritcodereview.com/3.4.html#342), +[3.3.8](https://www.gerritcodereview.com/3.3.html#338), +[3.2.14](https://www.gerritcodereview.com/3.2.html#3214), +[2.16.28](https://www.gerritcodereview.com/2.16.html#21628) ++ GitKraken [8.1.1](https://support.gitkraken.com/release-notes/current) ## Other News From 9debd04260983b3eebb42f77a633f1f6780a8040 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 25 Nov 2021 01:46:27 +0100 Subject: [PATCH 0153/1248] rn-81: Add links to various news, articles, sites and tools --- rev_news/drafts/edition-81.md | 63 +++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/rev_news/drafts/edition-81.md b/rev_news/drafts/edition-81.md index d6b02bb365..1a06e7c387 100644 --- a/rev_news/drafts/edition-81.md +++ b/rev_news/drafts/edition-81.md @@ -68,12 +68,75 @@ This edition covers what happened during the month of October 2021. __Various__ * Derrick Stolee and Lessley Dennington [talk about the future of Git at scale](https://www.youtube.com/watch?v=pXdabSCz4JA). +* [Highlights from Git 2.34](https://github.blog/2021-11-15-highlights-from-git-2-34/) + by Taylor Blau on GitHub Blog, and + [Git 2.34 sets new merge default, speeds things up for monorepo users](https://devclass.com/2021/11/17/version-control-git-2_34/) + by Julia Schmidt on Dev Class. +* [Require pull requests without requiring reviews](https://github.blog/changelog/2021-11-10-require-pull-requests-without-requiring-reviews/) on GitHub. +* [Deprecating Atlassian account password for Bitbucket API and Git activity](https://bitbucket.org/blog/deprecating-atlassian-account-password-for-bitbucket-api-and-git-activity) + (for Git over HTTPS), on Bitbucket. __Light reading__ +* [Get lazy with lazygit](https://dev.to/tahsinature/get-lazy-with-lazygit-4h37) by Tahsin on DEV.to. + [Lazygit](https://github.com/jesseduffield/lazygit) was first mentioned in [Git Rev News Edition #42 (August 22nd, 2018)](https://git.github.io/rev_news/2018/08/22/edition-42/). +* [Should You Use HTTPS or SSH For Git?](https://www.cloudsavvyit.com/14822/should-you-use-https-or-ssh-for-git/) + by Anthony Heddings on Cloud Savvy IT. +* [How To Switch a GitHub Repository to SSH Authentication](https://www.cloudsavvyit.com/14747/how-to-switch-a-github-repository-to-ssh-authentication/) + by Anthony Heddings on Cloud Savvy IT. +* [5 Underrated [free] resources to learn Git and GitHub](https://dev.to/ifrah/5-underrated-resources-to-learn-git-and-github-4edi) + by ifrah on DEV.to. + * [GitHub Minesweeper](https://profy.dev/project/github-minesweeper) by Profy + was mentioned in [Git Rev News Edition #80 (October 30th, 2021)](https://git.github.io/rev_news/2021/10/30/edition-80/). + * [Oh My Git!](https://ohmygit.org/) game by bleeptrack and blinry + was mentioned in [Git Rev News Edition #72 (February 27th, 2021)](https://git.github.io/rev_news/2021/02/27/edition-72/). +* The “[Advanced Git](https://css-tricks.com/cherry-picking-commits-in-git/)” series + by Tobias Günther on CSS-Tricks, courtesy of Git Tower git client, + (mentioned in [Git Rev News #80](https://git.github.io/rev_news/2021/10/30/edition-80/)), + continues: + * [Better Collaboration With Pull Requests](https://css-tricks.com/better-collaboration-with-pull-requests/) + * [Merge Conflicts: What They Are and How to Deal with Them](https://css-tricks.com/merge-conflicts-what-they-are-and-how-to-deal-with-them) + * [Rebase vs. Merge: Integrating Changes in Git](https://css-tricks.com/rebase-vs-merge-integrating-changes-in-git) + * [Interactive Rebase: Clean up your Commit History](https://css-tricks.com/interactive-rebase-clean-up-your-commit-history) + * [Cherry-Picking Commits in Git](https://css-tricks.com/cherry-picking-commits-in-git) +* [How to become a Git expert!](https://dev.to/sagarbarapatre/how-to-become-a-git-expert-1jl2) + by Sagar Barapatre on DEV.to. +* [What is .gitkeep? How to Track and Push Empty Folders in Git.](https://www.freecodecamp.org/news/what-is-gitkeep/) + by Kealan Parr on freeCodeCamp. +* [How to Write Good Commit Messages with Commitlint](https://www.freecodecamp.org/news/how-to-use-commitlint-to-write-good-commit-messages/) + by Anish De on freeCodeCamp. +* [Removing a .env file from Git history](https://daily-dev-tips.com/posts/removing-a-env-file-from-git-history/) + (or any other accidentally added, committed, and pushed file) + by Chris Bongers on Daily Dev Tips. +* [The case against monorepos](https://www.infoworld.com/article/3638860/the-case-against-monorepos.html) + by Lee Atchison on Info World. + * You can find various arguments for and against monorepos in Git Rev News editions + [#4](https://git.github.io/rev_news/2015/06/03/edition-4/), [#9](https://git.github.io/rev_news/2015/11/11/edition-9/), [#47](https://git.github.io/rev_news/2019/01/23/edition-47/) (pros and cons), [#72](https://git.github.io/rev_news/2021/02/27/edition-72/), [#78](https://git.github.io/rev_news/2021/08/31/edition-78/), + not counting articles about improving the performance of large repositories, like monorepos usually are. +* [How to do pull request reviews](https://dev.to/mage_ai/how-to-do-pull-request-reviews-mm6) + by Mage company on DEV.to. +* [Git Rebase for Preventing Merge Commits](https://dev.to/jenc/git-rebase-for-preventing-merge-commits-2len) + by jen chan on DEV.to. +* [Signed git pushes](https://people.kernel.org/monsieuricon/signed-git-pushes) + by Konstantin Ryabitsev (2020). +* [DeployBot Configuration with Git LFS](https://www.cadonau.net/blog/2020/08/24/deploybot-git-lfs/) + by Markus Cadonau (2020). + __Git tools and sites__ +* [Commitlint](https://commitlint.js.org/#/) is a tool, written in JavaScript and running on Node.js (an npm tool), + that helps your team with adhering to a commit convention. +* [Conventional Changelog](https://github.com/conventional-changelog/conventional-changelog) + is an npm tool to generate changelogs and release notes from a project's commit messages and metadata. +* [Git Command Explorer](https://gitexplorer.com/) is a web application + to help you find the right commands you need + without digging through the web, + made by Summitech company. +* [Arlo's Commit Notation](https://github.com/RefactoringCombos/ArlosCommitNotation) + is a notation for small commits messages that show + the risk involved in each step, and the author's intention, + conveyed in the first 3 characters of the commit summary line. ## Credits From cef46f4166c21be6af0b2540a75512650c416d07 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 27 Nov 2021 09:52:18 +0100 Subject: [PATCH 0154/1248] rn-81: add cpp userdiff article --- rev_news/drafts/edition-81.md | 71 ++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-81.md b/rev_news/drafts/edition-81.md index 1a06e7c387..e969a111dc 100644 --- a/rev_news/drafts/edition-81.md +++ b/rev_news/drafts/edition-81.md @@ -21,9 +21,76 @@ This edition covers what happened during the month of October 2021. ### General --> - + +* [[PATCH 0/3] Fun with cpp word regex](https://lore.kernel.org/git/pull.1054.git.1633589461.gitgitgadget@gmail.com/) + + Johannes Sixt sent a small patch series about improving C++ (also + called 'cpp') support in the userdiff mechanism. This mechanism is + used by Git to generate diffs that are customized to specific + programming languages (like C, shell, Perl, matlab, etc) or markup + languages (like HTML, markdown tex, etc). + + Especially one of the patches splits the regex that was matching all + the numbers into 3 different regexes: + + - one for floatingpoint numbers that begin with a decimal point, + - one for decimal and octal integers as well as other + floatingpoint numbers, and + - one for hexadecimal and binary integers. + + The result is that expressions like `1+2`, `1.5-e+2+f` and `.l` are + not considered numbers any more and are properly parsed for diff + purposes in C++ files. + + Another patch in the series allows single-quote characters as digit + separators like in `3.141'592'654` or `0xdead'beaf` according to the + C++17 standard. + + The third and last patch prevents the `<=>` generalized comparison + operator (also called 'spaceship' operator) allowed since C++20 from + being split into `<=` and `>`. + + Ævar Arnfjörð Bjarmason replied to Johannes suggesting him to add a + few tests in the `t/t4034/cpp/` directory, where test files for the + cpp userdiff mechanism reside. + + Johannes agreed with Ævar and sent a + [second version](https://lore.kernel.org/git/pull.1054.v2.git.1633720197.gitgitgadget@gmail.com/) + of his patch series. This series included 2 new patches that + improved existing tests, and added new tests for problematic behavior + that the other patches were fixing. + + Ævar commented on this series saying that it was much improved, but + it could perhaps be even better if: + + - the C++ support was split up from the C support, + + - some tests were added first, before the behavior was changed, + and + + - some tests could be added for code comments, as he wondered if + tokens that often occur in natural language, like `"` and `&`, + are still correctly handled when they appear in code comments. + + Johannes agreed with the second point, but wasn't interested in + working on the others. + + Ævar and Johannes discussed a bit further if it was worth doing + something for code comments, but Johannes concluded that it wasn't. + + Johannes then sent a + [third version](https://lore.kernel.org/git/pull.1054.v3.git.1633885384.gitgitgadget@gmail.com/) + of his patch series. In this new version test cases for single-quote + characters as digit separators and the `<=>` generalized comparison + operator were moved to a new commit, before the commits supporting + these features. Another change was improving support for a + single-quote as digit separator when it follows a `.` that starts a + floatingpoint number. + + This patch series was then merged into the master branch, so that + Git 2.34 that was recently released has better support for C++ in + diffs. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 0347809ace9248ffacfcb0c5d09db89545604cfd Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 29 Nov 2021 11:00:07 +0100 Subject: [PATCH 0160/1248] rn-81: add j6t among the helpers --- _posts/2021-11-29-edition-81.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-11-29-edition-81.markdown b/_posts/2021-11-29-edition-81.markdown index 99758fa1e3..44d28ddc07 100644 --- a/_posts/2021-11-29-edition-81.markdown +++ b/_posts/2021-11-29-edition-81.markdown @@ -216,4 +216,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Johannes Sixt. From ea19a1cf00e370e5d84e720b861f26dded482cfb Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 29 Nov 2021 11:01:24 +0100 Subject: [PATCH 0161/1248] rn-81: add Dscho among the helpers --- _posts/2021-11-29-edition-81.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-11-29-edition-81.markdown b/_posts/2021-11-29-edition-81.markdown index 44d28ddc07..2fabe17f7c 100644 --- a/_posts/2021-11-29-edition-81.markdown +++ b/_posts/2021-11-29-edition-81.markdown @@ -216,4 +216,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Johannes Sixt. +with help from Johannes Schindelin and Johannes Sixt. From e7c7c00f6653548784ac6e125cf0fb100ff36ab6 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 30 Nov 2021 23:26:33 +0100 Subject: [PATCH 0162/1248] Found yet another tiny correction when reading the test mail. --- _posts/2021-11-29-edition-81.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2021-11-29-edition-81.markdown b/_posts/2021-11-29-edition-81.markdown index 2fabe17f7c..dc962836aa 100644 --- a/_posts/2021-11-29-edition-81.markdown +++ b/_posts/2021-11-29-edition-81.markdown @@ -90,7 +90,7 @@ This edition covers what happened during the month of October 2021. that the single-quote character as digit separator is problematic and requires a more sophisticated implementation. For example, as implemented the character literal `'.'` would be split into `'.` - and `'`. The support for digit separator was eventually reverted. + and `'`. The support for digit separators was eventually reverted. This patch series was then merged into the master branch, so that Git 2.34 that was recently released has better support for C++ in From 062bb926dc7cff10f177b3c3b01dd0f1fc9f561c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 19 Dec 2021 12:55:57 +0100 Subject: [PATCH 0163/1248] Hacking-Git: add a 'Process related tools and sites' section --- Hacking-Git.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index 3b3742f24c..df15666105 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -54,6 +54,20 @@ suggest improvements. Thanks! * [Git for Windows' "Good commits"](https://github.com/git-for-windows/git/wiki/Good-commits) +## Process related tools and sites + +* [GitGitGadget](https://gitgitgadget.github.io/) makes it easy to send patches to the mailing list. + +* [lore.kernel.org/git](https://lore.kernel.org/git/) is our prefered mailing list archive. + +* [public-inbox](https://public-inbox.org/README.html) is the software behing lore.kernel.org. + +* [lore+lei](https://people.kernel.org/monsieuricon/lore-lei-part-1-getting-started) helps take advantage of lore/public-inbox. + +* [b4](https://people.kernel.org/monsieuricon/introducing-b4-and-patch-attestation) helps work with patches posted on lore/public-inbox. + +* [git-series](https://github.com/git-series/git-series) helps manage patch series. + ## Development status * [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) list the status of various development topics. From 5733c13d838d29bc20b55e882d93d0fefdaf8b00 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 21 Dec 2021 00:16:54 +0530 Subject: [PATCH 0164/1248] rn-82: add interview with Randall S. Becker --- rev_news/drafts/edition-82.md | 94 +++++++++++++++++++++++++++++++++-- 1 file changed, 91 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 41478bf01b..6fb7ed143e 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -29,9 +29,97 @@ This edition covers what happened during the month of November 2021. ### Support --> - +## Developer Spotlight: Randall S. Becker + +* Who are you and what do you do? + + I am Randall S. Becker, president of Nexbridge Inc. I have been a + software developer and architect for many decades. Aside from the + obvious SCM domain knowledge, my interests are around data structures, + performance, computability, and languages. About 10 years ago, I joined + the ITUGLIB Technical Committee, which is an Open Source group that + maintains code for the HPE Nonstop community - the platform was + originally called Tandem Computers Inc. + +* What would you name your most important contribution to Git? + + I have been maintaining the code associated with the HPE NonStop + platform for the past six years and was key to its successful port to + both the x86 and ia64 variants of the platform. In addition, I keep an + eye out for changes that may put the port at risk and run the CI/CD + environment that builds and tests Git on the platform. + +* What are you doing on the Git project these days, and why? + + I am currently working on the `.git/config` `includeIf` function for + worktrees, planning a threaded version of the port, which is challenging + considering the nature of the platform and community. We have to + maintain compatibility with some old versions of the operating systems + that lack some more modern capabilities. The platform is an MPP + architecture without kernel level threads (yet) and the port to POSIX + threads is very messy with the operating system wrappers we have to use. + +* 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? + + There are really three areas where I would want to work. The first, most + important, is improving multi-level signing capabilities in Git to + support the software supply chain. I could leave it at that, but the + full set of requirements in various countries are not yet fully fleshed + out. Another two, purely to support the NonStop community is converting + the code written in Go (Git LFS) into C and making it part of the standard + product. The other is migrating the interpretive code to a c99-standard + code base. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + I would move directly to SHA-384 or SHA-512 and toss both SHA-1 and + SHA-256 as soon as possible. The same applies to any signing + capabilities to support 8K or higher key sizes in defense against future + hacking using the capabilities quantum computers. + +* What is your favorite Git-related tool/library, outside of Git + itself? + + This is a bit of self-promotion for my company and I apologise for that. + We build façade-style interface facilities that allow legacy platforms, + including HPE NonStop and IBM's TSO/ISPF environments to have full Git + experiences despite the native file systems not supporting POSIX-like + hierarchies. These are Git clients that map file system attributes and + structures to and from what Git can understand. Our NonStop product was + recently added to the HPE price book. These products allow older + codebases to share in the benefits of real DevOps capabilities without + having to rely on proprietary knowledge and processes. I am the chief + architect of those. + +* Do you happen to haveany memorable experience with respect to contributing + to the Git project? If yes, could you share it with us? + + I think the most satisfying experience was the few months it took to + contribute all the code associated with the NonStop port. It was a huge + pain to maintain the separate fork even with Git's awesome merge + capabilities. Being allowed to be lazy is a dream of many developers and + cutting down the time and effort spent on each release to a simple push + of the Jenkins "Build Now" button freed up a lot of time. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + Learn about Merkel Trees and general data structures. + + I am still learning when it comes to general functional contributions. + Watching how others contribute is really crucial if you have any hope of + your contribution being accepted. + +* If there's one tip you would like to share with other Git developers, + what would it be? + + For every change you make, think about the security implications. + Think about what a hacker might do to compromise Git or an organisation + using Git before you move forward, no matter how good an idea it might + seem. The last thing you want is to have your contribution show up as a + Critical Vulnerability Exposure on the NIST database. ## Releases From 0e185c16f650c07ff6b0a0731278f250d37eb143 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 23 Dec 2021 11:33:32 +0100 Subject: [PATCH 0165/1248] Hacking-Git: add Felipe's git-related --- Hacking-Git.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index df15666105..7e5ca86b6b 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -68,6 +68,8 @@ suggest improvements. Thanks! * [git-series](https://github.com/git-series/git-series) helps manage patch series. +* [git-related](https://github.com/felipec/git-related) finds people that might be interested in a patch. + ## Development status * [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) list the status of various development topics. From 1d320d4ac904061f1e670ecaf8e4e57fc7208f9c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 23 Dec 2021 15:03:13 +0100 Subject: [PATCH 0166/1248] Hacking-Git: improve wording with s/that/who/ --- Hacking-Git.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index 7e5ca86b6b..82e460e9cf 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -68,7 +68,7 @@ suggest improvements. Thanks! * [git-series](https://github.com/git-series/git-series) helps manage patch series. -* [git-related](https://github.com/felipec/git-related) finds people that might be interested in a patch. +* [git-related](https://github.com/felipec/git-related) finds people who might be interested in a patch. ## Development status From f618b6fc94e4dfa2dd12c46fcb305d5e2e0ea4dc Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 23 Dec 2021 15:04:19 +0100 Subject: [PATCH 0167/1248] Hacking-Git: add Stefan's git-publish --- Hacking-Git.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index 82e460e9cf..943d537500 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -68,6 +68,8 @@ suggest improvements. Thanks! * [git-series](https://github.com/git-series/git-series) helps manage patch series. +* [git-publish](https://github.com/stefanha/git-publish) helps manage patch series. + * [git-related](https://github.com/felipec/git-related) finds people who might be interested in a patch. ## Development status From cc1d6ff0ec197c38ff7086eee0bd1798789eb0aa Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 23 Dec 2021 15:25:47 +0100 Subject: [PATCH 0168/1248] rn-82: add releases --- rev_news/drafts/edition-82.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 6fb7ed143e..a57d21b787 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -123,6 +123,31 @@ This edition covers what happened during the month of November 2021. ## Releases ++ Git [2.34.1](https://public-inbox.org/git/xmqq7dcx1ent.fsf@gitster.g/) ++ Git for Windows [2.34.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.34.1.windows.1) ++ GitHub Enterprise [3.3.1](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.1), +[3.2.6](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.6), +[3.1.14](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.14), +[3.0.22](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.22), +[3.3.0](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.0), +[3.2.5](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.5), +[3.1.13](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.13), +[3.0.21](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.21), +[3.2.4](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.4), +[3.1.12](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.12), +[3.0.20](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.20) ++ GitLab [14.6](https://about.gitlab.com/releases/2021/12/22/gitlab-14-6-released/) +[14.5.2, 14.4.4, and 14.3.6](https://about.gitlab.com/releases/2021/12/06/security-release-gitlab-14-5-2-released/), +[14.5.1](https://about.gitlab.com/releases/2021/12/01/gitlab-14-5-1-released/), +[14.4.3](https://about.gitlab.com/releases/2021/12/01/gitlab-14-4-3-released/), +[14.3.5](https://about.gitlab.com/releases/2021/11/26/gitlab-14-3-5-released/), +[14.2.7](https://about.gitlab.com/releases/2021/11/26/gitlab-14-2-7-released/) ++ Bitbucket Server [7.19](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ Gerrit Code Review [3.5.0](https://www.gerritcodereview.com/3.5.html#350) ++ GitKraken [8.2.1](https://support.gitkraken.com/release-notes/current), +[8.2.0](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [2.9.6](https://desktop.github.com/release-notes/), +[2.9.5](https://desktop.github.com/release-notes/) ## Other News From 376d9bcbf7a293a56fc90a78a461e3769521db4c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 23 Dec 2021 15:34:42 +0100 Subject: [PATCH 0169/1248] rn-82: add GSoC extending news bit --- rev_news/drafts/edition-82.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index a57d21b787..0b2b5227c5 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -156,6 +156,8 @@ __Various__ __Light reading__ +* [GSoC 2022](https://opensource.googleblog.com/2021/11/expanding-google-summer-of-code-in-2022.html) + is expanding to everyone 18 years or older, to different project sizes and to flexible timelines. __Git tools and sites__ From 296ffd4d2c624d755bf11157fd5a69131d78f5cf Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 23 Dec 2021 15:53:03 +0100 Subject: [PATCH 0170/1248] rn-82: add 'Peff is taking a break' article --- rev_news/drafts/edition-82.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 0b2b5227c5..ac9251ecad 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -17,9 +17,26 @@ This edition covers what happened during the month of November 2021. ## Discussions - + +* [Peff is taking a break from Git](https://public-inbox.org/git/YboaAe4LWySOoAe7@coredump.intra.peff.net/) + + Peff, alias Jeff King, announced on the mailing list that he is + going to take a five months break from Git starting at the end of + December. He is also steping down from Git's PLC (Project Leadership + Committee), the entity that represents Git within + [Software Freedom Conservancy](https://sfconservancy.org/). + + Peff has been involved in the project for 15 years, and has + contributed a huge number of patches, and an enormous amount of + reviews, support and discussions. + + He also used to maintain git-scm.com, the main site of the + project. It looks like Taylor Blau, who has been working at GitHub + with Peff will take over maintaining this site. + + Along with others on the mailing list, let's thank Peff for his + contributions to Git and Git Development Community! - + +* [misleading message printed when worktree add fails](https://lore.kernel.org/git/CA+34VNLj6VB1kCkA=MfM7TZR+6HgqNi5-UaziAoCXacSVkch4A@mail.gmail.com/) + + Baruch Burstein posted a bug report on the mailing list saying that + he ran `git worktree add `, where is an + already checked-out branch, and saw a message that seemed to + indicate that the command was a success, when in fact it was not. + + Eric Sunshine replied to him asking if he saw something similar as: + + ```sh + % git worktree add ../foo bar + Preparing worktree (checking out 'bar') + fatal: 'bar' is already checked out at '.../wherever' + ``` + + Baruch replied that he actually saw the messages emitted by Git in a + different order: + + ```sh + fatal: 'master' is already checked out at 'C:/Users/bmbur/temp' + Preparing worktree (checking out 'master') + ``` + + Eric then diagnosed the following: + + > Okay, that's happening because the 'Preparing' message is sent to + > stdout, whereas the 'fatal' error is sent to stderr, and the streams + > are being flushed on Windows in a different order than what we + > typically see on Unix platforms even though the 'Preparing' message is + > actually output first by the code. + + He then proposed to have the die() function, which is emitting the + 'fatal' error, or the vreportf(), which is used by die() to emit the + 'fatal' error, flush stdout before emitting an error. This would fix + not only the issue Baruch saw, but also other similar issues in + other parts of the code. + + Randall S. Becker replied to Eric that his proposed fix was + "probably a good idea" as "there is no guarantee even in Unix + regarding stream buffer flushing". + + Eric posted [an RFC patch](https://lore.kernel.org/git/20211130043946.19987-1-sunshine@sunshineco.com/) + implementing his proposed fix. The patch added a call to + `fflush(stdout)` in vreportf() just before this function calls + `fflush(stderr)` and before it actually writes a message on stderr. + + Junio Hamano, the Git maintainer replied to the patch wondering if + flushing stdout when it is going to a pipe talking to another + process could cause issues. He noticed that the HTTP backend code + uses vreportf() in this way, though he said that any code using + stdio "cannot precisely control when the buffered contents are + flushed anyway" so the patch might be OK. + + Jeff King, alias Peff, then started a discussion about the + possibility of some flushing causing some code to block which might + create a deadlock as some other code might be waiting for something + from the now blocking code. Eric suggested that this could be + addressed by flushing stdout only if stdout is attached to a + terminal, though he thought this would be "rather ugly". + + Ævar Arnfjörð Bjarmason chimed in to ask about the warning() and + error() functions that also call vreportf(), but Peff replied that + they were probably OK. + + Meanwhile Peff also replied to Eric's patch wondering if "status + messages like this go to stderr anyway". He said: + + > in general our approach in Git is more "if it is the main + > output of the program, it goes to stdout; if it is + > chatter or progress for the user, it goes to stderr". + + He also explained that it works consistently on glibc as "stdout to + a terminal is line buffered by default, so the 'Preparing' line is + flushed immediately". But even on Linux, without a terminal, like + when both stdout and stderr are redirected to the same file, for + example with `git worktree add ../foo bar >out 2>&1`, the output to + stderr appears before the one to stdout. + + Eric replied to Peff saying he had considered emitting the + 'Preparing' line on stderr instead of stdout, as Peff suggests, but + he thought that it's not documented and not very consistent that + this kind of output from Git should go to stderr, and also that it + could be a regression if people relied on that. He suggested adding + a fflush(stdout) to git-worktree's code and "live with that + localized ugliness". + + Peff agreed that Git has not been very consistent, but he said that + more careful reviews and "laying out guidelines could help". He also + pointed to [a previous discussion](https://lore.kernel.org/git/20110907215716.GJ13364@sigill.intra.peff.net/) + from 10 years ago where he "laid out his mental model" about this topic. + + He also noticed that the 'Preparing' line was marked for + translation, so "not reliably machine-readable anyway". He also + pointed to [a previous commit](https://github.com/git/git/commit/68b939b2f0) + that moved some `git clone` output from stdout to stderr for similar + reasons. + + Eric then agreed with Peff about sending a different patch to move + the 'Preparing' line output to stderr and another patch to improve + documentation about this topic. Eric also noticed that this output + had been changed significantly 3 years ago without any complaints. + + He then sent [a patch](https://lore.kernel.org/git/20211201053214.2902-1-sunshine@sunshineco.com/) + to improve our documentation about this. A second version of this + patch was eventually merged to the master branch after Eric took + into account some reviews by Fabian Stelzer, Junio, Peff and Philip + Oakley to improve some wordings. + + Ævar and Junio discussed a bit further the "you shouldn't write + anything that isn't an error" view of the world, and Ævar cited the + ["chronic" utility](https://manpages.debian.org/jessie/moreutils/chronic.1.en.html). + + Eric also sent [a small patch series](https://lore.kernel.org/git/20211203034420.47447-1-sunshine@sunshineco.com/) + that moved the 'Preparing' line output to stderr and fixed a minor + problem in the `git worktree` documentation he noticed along the + way. + + This patch series started a small inconclusive discussion between + Ævar, Eric, Peff and Junio about automating the synopsys and maybe + other parts of the documentation from the code or other ways to + avoid duplication and mismatches. + + The patch series was eventually merged as is to the master branch + though. ## Developer Spotlight: Randall S. Becker From 3f35d66fc0f249b7c57d8bb240117880a0642579 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 28 Dec 2021 21:27:01 +0100 Subject: [PATCH 0174/1248] rn-82: change publication date to 2021-12-30 --- rev_news/drafts/edition-82.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 3f6720230d..46f56d480e 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 82 (December 29th, 2021) +title: Git Rev News Edition 82 (December 30th, 2021) layout: default -date: 2021-12-29 12:06:51 +0100 +date: 2021-12-30 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 82 (December 29th, 2021) +## Git Rev News: Edition 82 (December 30th, 2021) 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 From 357b056c52187f8eccb72998ef9a98cb52521e45 Mon Sep 17 00:00:00 2001 From: "Randall S. Becker" Date: Tue, 28 Dec 2021 15:35:27 -0500 Subject: [PATCH 0175/1248] Update edition-82.md Minor typographical corrections to my Developer Profile --- rev_news/drafts/edition-82.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 46f56d480e..4cb7b7e0f2 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -177,7 +177,7 @@ This edition covers what happened during the month of November 2021. software developer and architect for many decades. Aside from the obvious SCM domain knowledge, my interests are around data structures, performance, computability, and languages. About 10 years ago, I joined - the ITUGLIB Technical Committee, which is an Open Source group that + the ITUGLIB Technical Committee, which is an Open-Source group that maintains code for the HPE Nonstop community - the platform was originally called Tandem Computers Inc. @@ -222,7 +222,7 @@ This edition covers what happened during the month of November 2021. * What is your favorite Git-related tool/library, outside of Git itself? - This is a bit of self-promotion for my company and I apologise for that. + This is a bit of self-promotion for my company and, I apologise for that. We build façade-style interface facilities that allow legacy platforms, including HPE NonStop and IBM's TSO/ISPF environments to have full Git experiences despite the native file systems not supporting POSIX-like @@ -231,9 +231,9 @@ This edition covers what happened during the month of November 2021. recently added to the HPE price book. These products allow older codebases to share in the benefits of real DevOps capabilities without having to rely on proprietary knowledge and processes. I am the chief - architect of those. + architect of those products. -* Do you happen to haveany memorable experience with respect to contributing +* Do you happen to have any memorable experience with respect to contributing to the Git project? If yes, could you share it with us? I think the most satisfying experience was the few months it took to @@ -241,7 +241,7 @@ This edition covers what happened during the month of November 2021. pain to maintain the separate fork even with Git's awesome merge capabilities. Being allowed to be lazy is a dream of many developers and cutting down the time and effort spent on each release to a simple push - of the Jenkins "Build Now" button freed up a lot of time. + of the Jenkins "Build Now" button frees up a lot of time. * What is your advice for people who want to start Git development? Where and how should they start? From 1e75fa984a6dc3af020cc1b4260adbf7f716bdb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 29 Dec 2021 01:59:36 +0100 Subject: [PATCH 0176/1248] rn-82: Add links to various news, articles, and tools --- rev_news/drafts/edition-82.md | 104 ++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 0a609749f2..bc7cc44b90 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -175,8 +175,112 @@ __Light reading__ * [GSoC 2022](https://opensource.googleblog.com/2021/11/expanding-google-summer-of-code-in-2022.html) is expanding to everyone 18 years or older, to different project sizes and to flexible timelines. +* [Stochastic bisection in Git](https://lwn.net/Articles/877964/) + by Jonathan Corbet on LWN.net. The patches in question were + [proposed for inclusion in Git](https://lore.kernel.org/git/20211118164940.8818-1-jack@suse.cz/t/#u) + by Jan Kara. +* [Fedora revisits the Git-forge debate](https://lwn.net/Articles/877240/) + by Jake Edge on LWN.net. +* [Working with a Monorepo](https://devblogs.microsoft.com/cse/2021/11/23/working-with-a-monorepo/), + co-authored by Claus Matzinger, Stephanie Visser and Martin Tirion; + on Microsoft's CSE Developer Blog. + Most recent list of pros and cons of monorepos you can find in + [Git Rev News Editio #81](https://git.github.io/rev_news/2021/11/29/edition-81/). +* [How to Create a React Typescript Monorepo with Git Submodules](https://dev.to/alexeagleson/how-to-create-a-node-and-react-monorepo-with-git-submodules-2g83) + by Alex Eagleson on DEV.to. +* [Git Pull, for the Holidays](https://thedailywtf.com/articles/git-pull-for-the-holidays), + a song from The Daily WTF; Lyrics - Remy Porter and James Rushin, Music - James Rushin. +* [How to Reset a Single Git File and Why](https://www.makeuseof.com/git-reset-single-file/) + by Bobby Jack on MakeUseOf. +* [Merging multiple git repos with their commit history](https://domm.plix.at/perl/2021_12_git_merge_repos_with_history.html) + by Thomas Klausner (domm). Note that there might be a better, simpler solution for the problem. +* [Using the Reflog to Restore Lost Commits](https://css-tricks.com/using-the-reflog-to-restore-lost-commits/) + by Tobias Günther on CSS-Tricks is the next part of + the [Tower Git Client](https://www.git-tower.com/)'s “Advanced Git” series. +* [Git Commands Cheatsheet: Advanced (20+ Git Commands Advanced)](https://dev.to/aashiya123/git-commands-cheatsheet-advanced-20-git-commands-advanced--35i3) + by aashiya123 on DEV.to. +* [10 useful Git tips to improve your workflow](https://dev.to/yenyih/10-useful-git-tips-to-improve-your-workflow-kf1) + by Jordan Soo Yen Yih on DEV.to. +* [Top 30 Git Commands You Should Know To Master Git CLI](https://levelup.gitconnected.com/top-30-git-commands-you-should-know-to-master-git-cli-f04e041779bc) + by Tara Prasad Routray on Level Up Coding by gitconnected.com (a Medium.com blog). +* [Git scraping: track changes over time \[to a web site or a web service\] by scraping to a Git repository](https://simonwillison.net/2020/Oct/9/git-scraping/) and + [git-history: a tool for analyzing scraped data collected using Git and SQLite](https://simonwillison.net/2021/Dec/7/git-history/) + by Simon Willison on his weblog. +* [Top 5 Best Git Extensions For VS Code (You must have)](https://dev.to/thenomadevel/top-5-best-git-extensions-for-vs-code-you-must-have-40b6) + by Nomadev on DEV.to. You can find another such list in + [Git Rev News Edition #77](https://git.github.io/rev_news/2021/07/31/edition-77/). +* [So you want Database Version Control?](https://www.dolthub.com/blog/2021-09-17-database-version-control/), + [So you want a Git Database?](https://www.dolthub.com/blog/2021-11-26-so-you-want-git-database/), and + [So you want Git SQL?](https://www.dolthub.com/blog/2021-12-20-git-sql/) + by Tim Sehn on DoltHub Blog. [Dolt](https://www.doltdb.com/) and [DoltHub]((https://www.dolthub.com/) + were mentioned in [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/). + Those blog posts talk about different ways databases and version control can connect: + * version controlling database schema, aka **database migrations**: + * [Liquibase](https://www.liquibase.com/), + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + * [Redgate Deploy](https://www.red-gate.com/products/redgate-deploy/), + * [Planetscale](https://www.planetscale.com/), + * [Alembic](https://alembic.sqlalchemy.org/) for SQLAlchemy _(not mentioned in those articles)_, + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + * [Sqitch](https://sqitch.org/) _(not mentioned in those articles)_, + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + * [Entity Framework Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) _(not mentioned in those articles)_, + * [Flyway](https://flywaydb.org/) by Redgate _(not mentioned in those articles)_, + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + * [DBmaestro](https://www.dbmaestro.com/) _(not mentioned in those articles)_, + * [skeema](https://www.skeema.io/) for MySQL, MariaDB, and Percona Server _(not mentioned in those articles)_, + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + * [gh-ost](https://github.com/github/gh-ost): GitHub's online schema migration for MySQL _(not mentioned in those articles)_, + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + * version controlling queries: + * [VersionSQL](https://www.versionsql.com/), + * [DBT](https://www.getdbt.com/) (Data Build Tool), + * [Git Your SQL Together (with a Query Library)](https://caitlinhudon.com/2018/11/28/git-sql-together/) + by Caitlin Hudon (2018) _(not mentioned in those articles)_, + mentioned in [Git Rev News #46](https://git.github.io/rev_news/2018/12/19/edition-46/) + * **data versioning** (version control within schema, or **[Slowly Changing Dimension](https://en.wikipedia.org/wiki/Slowly_changing_dimension)**): + * [Noms](https://github.com/attic-labs/noms), + * [TerminusDB](https://www.terminusdb.com/) for graph or document databases; + whitepaper about TerminusDB was mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + * [Dolt](https://www.dolthub.com/) for relational databases, + mentioned in [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/), + * [LiteTree: SQLite with Branches](https://github.com/aergoio/litetree) which is a modification of the SQLite engine to support branching _(not mentioned in those articles)_, + mentioned in [Git Rev News #43](https://git.github.io/rev_news/2018/09/19/edition-43/), + * Git as database (with own query language): + * [GitRows](https://gitrows.com/) for JSON and CSV files, + * [Git as a NoSQL database](https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/) by Kenneth Truyers (2016), + mentioned in [Git Rev News #28](https://git.github.io/rev_news/2017/06/14/edition-28/), + * [Turning Git into an application database](https://nede.dev/blog/turning-git-into-an-application-database) by Peter Ruttkay-Nedecký (2019) + * SQL for querying Git repo: + * [Gitbase](https://github.com/src-d/gitbase) by source{d} aka src-d - using MySQL, + mentioned in [Git Rev News #48](https://git.github.io/rev_news/2019/02/27/edition-48/); + note that link [on source{d} site](https://docs.sourced.tech/gitbase) no longer works, + * [MergeStat](https://github.com/mergestat/mergestat) - using SQLite, + * [Gitana](https://livablesoftware.com/gitana-sql-git-repository-inspector/) + ([repo](https://github.com/SOM-Research/Gitana), [docs](http://gitanadocs.getforge.io/), [paper](https://www.researchgate.net/publication/279058070_Gitana_a_SQL-based_Git_Repository_Inspector))- using MySQL + _(not mentioned in those articles, possibly because it started as research project)_, + mentioned in [Git Rev News #7](https://git.github.io/rev_news/2015/09/09/edition-7/) + and [#48](https://git.github.io/rev_news/2019/02/27/edition-48/), + * storing database in Git: + * [SQLite](https://sqlite.org) where databases are files, + * [gitSQL](https://github.com/gitsql) exporting flat file SQL statements of objects from the database to store in the Git repository + + __Git tools and sites__ +* [BBChop](https://github.com/Ealdwulf/BBChop) is a tool in Python by Ealdwulf Wuffinga + implementing a bisection algorithm which works on intermittent bugs (experimental code). + BBChop is based on [Bayesian Search Theory](https://en.wikipedia.org/wiki/Bayesian_search_theory). +* [Soft Serve](https://github.com/charmbracelet/soft-serve) + is a self-hostable Git server for the command line, written in Go. + It is configurable with Git, you can create repos on demand with `git push`, + and you can browse repos with an SSH-accessible TUI. +* [GitLive](https://git.live/) is a proprietary extension with a free tier + for Visual Studio Code, JetBrains IDEs, and Android Studio, + providing real-time collaborative support, giving insight about what other developers in the team are working on. + It supports GitHub, Bitbucket, GitLab (including self-hosted) and Azure DevOps repository hosting services.
+ GitLive was mentioned as [VS Code extension](https://marketplace.visualstudio.com/items?itemName=TeamHub.teamhub) + in [Git Rev News Edition #77](https://git.github.io/rev_news/2021/07/31/edition-77/). ## Credits From 5c69fa9ba13a3641b4ef7c694f985c6c62104d18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 29 Dec 2021 02:10:36 +0100 Subject: [PATCH 0177/1248] rn-82: Add "A brief history of code search at GitHub" article --- rev_news/drafts/edition-82.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 4049f7a911..9ef8a1369e 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -304,6 +304,8 @@ __Light reading__ by Jan Kara. * [Fedora revisits the Git-forge debate](https://lwn.net/Articles/877240/) by Jake Edge on LWN.net. +* [A brief history of code search at GitHub](https://github.blog/2021-12-15-a-brief-history-of-code-search-at-github/) + by Pavel Avgustinov on GitHub Blog. * [Working with a Monorepo](https://devblogs.microsoft.com/cse/2021/11/23/working-with-a-monorepo/), co-authored by Claus Matzinger, Stephanie Visser and Martin Tirion; on Microsoft's CSE Developer Blog. From dc17d93522054d1663f031a271fd7336a9ed1748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 29 Dec 2021 02:27:02 +0100 Subject: [PATCH 0178/1248] rn-82: Fix whitespace issues --- rev_news/drafts/edition-82.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 9ef8a1369e..1832f48eb4 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -292,12 +292,12 @@ This edition covers what happened during the month of November 2021. ## Other News __Various__ +* [Google Summer of Code (GSoC) 2022](https://opensource.googleblog.com/2021/11/expanding-google-summer-of-code-in-2022.html) + is expanding to everyone 18 years or older, to different project sizes and to flexible timelines. __Light reading__ -* [GSoC 2022](https://opensource.googleblog.com/2021/11/expanding-google-summer-of-code-in-2022.html) - is expanding to everyone 18 years or older, to different project sizes and to flexible timelines. * [Stochastic bisection in Git](https://lwn.net/Articles/877964/) by Jonathan Corbet on LWN.net. The patches in question were [proposed for inclusion in Git](https://lore.kernel.org/git/20211118164940.8818-1-jack@suse.cz/t/#u) @@ -340,7 +340,7 @@ __Light reading__ by Tim Sehn on DoltHub Blog. [Dolt](https://www.doltdb.com/) and [DoltHub]((https://www.dolthub.com/) were mentioned in [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/). Those blog posts talk about different ways databases and version control can connect: - * version controlling database schema, aka **database migrations**: + * version controlling database schema, aka **database migrations**: * [Liquibase](https://www.liquibase.com/), mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), * [Redgate Deploy](https://www.red-gate.com/products/redgate-deploy/), @@ -389,10 +389,10 @@ __Light reading__ * storing database in Git: * [SQLite](https://sqlite.org) where databases are files, * [gitSQL](https://github.com/gitsql) exporting flat file SQL statements of objects from the database to store in the Git repository - __Git tools and sites__ + * [BBChop](https://github.com/Ealdwulf/BBChop) is a tool in Python by Ealdwulf Wuffinga implementing a bisection algorithm which works on intermittent bugs (experimental code). BBChop is based on [Bayesian Search Theory](https://en.wikipedia.org/wiki/Bayesian_search_theory). From a461de1b1cfe1525d6d69b7b2b1cd1f117eeabe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 29 Dec 2021 02:38:51 +0100 Subject: [PATCH 0179/1248] rn-82: Minor fixes --- rev_news/drafts/edition-82.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 1832f48eb4..9635cf5309 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -309,8 +309,8 @@ __Light reading__ * [Working with a Monorepo](https://devblogs.microsoft.com/cse/2021/11/23/working-with-a-monorepo/), co-authored by Claus Matzinger, Stephanie Visser and Martin Tirion; on Microsoft's CSE Developer Blog. - Most recent list of pros and cons of monorepos you can find in - [Git Rev News Editio #81](https://git.github.io/rev_news/2021/11/29/edition-81/). + You can find most recent list of pros and cons of monorepos in + [Git Rev News Edition #81](https://git.github.io/rev_news/2021/11/29/edition-81/). * [How to Create a React Typescript Monorepo with Git Submodules](https://dev.to/alexeagleson/how-to-create-a-node-and-react-monorepo-with-git-submodules-2g83) by Alex Eagleson on DEV.to. * [Git Pull, for the Holidays](https://thedailywtf.com/articles/git-pull-for-the-holidays), @@ -337,7 +337,7 @@ __Light reading__ * [So you want Database Version Control?](https://www.dolthub.com/blog/2021-09-17-database-version-control/), [So you want a Git Database?](https://www.dolthub.com/blog/2021-11-26-so-you-want-git-database/), and [So you want Git SQL?](https://www.dolthub.com/blog/2021-12-20-git-sql/) - by Tim Sehn on DoltHub Blog. [Dolt](https://www.doltdb.com/) and [DoltHub]((https://www.dolthub.com/) + by Tim Sehn on DoltHub Blog. [Dolt](https://www.doltdb.com/) and [DoltHub](https://www.dolthub.com/) were mentioned in [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/). Those blog posts talk about different ways databases and version control can connect: * version controlling database schema, aka **database migrations**: @@ -383,7 +383,7 @@ __Light reading__ * [MergeStat](https://github.com/mergestat/mergestat) - using SQLite, * [Gitana](https://livablesoftware.com/gitana-sql-git-repository-inspector/) ([repo](https://github.com/SOM-Research/Gitana), [docs](http://gitanadocs.getforge.io/), [paper](https://www.researchgate.net/publication/279058070_Gitana_a_SQL-based_Git_Repository_Inspector))- using MySQL - _(not mentioned in those articles, possibly because it started as research project)_, + _(not mentioned in those articles, possibly because it started as a research project)_, mentioned in [Git Rev News #7](https://git.github.io/rev_news/2015/09/09/edition-7/) and [#48](https://git.github.io/rev_news/2019/02/27/edition-48/), * storing database in Git: From 84ef1f3fabe4b3b6d559d3c87e4fcfd5249193a5 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Thu, 30 Dec 2021 02:47:14 +0100 Subject: [PATCH 0180/1248] Supplied tiny fixes and rephrasings. --- rev_news/drafts/edition-82.md | 84 +++++++++++++++++------------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/rev_news/drafts/edition-82.md b/rev_news/drafts/edition-82.md index 9635cf5309..49bc240e6f 100644 --- a/rev_news/drafts/edition-82.md +++ b/rev_news/drafts/edition-82.md @@ -23,17 +23,17 @@ This edition covers what happened during the month of November 2021. Peff, alias Jeff King, announced on the mailing list that he is going to take a five months break from Git starting at the end of - December. He is also steping down from Git's PLC (Project Leadership + December. He is also stepping down from Git's PLC (Project Leadership Committee), the entity that represents Git within [Software Freedom Conservancy](https://sfconservancy.org/). - Peff has been involved in the project for 15 years, and has - contributed a huge number of patches, and an enormous amount of + Peff has been involved in the project for 15 years and has + contributed a huge number of patches as well as an enormous amount of reviews, support and discussions. He also used to maintain [git-scm.com](https://git-scm.com/), the main site of the project. It looks like Taylor Blau, who has been working at GitHub - with Peff will take over maintaining this site. + with Peff, will take over maintaining this site. Along with others on the mailing list, let's thank Peff for his contributions to Git and Git Development Community! @@ -47,7 +47,7 @@ This edition covers what happened during the month of November 2021. * [misleading message printed when worktree add fails](https://lore.kernel.org/git/CA+34VNLj6VB1kCkA=MfM7TZR+6HgqNi5-UaziAoCXacSVkch4A@mail.gmail.com/) Baruch Burstein posted a bug report on the mailing list saying that - he ran `git worktree add `, where is an + he ran `git worktree add `, where `` was an already checked-out branch, and saw a message that seemed to indicate that the command was a success, when in fact it was not. @@ -90,16 +90,16 @@ This edition covers what happened during the month of November 2021. `fflush(stdout)` in vreportf() just before this function calls `fflush(stderr)` and before it actually writes a message on stderr. - Junio Hamano, the Git maintainer replied to the patch wondering if + Junio Hamano, the Git maintainer, replied to the patch wondering if flushing stdout when it is going to a pipe talking to another process could cause issues. He noticed that the HTTP backend code uses vreportf() in this way, though he said that any code using stdio "cannot precisely control when the buffered contents are - flushed anyway" so the patch might be OK. + flushed anyway", so the patch might be OK. Jeff King, alias Peff, then started a discussion about the - possibility of some flushing causing some code to block which might - create a deadlock as some other code might be waiting for something + possibility of arbitrary flushing causing some code to block, which might + create a deadlock, as some other code might be waiting for something from the now blocking code. Eric suggested that this could be addressed by flushing stdout only if stdout is attached to a terminal, though he thought this would be "rather ugly". @@ -109,7 +109,7 @@ This edition covers what happened during the month of November 2021. they were probably OK. Meanwhile Peff also replied to Eric's patch wondering if "status - messages like this go to stderr anyway". He said: + messages like this go to stderr anyway". He remarked that > in general our approach in Git is more "if it is the main > output of the program, it goes to stdout; if it is @@ -133,7 +133,7 @@ This edition covers what happened during the month of November 2021. Peff agreed that Git has not been very consistent, but he said that more careful reviews and "laying out guidelines could help". He also pointed to [a previous discussion](https://lore.kernel.org/git/20110907215716.GJ13364@sigill.intra.peff.net/) - from 10 years ago where he "laid out his mental model" about this topic. + from 10 years ago where he had "laid out his mental model" about this topic. He also noticed that the 'Preparing' line was marked for translation, so "not reliably machine-readable anyway". He also @@ -196,7 +196,7 @@ This edition covers what happened during the month of November 2021. considering the nature of the platform and community. We have to maintain compatibility with some old versions of the operating systems that lack some more modern capabilities. The platform is an MPP - architecture without kernel level threads (yet) and the port to POSIX + architecture without kernel level threads (yet), and the port to POSIX threads is very messy with the operating system wrappers we have to use. * If you could get a team of expert developers to work full time on @@ -208,7 +208,7 @@ This edition covers what happened during the month of November 2021. full set of requirements in various countries are not yet fully fleshed out. Another two, purely to support the NonStop community is converting the code written in Go (Git LFS) into C and making it part of the standard - product. The other is migrating the interpretive code to a c99-standard + product. The other is migrating the interpretive code to a C99-standard code base. * If you could remove something from Git without worrying about @@ -222,7 +222,7 @@ This edition covers what happened during the month of November 2021. * What is your favorite Git-related tool/library, outside of Git itself? - This is a bit of self-promotion for my company and, I apologise for that. + This is a bit of self-promotion for my company, and I apologise for that. We build façade-style interface facilities that allow legacy platforms, including HPE NonStop and IBM's TSO/ISPF environments to have full Git experiences despite the native file systems not supporting POSIX-like @@ -246,7 +246,7 @@ This edition covers what happened during the month of November 2021. * What is your advice for people who want to start Git development? Where and how should they start? - Learn about Merkel Trees and general data structures. + Learn about Merkle Trees and general data structures. I am still learning when it comes to general functional contributions. Watching how others contribute is really crucial if you have any hope of @@ -257,7 +257,7 @@ This edition covers what happened during the month of November 2021. For every change you make, think about the security implications. Think about what a hacker might do to compromise Git or an organisation - using Git before you move forward, no matter how good an idea it might + using Git before you move forward, no matter how good an idea might seem. The last thing you want is to have your contribution show up as a Critical Vulnerability Exposure on the NIST database. @@ -332,7 +332,7 @@ __Light reading__ [git-history: a tool for analyzing scraped data collected using Git and SQLite](https://simonwillison.net/2021/Dec/7/git-history/) by Simon Willison on his weblog. * [Top 5 Best Git Extensions For VS Code (You must have)](https://dev.to/thenomadevel/top-5-best-git-extensions-for-vs-code-you-must-have-40b6) - by Nomadev on DEV.to. You can find another such list in + by Nomadev on DEV.to. You can find a similar list in [Git Rev News Edition #77](https://git.github.io/rev_news/2021/07/31/edition-77/). * [So you want Database Version Control?](https://www.dolthub.com/blog/2021-09-17-database-version-control/), [So you want a Git Database?](https://www.dolthub.com/blog/2021-11-26-so-you-want-git-database/), and @@ -342,53 +342,53 @@ __Light reading__ Those blog posts talk about different ways databases and version control can connect: * version controlling database schema, aka **database migrations**: * [Liquibase](https://www.liquibase.com/), - mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), - * [Redgate Deploy](https://www.red-gate.com/products/redgate-deploy/), - * [Planetscale](https://www.planetscale.com/), + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/) + * [Redgate Deploy](https://www.red-gate.com/products/redgate-deploy/) + * [Planetscale](https://www.planetscale.com/) * [Alembic](https://alembic.sqlalchemy.org/) for SQLAlchemy _(not mentioned in those articles)_, - mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/) * [Sqitch](https://sqitch.org/) _(not mentioned in those articles)_, - mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), - * [Entity Framework Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) _(not mentioned in those articles)_, + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/) + * [Entity Framework Migrations](https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/) _(not mentioned in those articles)_ * [Flyway](https://flywaydb.org/) by Redgate _(not mentioned in those articles)_, - mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), - * [DBmaestro](https://www.dbmaestro.com/) _(not mentioned in those articles)_, + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/) + * [DBmaestro](https://www.dbmaestro.com/) _(not mentioned in those articles)_ * [skeema](https://www.skeema.io/) for MySQL, MariaDB, and Percona Server _(not mentioned in those articles)_, - mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/) * [gh-ost](https://github.com/github/gh-ost): GitHub's online schema migration for MySQL _(not mentioned in those articles)_, - mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/) * version controlling queries: - * [VersionSQL](https://www.versionsql.com/), - * [DBT](https://www.getdbt.com/) (Data Build Tool), + * [VersionSQL](https://www.versionsql.com/) + * [DBT](https://www.getdbt.com/) (Data Build Tool) * [Git Your SQL Together (with a Query Library)](https://caitlinhudon.com/2018/11/28/git-sql-together/) by Caitlin Hudon (2018) _(not mentioned in those articles)_, mentioned in [Git Rev News #46](https://git.github.io/rev_news/2018/12/19/edition-46/) * **data versioning** (version control within schema, or **[Slowly Changing Dimension](https://en.wikipedia.org/wiki/Slowly_changing_dimension)**): - * [Noms](https://github.com/attic-labs/noms), + * [Noms](https://github.com/attic-labs/noms) * [TerminusDB](https://www.terminusdb.com/) for graph or document databases; - whitepaper about TerminusDB was mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/), + whitepaper about TerminusDB was mentioned in [Git Rev News #60](https://git.github.io/rev_news/2020/02/19/edition-60/) * [Dolt](https://www.dolthub.com/) for relational databases, - mentioned in [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/), + mentioned in [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/) * [LiteTree: SQLite with Branches](https://github.com/aergoio/litetree) which is a modification of the SQLite engine to support branching _(not mentioned in those articles)_, - mentioned in [Git Rev News #43](https://git.github.io/rev_news/2018/09/19/edition-43/), + mentioned in [Git Rev News #43](https://git.github.io/rev_news/2018/09/19/edition-43/) * Git as database (with own query language): - * [GitRows](https://gitrows.com/) for JSON and CSV files, + * [GitRows](https://gitrows.com/) for JSON and CSV files * [Git as a NoSQL database](https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/) by Kenneth Truyers (2016), - mentioned in [Git Rev News #28](https://git.github.io/rev_news/2017/06/14/edition-28/), + mentioned in [Git Rev News #28](https://git.github.io/rev_news/2017/06/14/edition-28/) * [Turning Git into an application database](https://nede.dev/blog/turning-git-into-an-application-database) by Peter Ruttkay-Nedecký (2019) - * SQL for querying Git repo: + * SQL for querying Git repos: * [Gitbase](https://github.com/src-d/gitbase) by source{d} aka src-d - using MySQL, mentioned in [Git Rev News #48](https://git.github.io/rev_news/2019/02/27/edition-48/); - note that link [on source{d} site](https://docs.sourced.tech/gitbase) no longer works, - * [MergeStat](https://github.com/mergestat/mergestat) - using SQLite, + note that the link [on the source{d} site](https://docs.sourced.tech/gitbase) no longer works + * [MergeStat](https://github.com/mergestat/mergestat) - using SQLite * [Gitana](https://livablesoftware.com/gitana-sql-git-repository-inspector/) ([repo](https://github.com/SOM-Research/Gitana), [docs](http://gitanadocs.getforge.io/), [paper](https://www.researchgate.net/publication/279058070_Gitana_a_SQL-based_Git_Repository_Inspector))- using MySQL _(not mentioned in those articles, possibly because it started as a research project)_, mentioned in [Git Rev News #7](https://git.github.io/rev_news/2015/09/09/edition-7/) - and [#48](https://git.github.io/rev_news/2019/02/27/edition-48/), - * storing database in Git: - * [SQLite](https://sqlite.org) where databases are files, - * [gitSQL](https://github.com/gitsql) exporting flat file SQL statements of objects from the database to store in the Git repository + and [#48](https://git.github.io/rev_news/2019/02/27/edition-48/) + * storing a database in Git: + * [SQLite](https://sqlite.org) where databases are files + * [gitSQL](https://github.com/gitsql) exporting flat file SQL statements of objects from the database for storage in a Git repository __Git tools and sites__ From 33c2017764fcf4404b1023ead4f3e67d1d91ed45 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 31 Dec 2021 00:17:52 +0100 Subject: [PATCH 0181/1248] Publish rn-82 in _posts/ --- .../drafts/edition-82.md => _posts/2021-12-31-edition-82.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-82.md => _posts/2021-12-31-edition-82.markdown (100%) diff --git a/rev_news/drafts/edition-82.md b/_posts/2021-12-31-edition-82.markdown similarity index 100% rename from rev_news/drafts/edition-82.md rename to _posts/2021-12-31-edition-82.markdown From 48991fa86718f5436e7fe89b54af89f73984a54b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 31 Dec 2021 00:17:52 +0100 Subject: [PATCH 0182/1248] Add draft for rn-83 --- rev_news/drafts/edition-83.md | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 rev_news/drafts/edition-83.md diff --git a/rev_news/drafts/edition-83.md b/rev_news/drafts/edition-83.md new file mode 100644 index 0000000000..7d2e1e17b9 --- /dev/null +++ b/rev_news/drafts/edition-83.md @@ -0,0 +1,57 @@ +--- +title: Git Rev News Edition 83 (January 26th, 2022) +layout: default +date: 2022-01-26 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 83 (January 26th, 2022) + +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). + +This edition covers what happened during the month of December 2021. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 9cf8c9fb312816a4b29d029c557f0edf0390d4ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 25 Jan 2022 23:02:32 +0100 Subject: [PATCH 0183/1248] rn-83: Add links to various news, articles, and tools --- rev_news/drafts/edition-83.md | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/rev_news/drafts/edition-83.md b/rev_news/drafts/edition-83.md index 7d2e1e17b9..607676afc7 100644 --- a/rev_news/drafts/edition-83.md +++ b/rev_news/drafts/edition-83.md @@ -35,17 +35,79 @@ This edition covers what happened during the month of December 2021. ## Releases +* [Highlights from Git 2.35](https://github.blog/2022-01-24-highlights-from-git-2-35/) + by Taylor Blau on GitHub Blog. ## Other News __Various__ +* [Linux Foundation launches Open Source Software Development, Linux, and **Git** certification](https://www.zdnet.com/article/linux-foundation-launches-open-source-software-development-linux-git-certification/), + and three new training courses on the edX platform (including + [Git for Distributed Software Development (LFD109x)](https://www.edx.org/course/git-for-distributed-development)). +* [Introducing new Git features to Visual Studio 2022](https://devblogs.microsoft.com/visualstudio/introducing-new-git-features-to-visual-studio-2022/) + by Taysser Gherfal on Microsoft Visual Studio DevBlog. __Light reading__ +* [Signing Git Commits with SSH Keys](https://blog.dbrgn.ch/2021/11/16/git-ssh-signatures/) + by Danilo Bargen (available since Git version 2.34). +* [Git Overview - Computerphile](https://www.youtube.com/watch?v=92sycL8ij-U), + a video by dr Max Wilson, filmed and edited by Sean Riley. +* [Awesome Git Aliases](https://davidwalsh.name/awesome-git-aliases) and + [More Awesome Git Aliases](https://davidwalsh.name/more-awesome-git-aliases) + by Landon Schropp on Dawid Walsh Blog. +* [Git Organized: A Better Git Flow](https://render.com/blog/git-organized-a-better-git-flow) + by Annie Sexton on Render.com Blog; though a better solution would be to use interactive rebase, + as described in [comments for this article on DEV.to](https://dev.to/render/git-organized-a-better-git-flow-56go#comment-subscription). +* [No code reviews by default (to move faster)](https://www.raycast.com/blog/no-code-reviews-by-default/) + by Thomas Paul Mann of Raycast (and how it works for them). +* [How to Make a Component That Supports Multiple Frameworks in a Monorepo](https://css-tricks.com/make-a-component-multiple-frameworks-in-a-monorepo/) + by Rob Levin on CSS-Tricks. +* [How Git Works Under the Hood](https://www.freecodecamp.org/news/git-under-the-hood/) + by Faisal Albasu on freeCodeCamp. +* [Advanced Git Concepts You Should Know](https://dev.to/ruppysuppy/advanced-git-concepts-you-should-know-nle) + by Tapajyoti Bose on The Practical Dev (also known as DEV\.to). +* [How to Write Better Git Commit Messages – A Step-By-Step Guide](https://www.freecodecamp.org/news/how-to-write-better-git-commit-messages/) + by Natalie Pina on freeCodeCamp; this article talks also about the + [Conventional Commits](https://www.conventionalcommits.org/) specification, + first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). +* [How to check commit message and branch name with git hooks without any new installation](https://dev.to/anibalardid/how-to-check-commit-message-and-branch-name-with-git-hooks-without-any-new-installation-n34), + a short article by Anibal on DEV\.to. +* [How Bad Can It Git? Characterizing Secret Leakage in Public GitHub Repositories](https://www.ndss-symposium.org/ndss-paper/how-bad-can-it-git-characterizing-secret-leakage-in-public-github-repositories/) + by Michael Meli, Matthew R. McNiece, Bradley Reaves in NDSS 2019; + via [the morning paper article](https://blog.acolyer.org/2019/04/08/how-bad-can-it-git-characterizing-secret-leakage-in-public-github-repositories/) + by Adrian Colyer. __Git tools and sites__ +* [git-perl-critic](https://github.com/Ovid/git-critic) - Command-line interface for + Perl [Git::Critic](https://metacpan.org/pod/Git::Critic) module, + reporting [Perl::Critic](https://metacpan.org/pod/Perl::Critic) failures + (code that is contrary to Perl best-practices) only on git changes in the current branch. + By Curtis "Ovid" Poe. +* [Dura](https://github.com/tkellogg/dura) is a background process that watches + your Git repositories and commits your uncommitted changes without impacting HEAD, + the current branch, or the Git index (staged files). With this tool you should not + ever lose your work if you're using Git. + Written in Rust by Tim Kellogg. +* [ResumableGitClone](https://github.com/johnzeng/ResumableGitClone) (2017) + is a Bash shell script to clone a large repo without retrying again and again, + by using a deepening shallow clone. +* [git-pull-run](https://www.npmjs.com/package/git-pull-run) is an npm package + which automatically runs commands like `npm install` when fetching changes from git, + but only if certain files have changed. Extended version of script presented in + [Automatically Install NPM Dependencies on Git Pull](https://dev.to/zirkelc/automatically-install-npm-dependencies-on-git-pull-bg0). +* [Husky.Net](https://github.com/alirezanet/Husky.Net) is git hooks manager for .NET, + among others making it possible to run linters against staged git files. + Inspired by [husky](https://github.com/typicode/husky) + and [lint-staged](https://github.com/okonet/lint-staged) + and a few other tools, and by [Using C# code in your git hooks](https://kaylumah.nl/2019/09/07/using-csharp-code-your-git-hooks.html) + article by Max Hamulyák (2019). + * [lint-staged](https://github.com/okonet/lint-staged) was first mentioned in + [Git Rev News #45](https://git.github.io/rev_news/2018/11/21/edition-45/) + * [husky](https://github.com/typicode/husky) was first mentioned in + [Git Rev News #63](https://git.github.io/rev_news/2020/05/28/edition-63/) ## Credits From e78fce0c0241a10d08d29b7f48055a38528dfada Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 21:14:14 +0530 Subject: [PATCH 0184/1248] Mentoring-Guide: fix broken link to Matheus' GSoC blogs --- Mentoring-Program-Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index dc5116c831..cf0a65b92d 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -57,7 +57,7 @@ the Git community, including your mentors. Your blog is also something that can help you in your career by reflecting positively on your abilities and dedication. A good example is Matheus' GSoC blog posts: -https://matheustavares.gitlab.io/gsoc +https://matheustavares.gitlab.io/tags/gsoc/ ## Regular updates From 843df155e7c025c2c79c4624b7bd0661afbe2177 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 22:17:35 +0530 Subject: [PATCH 0185/1248] Mentoring-Guide: ensure blog links are hyperlinked Plain HTML links are not automatically hyperlinked in the rendered site. So, correct them this by using Markdown link syntax while using this opportunity to also add some more information about the links. While at it, also add a link to Charvi's blog source repository. --- Mentoring-Program-Guide.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index cf0a65b92d..8396ed0977 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -38,15 +38,12 @@ You might want to check which blogging tools previous Outreachy interns and GSoC students used. Using a Git related tools is of course a good idea. -For example using GitLab and GitLab pages: - -https://mirucam.gitlab.io/outreachy_blog/ -https://matheustavares.gitlab.io/ -https://gitlab.com/MatheusTavares/matheustavares.gitlab.io/ +- [Miriam Rubio's Outreachy intership experiences](https://mirucam.gitlab.io/outreachy_blog/) +- [Matheus Tavares's Blog](https://matheustavares.gitlab.io/) [ [source](https://gitlab.com/MatheusTavares/matheustavares.gitlab.io/) ] Using GitHub: -https://charvi-077.github.io/ +- [Charvi Mendiratta's Outreachy Internship Experiences](https://charvi-077.github.io/) [ [source](https://github.com/charvi-077/charvi-077.github.io) ] If you already have something setup using other tools though, even if it's not Git based, it's perfectly OK to use what you already have, @@ -57,7 +54,7 @@ the Git community, including your mentors. Your blog is also something that can help you in your career by reflecting positively on your abilities and dedication. A good example is Matheus' GSoC blog posts: -https://matheustavares.gitlab.io/tags/gsoc/ +[Matheus Tavares' GSoC posts](https://matheustavares.gitlab.io/tags/gsoc/) ## Regular updates From 3bb9c520a667d481181146c5e78e8e26673867ba Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 22:20:21 +0530 Subject: [PATCH 0186/1248] Mentoring-Guide: better distinguish info about notifying list and mentors The information about notifying the mailing list and the mentors about new blogs seem to be mixed together which made it a bit hard to understand the paragraph during a first read. So, better split them to distinguish them. This hopefull makes the text better readable. --- Mentoring-Program-Guide.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index 8396ed0977..c90a1f7af3 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -64,20 +64,20 @@ planning to work on and how. The best way to update everyone about your work is probably to post on your blog. We understand though that you might not want to put -everything you might want to say on your blog. Also people on the Git -mailing list might be interested to know that you published something -on your blog, so that they can give you some help or feedback about -your next steps or problems you are facing. Your mentors should be -notified too that you posted something. - -So we think that you might want to email the mailing list to notify -every one about each new blog post. If you don't feel like doing that, +everything you might want to say on your blog. + +People on the Git mailing list might be interested to know that you +published something on your blog, so that they can give you some help +or feedback about your next steps or problems you are facing. So we +think that you might want to email the mailing list to notify every +one about each new blog post. If you don't feel like doing that, we might find an alternative solution, but letting people know is often a good idea to get help and suggestions. You can also take advantage of the notification email to ask for help or to ask questions related to issues you have. -To notify your mentors, you can either cc them when you email the +Your mentors should be notified too that you posted something. To +notify your mentors, you can either cc them when you email the mailing list, or you can send them a separate email. In a separate email you might add things that you might not want to post on your blog or to the mailing list. From fa6168bbbe56937149bde8c80f2b78e2817aed7f Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 22:26:33 +0530 Subject: [PATCH 0187/1248] Mentoring-Guide: use proper syntax for ordered list The syntax used for an ordered list isn't one that is recognized by the Markdown parser used for the generated site. So, the list is rendered in HTML as though it is not a list thus needing change done in bda6f86 (Mentoring-Program-Guide: make lines break, 2021-06-14). Change the syntax for the list to use the proper Markdown syntax for an ordered list. As this makes the fix mentioned in the commit above unnecessary, that change has been reverted too. --- Mentoring-Program-Guide.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index c90a1f7af3..6092c0b48a 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -93,11 +93,11 @@ following week. In the blog post update and your emails to your mentors and the mailing list, it is important that you cover all the following topics: -1) what you have done since last update and how -2) what is blocking you if anything -3) what you find difficult to do or understand -4) what things you think should be easier -5) what you are planning to work on and how +1. what you have done since last update and how +2. what is blocking you if anything +3. what you find difficult to do or understand +4. what things you think should be easier +5. what you are planning to work on and how The reason we ask for 2), 3) and 4) is that often interns or students don't know about things, like existing documentation, historical From 95408673b35d6604baaa81fb885a69adc23f09ec Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 22:59:47 +0530 Subject: [PATCH 0188/1248] Mentoring-Guide: remove a misplaced comma --- Mentoring-Program-Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index 6092c0b48a..589b10f431 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -151,7 +151,7 @@ messaging group they all belong to), though we know it's not always possible or practical when you are blocked. It could be OK to discuss personal or technical things or anything not -directly related to your project with only one of your mentors, (like +directly related to your project with only one of your mentors (like with anyone else). Just ask them. If you prefer to have a completely fixed schedule from the start as From ff451fbe0d1991754b0aeedbf6d98820ef813e2b Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 23:00:11 +0530 Subject: [PATCH 0189/1248] Mentoring-Guide: add a conclusion section --- Mentoring-Program-Guide.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index 589b10f431..75a6389f6c 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -341,3 +341,12 @@ A few things that you might want to do are: - Don't forget using [GSoC] or [Outreachy]. - Don't forget using [RFC] or [WIP], if it's relevant. + +# Conclusion + +Hope you got an idea about how things usually go during the internship. +As a reminder, don't be surprised if your mentors ask for things that +are a bit different than what is described here. Typically your mentors +will expect that you become more autonomous. + +Wishing you luck during the internship! From 330cc7859e34bbe5016ec6516556ffdd6d2ef852 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 23:14:00 +0530 Subject: [PATCH 0190/1248] Ignore the vendor directory The 'vendor' directory is created when executing `bundle install` in the repository. There's no point of tracking it. So, ignore the 'vendor' directory. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 29949d4658..eb676c0ab1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /_site /Gemfile.lock +/vendor From 14acd09e6165048d8f98e92332596b340aba2bb2 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 26 Jan 2022 23:15:18 +0530 Subject: [PATCH 0191/1248] General-Application-Information: rephrase a phrase for readability It feels like "with" is better placed right after "familiar" than "or not". --- General-Application-Information.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/General-Application-Information.md b/General-Application-Information.md index 3da60a0996..c601c04cdd 100644 --- a/General-Application-Information.md +++ b/General-Application-Information.md @@ -216,7 +216,7 @@ guidance to improve the proposal and avoid the above potential issues. The process of reviewing microproject patches and applications on the mailing list can take a lot of time. Depending on your experience and -the tools you are already familiar or not with, it can also take some +the tools you are already familiar with or not, it can also take some time to set up and get used to properly sending emails and patches to the mailing list, interacting with people on the mailing list, reading the documentation, getting used to the code base, etc. That's why we From 6e48887ef48729ad6ca80ee8533fafba59b3bd41 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 28 Jan 2022 16:16:19 +0100 Subject: [PATCH 0192/1248] rn-83: move highlights from 2.35 --- rev_news/drafts/edition-83.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-83.md b/rev_news/drafts/edition-83.md index 607676afc7..5aa9dc359c 100644 --- a/rev_news/drafts/edition-83.md +++ b/rev_news/drafts/edition-83.md @@ -35,13 +35,12 @@ This edition covers what happened during the month of December 2021. ## Releases -* [Highlights from Git 2.35](https://github.blog/2022-01-24-highlights-from-git-2-35/) - by Taylor Blau on GitHub Blog. - ## Other News __Various__ +* [Highlights from Git 2.35](https://github.blog/2022-01-24-highlights-from-git-2-35/) + by Taylor Blau on GitHub Blog. * [Linux Foundation launches Open Source Software Development, Linux, and **Git** certification](https://www.zdnet.com/article/linux-foundation-launches-open-source-software-development-linux-git-certification/), and three new training courses on the edX platform (including [Git for Distributed Software Development (LFD109x)](https://www.edx.org/course/git-for-distributed-development)). From c17b708617722c7ba14320026e8f04ec18e6db10 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 28 Jan 2022 16:20:22 +0100 Subject: [PATCH 0193/1248] rn-83: add releases --- rev_news/drafts/edition-83.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/rev_news/drafts/edition-83.md b/rev_news/drafts/edition-83.md index 5aa9dc359c..81e127e6aa 100644 --- a/rev_news/drafts/edition-83.md +++ b/rev_news/drafts/edition-83.md @@ -35,6 +35,23 @@ This edition covers what happened during the month of December 2021. ## Releases ++ Git [2.35.0](https://public-inbox.org/git/xmqqee4x3pij.fsf@gitster.g/), +[2.35.0-rc2](https://public-inbox.org/git/xmqqwniui6wd.fsf@gitster.g/), +[2.35.0-rc1](https://public-inbox.org/git/xmqq35lp68rw.fsf@gitster.g/), +[2.35.0-rc0](https://public-inbox.org/git/xmqq7db7xfgn.fsf@gitster.g/) ++ Git for Windows [2.35.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.35.0.windows.1), +[2.35.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.35.0-rc2.windows.1), +[2.35.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.35.0-rc1.windows.1), +[2.35.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.35.0-rc0.windows.1) ++ GitLab [14.7](https://about.gitlab.com/releases/2022/01/22/gitlab-14-7-released/) +[14.6.3](https://about.gitlab.com/releases/2022/01/17/gitlab-14-6-3-released/), +[14.6.2, 14.5.3, and 14.4.5](https://about.gitlab.com/releases/2022/01/11/security-release-gitlab-14-6-2-released/), +[14.6.1](https://about.gitlab.com/releases/2022/01/04/gitlab-14-6-1-released/) ++ GitHub Enterprise [3.3.2](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.2), +[3.2.7](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.7), +[3.1.15](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.15), +[3.0.23](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.23) + ## Other News __Various__ From d251b33cd27a7d2ce8bbe16994bbd64819dbbd78 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 29 Jan 2022 00:35:13 +0530 Subject: [PATCH 0194/1248] Mentoring-Guide: make adjustments to the conclusion Use mentoring program generic words in the conclusion and rephrase a sentence based on Christian's feedback. --- Mentoring-Program-Guide.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Mentoring-Program-Guide.md b/Mentoring-Program-Guide.md index 75a6389f6c..101dbbb25d 100644 --- a/Mentoring-Program-Guide.md +++ b/Mentoring-Program-Guide.md @@ -344,9 +344,11 @@ A few things that you might want to do are: # Conclusion -Hope you got an idea about how things usually go during the internship. -As a reminder, don't be surprised if your mentors ask for things that -are a bit different than what is described here. Typically your mentors -will expect that you become more autonomous. - -Wishing you luck during the internship! +Hope you got an idea about how things usually go during the mentoring +period of a mentoring program such as GSoC or Outreachy. As a reminder, +don't be surprised if your mentors ask for things that are a bit different +than what is described here. Typically your mentors will expect that you +become more autonomous over time and will adjust things depending on +how autonomous you already are. + +Wishing you luck during your mentoring period! From 91a6b473c096d4776c145ba51e948f27af16f791 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 29 Jan 2022 23:17:06 +0530 Subject: [PATCH 0195/1248] Add GSoC 2022 material and hide 2021 material The ideas document is mostly empty now. Ideas are yet to be gathered from the community and added. We also hide the SoC 2021 documents and Outreachy microproject documents as they're stale now. The SoC 2021 org application isn't hidden as we haven't applied for 2022 yet. --- Outreachy-23-Microprojects.md | 3 +- SoC-2021-Ideas.md | 1 + SoC-2022-Ideas.md | 21 +++++++ SoC-2022-Microprojects.md | 112 ++++++++++++++++++++++++++++++++++ 4 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 SoC-2022-Ideas.md create mode 100644 SoC-2022-Microprojects.md diff --git a/Outreachy-23-Microprojects.md b/Outreachy-23-Microprojects.md index 9f82653366..353f179b6d 100644 --- a/Outreachy-23-Microprojects.md +++ b/Outreachy-23-Microprojects.md @@ -1,6 +1,7 @@ --- layout: default title: Outreachy Winter 2021-2022 Applicant Microprojects +navbar: false --- ## Introduction @@ -109,4 +110,4 @@ You can refer to the implementation of this patch: [thread](https://lore.kernel.org/git/e68635cda515a9cd504c1d7366e9c353ab2adb2e.1629882532.git.gitgitgadget@gmail.com/) You can use t/perf for performance testing between upstream and your patches. -[t/perf/README](https://github.com/git/git/blob/master/t/perf/README) \ No newline at end of file +[t/perf/README](https://github.com/git/git/blob/master/t/perf/README) diff --git a/SoC-2021-Ideas.md b/SoC-2021-Ideas.md index 77b05b5914..1d1fc3f821 100644 --- a/SoC-2021-Ideas.md +++ b/SoC-2021-Ideas.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2021 Ideas +navbar: false --- This is the idea page for Summer of Code 2021 for Git. diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md new file mode 100644 index 0000000000..c5d3341d7a --- /dev/null +++ b/SoC-2022-Ideas.md @@ -0,0 +1,21 @@ +--- +layout: default +title: SoC 2022 Ideas +--- + +This is the idea page for Summer of Code 2022 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. + +### Idea X +_TBD: Ideas to be added based on discussion with community_ diff --git a/SoC-2022-Microprojects.md b/SoC-2022-Microprojects.md new file mode 100644 index 0000000000..d4500292f0 --- /dev/null +++ b/SoC-2022-Microprojects.md @@ -0,0 +1,112 @@ +--- +layout: default +title: SoC 2022 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 + +### Add more builtin patterns for userdiff + +"git diff" shows the function name corresponding to each hunk after +the @@ ... @@ line. For common languages (C, HTML, Ada, Matlab, ...), +the way to find the function name is built-in Git's source code as +regular expressions (see userdiff.c). A few languages are common +enough to deserve a built-in driver, but are not yet recognized. For +example, shell. + +This project requires a very good knowledge of regular expressions. + +It is easy though to find examples of how this can be done by +searching the code base and the mailing list archive, as this has +already been done for a number of languages. + +### Replace a run_command*() call by direct calls to C functions + +See for example what Junio did in +[ffcb4e94d3](https://github.com/git/git/commit/ffcb4e94d3) (bisect: do +not run show-branch just to show the current commit, 2021-07-27). + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Use `test_path_is_*` functions in test scripts + +Find one test script that verifies the presence/absence of +files/directories with 'test -(e|f|d|...)' and replace them with the +appropriate `test_path_is_file`, `test_path_is_dir`, etc. helper +functions. + +If you can't find one please tell us, along with the command you used +to search, so that we can remove this microproject idea. + +### Avoid pipes in git related commands in test scripts + +See the commit +[c6f44e1da5](https://github.com/git/git/commit/c6f44e1da5e88e34) +for example, and then do the same thing in one other test script. + +The git command should be on the left side of the pipe. + +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. + +### Use unsigned integral type for collection of bits. + +Pick one field of a structure that (1) is of signed integral type and (2) is +used as a collection of multiple bits. Discuss if there is a good reason +why it has to be a signed integral field and change it to an unsigned +type otherwise. [[thread](https://public-inbox.org/git/xmqqsiebrlez.fsf@gitster.dls.corp.google.com)] + +Even though the amount of code to write is small, these projects +involve a lot of prior work to understand the specification and deal +with all potential corner-cases. + +### Modernize a test script + +A number of our test scripts have been written a long time ago in a +style that is now outdated. + +In the following email it is explained in details how to modernize and +clean up the t7001 test script: + + + +t7001 is not the only test script where similar changes could be made +though. + +Find one test script that needs some of the same changes and make +them. Please make sure that the test script is not already being +worked on by asking on the mailing list before starting to work on it. + +There should be only one kind of change per commit. For example if one +of your commits indents test bodies with TABs, instead of spaces, then +this should be the only kind of change in this commit. + +### Add --no-sort option for git-for-each-ref + +In "git for-each-ref", `ref_array_sort()` is used to sort ref_array with +sorting options. Even if the user does not provide any `--sort` option, +`ref_default_sorting()` will also provide the default sorting options with +the sort key "refname". + +But it turns out that the ref_array we get through `filter_refs()` is +already sorted by "refname". So providing a `--no-sort` option may +improve the performance of git for-each-ref when we don't provide any +sorting options on the command line. [thread](https://lore.kernel.org/git/YTNpeH+jO0zQgAVT@coredump.intra.peff.net/), +[thread](https://lore.kernel.org/git/YTTARcEvpXWSDfYW@coredump.intra.peff.net/) + +But the `--no-sort` option seems to be disabled in "git for-each-ref", +see "NEEDWORK" hint in `parse_opt_ref_sorting()`. You may need a new +list api to replace the original linked list implementation for ref_sorting. +You can refer to the implementation of this patch: +[thread](https://lore.kernel.org/git/e68635cda515a9cd504c1d7366e9c353ab2adb2e.1629882532.git.gitgitgadget@gmail.com/) + +You can use t/perf for performance testing between upstream and your patches. +[t/perf/README](https://github.com/git/git/blob/master/t/perf/README) From 9fed54a9ee5b503e397338bcceef920d36f08c9b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 29 Jan 2022 19:06:44 +0100 Subject: [PATCH 0196/1248] rn-83: add HTML pages article --- rev_news/drafts/edition-83.md | 81 ++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-83.md b/rev_news/drafts/edition-83.md index 81e127e6aa..3da45a358c 100644 --- a/rev_news/drafts/edition-83.md +++ b/rev_news/drafts/edition-83.md @@ -25,9 +25,86 @@ This edition covers what happened during the month of December 2021. ### Reviews --> - + +* [Custom subcommand help handlers](https://lore.kernel.org/git/CABceR4ZW4rRWZnH0ZBkWty_H84Z4CmXque_LO+1edETEWrO8PQ@mail.gmail.com/) + + Sean Allred wrote to the mailing list saying that in his company he + is distributing a Git subcommand he calls `git-foo`, which can + display its own help, but he was struggling to make this work. + + Running `git foo --help` doesn't pass `--help` to `git-foo`, but + instead it is rewritten internally in Git to `git help foo`, which + tries to find and then display an help page for `git-foo`. This + could have worked if Sean could install an help page for `git-foo` + along with the help pages for regular Git commands. + + On Windows though by default help pages are displayed in the HTML + format, instead of in the 'man' or 'info' format, and these pages + are expected to be in a Git4Win-controlled installation directory + that he'd rather not touch. + + One solution he suggested would be to not rewrite `git foo --help` + to `git help foo`, when the `foo` command is not a builtin. + + Ævar Arnfjörð Bjarmason replied to this suggestion that this might + not please everyone, as `git send-email --help` and + `git annex --help` are currently expected to show the manual, even + though these commands are not builtins. + + Dscho, alias Johannes Schindelin, also replied to Sean, that just + looking whether the command is a builtin or not, might not be enough + as Git also install scripts or executables, and provided some + example code implementing an `is_in_git_exec_path()` function. + + Ævar and Dscho then discussed a bit if such a function was needed as + Ævar pointed that we already have a way to dump builtins, other known + commands and commands unknown to Git, using respectively: + + - `git --list-cmds=builtins` + - `git --list-cmds=main` + - `git --list-cmds=others` + + Meanwhile Erik Cervin Edin replied to Ævar's initial reply to Sean + that, when a Git alias is configured for `foo` and it's used with + `--help`, the user is told that `foo` is an alias for another + command and the help page for the other command is displayed. So he + suggested doing something similar for non-builtin commands that are + missing help pages. + + Erik also mentioned that using `git-foo --help` directly or + `git foo -h`, instead of `git foo --help`, would allow `git-foo` to + handle everything. + + brian m. carlson replied to Erik that for man pages it might not be + possible to distinguish a missing page from another error. He then + wondered if there is a similar environment variable as `MANPATH` for + HTML pages, as `MANPATH` on Unix systems instructs `man` to search + for pages in the directories specified in this variable. He also + suggested installing the HTML documentation alongside Git's, as it's + expected on Unix systems to have all man pages installed into the + same place. + + Junio Hamano, the Git maintainer, then agreed to this suggestion. + + Erik replied to brian and Junio that there is no standard or + convention around HTML documentation, and talked about the + `help.htmlPath` configuration variable that can be used to tell Git + where to look for HTML pages. He also suggested falling back to + searching a missing HTML page at the path of the command. + + The discussion continued for sometime between Erik, Junio, Philip + Oakley and Dscho, especially around the topic of aliases. + + Then Junio spotted the `GIT_HTML_PATH` environment variable in the + code, and noticed that it could currently be used to specify just + one directory for HTML pages, while `MANPATH` can be a + colon-separated list of directories. So he suggested changing the + code to allow `GIT_HTML_PATH` to also be a colon-separated list of + directories. This would allow people to also install HTML pages in + directories without needing administrator rights. + + It looks like no one has yet started working on this though. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 1867eba7856360bea9ba83a4c0317c051ec9837b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 1 Feb 2022 09:07:50 +0100 Subject: [PATCH 0207/1248] SoC-2022-Microprojects: remove --no-sort entry --- SoC-2022-Microprojects.md | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/SoC-2022-Microprojects.md b/SoC-2022-Microprojects.md index d4500292f0..225fb1afaf 100644 --- a/SoC-2022-Microprojects.md +++ b/SoC-2022-Microprojects.md @@ -88,25 +88,3 @@ 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. - -### Add --no-sort option for git-for-each-ref - -In "git for-each-ref", `ref_array_sort()` is used to sort ref_array with -sorting options. Even if the user does not provide any `--sort` option, -`ref_default_sorting()` will also provide the default sorting options with -the sort key "refname". - -But it turns out that the ref_array we get through `filter_refs()` is -already sorted by "refname". So providing a `--no-sort` option may -improve the performance of git for-each-ref when we don't provide any -sorting options on the command line. [thread](https://lore.kernel.org/git/YTNpeH+jO0zQgAVT@coredump.intra.peff.net/), -[thread](https://lore.kernel.org/git/YTTARcEvpXWSDfYW@coredump.intra.peff.net/) - -But the `--no-sort` option seems to be disabled in "git for-each-ref", -see "NEEDWORK" hint in `parse_opt_ref_sorting()`. You may need a new -list api to replace the original linked list implementation for ref_sorting. -You can refer to the implementation of this patch: -[thread](https://lore.kernel.org/git/e68635cda515a9cd504c1d7366e9c353ab2adb2e.1629882532.git.gitgitgadget@gmail.com/) - -You can use t/perf for performance testing between upstream and your patches. -[t/perf/README](https://github.com/git/git/blob/master/t/perf/README) From b65a98535a825943c87647bef12540b27189b73b Mon Sep 17 00:00:00 2001 From: Philip Oakley Date: Tue, 1 Feb 2022 14:03:15 +0000 Subject: [PATCH 0208/1248] archive.md: Update `About Rev News` link The current `About Rev News` link results in a 404. Link direct to the git.github.io page. Fixes one point in #545 Signed-off-by: Philip Oakley philipoakley@iee.email --- rev_news/archive.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/archive.md b/rev_news/archive.md index a02bf67f6a..be8a2074ca 100644 --- a/rev_news/archive.md +++ b/rev_news/archive.md @@ -5,7 +5,7 @@ title: Git Rev News Archive # Archive -Here you can see all the previous editions. See [About Git Rev News](/rev_news/rev_news/) for ways you can subscribe. +Here you can see all the previous editions. See [About Git Rev News](https://git.github.io/about/) for ways you can subscribe.
    {% for post in site.posts %} From aab797c48417860dcbba18502a380eb8d2a9448b Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 1 Feb 2022 23:53:12 +0100 Subject: [PATCH 0209/1248] Made a few leftover relative URLs absolute. Special thanks to Philip Oakley. --- Outreachy-12.md | 4 ++-- SoC-2014-Org-Application.md | 2 +- SoC-2015-Org-Application.md | 2 +- SoC-2016-Org-Application.md | 2 +- SoC-2017-Org-Application.md | 2 +- SoC-2018-Org-Application.md | 2 +- SoC-2019-Org-Application.md | 2 +- SoC-2020-Org-Application.md | 2 +- SoC-2021-Org-Application.md | 2 +- index.md | 4 ++-- rev_news/rev_news.md | 4 ++-- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Outreachy-12.md b/Outreachy-12.md index c9ba023f80..427e610ce2 100644 --- a/Outreachy-12.md +++ b/Outreachy-12.md @@ -25,14 +25,14 @@ Before then, you should fill out an and complete a small [coding project](https://wiki.gnome.org/action/show/Outreachy?action=show&redirect=OutreachProgramForWomen#Make_a_Small_Contribution). We have a list of -[microprojects](../SoC-2016-Microprojects), but +[microprojects](https://git.github.io/SoC-2016-Microprojects), but you may also work with a potential mentor to come up with a contribution related to your proposed project. ## Project Ideas You can find a list of project ideas on our [ideas -page](../SoC-2016-Ideas). Note that this just a list of suggested +page](https://git.github.io/SoC-2016-Ideas). Note that this just a list of suggested projects; we are happy to hear proposals for new projects. If you would like to propose an idea, please make sure to solicit feedback from the mailing list (see below) and find someone willing to be a mentor for it. diff --git a/SoC-2014-Org-Application.md b/SoC-2014-Org-Application.md index a3ea432de6..7f5fa5704b 100644 --- a/SoC-2014-Org-Application.md +++ b/SoC-2014-Org-Application.md @@ -31,7 +31,7 @@ GPLv2 ## Logo URL -![Git Logo](/images/logo.png) +![Git Logo](https://git.github.io/images/logo.png) ## Ideas list diff --git a/SoC-2015-Org-Application.md b/SoC-2015-Org-Application.md index 1f4e70714d..15793a97f7 100644 --- a/SoC-2015-Org-Application.md +++ b/SoC-2015-Org-Application.md @@ -31,7 +31,7 @@ GPLv2 ## Logo URL -![Git Logo](/images/logo.png) +![Git Logo](https://git.github.io/images/logo.png) ## Ideas list diff --git a/SoC-2016-Org-Application.md b/SoC-2016-Org-Application.md index ce4e27a1d4..1fbd9b975f 100644 --- a/SoC-2016-Org-Application.md +++ b/SoC-2016-Org-Application.md @@ -18,7 +18,7 @@ fast, scalable, distributed revision control system ## Logo -![Git Logo](/images/Git-Logo-1788C.png) +![Git Logo](https://git.github.io/images/Git-Logo-1788C.png) ## Primary Open Source License diff --git a/SoC-2017-Org-Application.md b/SoC-2017-Org-Application.md index 4aa70925ea..580872b40e 100644 --- a/SoC-2017-Org-Application.md +++ b/SoC-2017-Org-Application.md @@ -18,7 +18,7 @@ fast, scalable, distributed revision control system ## Logo -![Git Logo](/images/Git-Logo-1788C.png) +![Git Logo](https://git.github.io/images/Git-Logo-1788C.png) ## Primary Open Source License diff --git a/SoC-2018-Org-Application.md b/SoC-2018-Org-Application.md index 9184b5ac0f..3b39c6d112 100644 --- a/SoC-2018-Org-Application.md +++ b/SoC-2018-Org-Application.md @@ -18,7 +18,7 @@ fast, scalable, distributed revision control system ## Logo -![Git Logo](/images/Git-Logo-1788C.png) +![Git Logo](https://git.github.io/images/Git-Logo-1788C.png) ## Primary Open Source License diff --git a/SoC-2019-Org-Application.md b/SoC-2019-Org-Application.md index b13da6cbe0..e03fec155e 100644 --- a/SoC-2019-Org-Application.md +++ b/SoC-2019-Org-Application.md @@ -18,7 +18,7 @@ fast, scalable, distributed revision control system ## Logo -![Git Logo](/images/Git-Logo-1788C.png) +![Git Logo](https://git.github.io/images/Git-Logo-1788C.png) ## Primary Open Source License diff --git a/SoC-2020-Org-Application.md b/SoC-2020-Org-Application.md index 39646a7479..f1f70c0804 100644 --- a/SoC-2020-Org-Application.md +++ b/SoC-2020-Org-Application.md @@ -18,7 +18,7 @@ fast, scalable, distributed revision control system ## Logo -![Git Logo](/images/Git-Logo-1788C.png) +![Git Logo](https://git.github.io/images/Git-Logo-1788C.png) ## Primary Open Source License diff --git a/SoC-2021-Org-Application.md b/SoC-2021-Org-Application.md index 0fea3f389c..4128dacda7 100644 --- a/SoC-2021-Org-Application.md +++ b/SoC-2021-Org-Application.md @@ -199,7 +199,7 @@ fast, scalable, distributed revision control system ## Logo -![Git Logo](/images/Git-Logo-1788C.png) +![Git Logo](https://git.github.io/images/Git-Logo-1788C.png) ## Primary Open Source License diff --git a/index.md b/index.md index e7b05a788f..d2311980a4 100644 --- a/index.md +++ b/index.md @@ -18,8 +18,8 @@ stumbled into this by mistake, you may want: These pages are intended to collect information useful to Git developers. This is also the web home of: - - the [Git Rev News newsletter](/rev_news/), - - the [involvement of the Git project in mentoring programs](/General-Application-Information/) + - the [Git Rev News newsletter](https://git.github.io/rev_news/), + - the [involvement of the Git project in mentoring programs](https://git.github.io/General-Application-Information/) like [Outreachy](https://www.outreachy.org/) and the [GSoC (Google Summer of Code)](https://summerofcode.withgoogle.com/) diff --git a/rev_news/rev_news.md b/rev_news/rev_news.md index 598cf1869c..116d25d048 100644 --- a/rev_news/rev_news.md +++ b/rev_news/rev_news.md @@ -14,12 +14,12 @@ some of the interesting Git-related articles, tools and projects we come across. ## Subscribe -Subscribe to Git Rev News by [RSS/atom](/feed.xml) or by signing up for the +Subscribe to Git Rev News by [RSS/atom](https://git.github.io/feed.xml) or by signing up for the [Email Newsletter](http://eepurl.com/bjP2WT). ## Archives -You can find a listing of all previous editions on the [Git Rev News Archive](/rev_news/archive/) page. +You can find a listing of all previous editions on the [Git Rev News Archive](https://git.github.io/rev_news/archive/) page. ## Contribute From 03c00136a67f9b16f1e345a16ac19c375bee3b20 Mon Sep 17 00:00:00 2001 From: Philip Oakley Date: Fri, 4 Feb 2022 11:42:13 +0000 Subject: [PATCH 0210/1248] add 'Rev News' note to the top level README page The git.github.io pages set out to be a website to help Git Developers. Highlight the linkage to the Git Rev News pages to help new contributors find the Rev News contributions particularly when the repo layout is subtly different from web pages. Signed-off-by: Philip Oakley --- _includes/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_includes/README.md b/_includes/README.md index b106d6dc8a..d15164c07a 100644 --- a/_includes/README.md +++ b/_includes/README.md @@ -16,6 +16,9 @@ It is meant to be edited collaboratively like a wiki, except that instead of a web form, you get to use a text editor and Git. What could be better? +These pages also host the [Git Rev News](https://git.github.io/rev_news/), +see the [About Git Rev News](https://git.github.io/rev_news/rev_news/) page. + If you want push access, contact peff@peff.net and provide your GitHub username. You may also send patches by mail (and feel free to cc git@vger.kernel.org if appropriate). From 5cc14bada45da5710198b4c49f94cca0951e2726 Mon Sep 17 00:00:00 2001 From: Philip Oakley Date: Fri, 4 Feb 2022 11:58:33 +0000 Subject: [PATCH 0211/1248] add mapping for Rev_News files and link to the usual draft The Git Rev News web pages are not an immediately obvious mapping to the archive posts directory. Spell it out. Also add a link to the usual draft directory to help light reading contributors who maybe using GitHub's web interface. --- rev_news/rev_news.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/rev_news/rev_news.md b/rev_news/rev_news.md index 116d25d048..0d559192b0 100644 --- a/rev_news/rev_news.md +++ b/rev_news/rev_news.md @@ -21,6 +21,11 @@ Subscribe to Git Rev News by [RSS/atom](https://git.github.io/feed.xml) or by si You can find a listing of all previous editions on the [Git Rev News Archive](https://git.github.io/rev_news/archive/) page. +The web page is autogenerated based on the files stored in the `_posts` directory. +The basic mapping is edition https://git.github.io/rev_news/YYYY/MM/DD/edition-NN/ +will be found in repo at +https://github.com/git/git.github.io/blob/master/_posts/YYYY-MM-DD-edition-NN.markdown + ## Contribute You can contribute to the upcoming edition by sending [pull requests](https://github.com/git/git.github.io/pulls) @@ -28,7 +33,8 @@ or opening [issues](https://github.com/git/git.github.io/issues). There is usually an issue opened for the upcoming edition. This issue should have near its top a link to a sometimes very rough draft of the -upcoming edition. +upcoming edition. The draft for the next edition is usually +[here](https://github.com/git/git.github.io/tree/master/rev_news/drafts) Don't hesitate to use the `edit` button that looks like a pen to edit this draft and to change whatever you want. When you are done, you From ca84c79fe7f5c46a2a9a431d8bd3748df7bf3840 Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Wed, 9 Feb 2022 10:16:35 -0500 Subject: [PATCH 0212/1248] Soc-2022-Ideas: Sparse Index Integrations Signed-off-by: Derrick Stolee --- SoC-2022-Ideas.md | 56 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index c5d3341d7a..86d6c947b4 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -17,5 +17,57 @@ about refactoring projects versus projects that implement new features" in the [general application information](https://git.github.io/General-Application-Information) page though. -### Idea X -_TBD: Ideas to be added based on discussion with community_ +### More Sparse Index Integrations + +The [spare index feature](https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/) +accelerates Git commands when using +[sparse-checkout in cone mode](https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/). +This works by modifying the on-disk index file in a way that includes +"sparse directory" entries instead of only file entries. This requires +care when enabling the sparse index for different commands, as custom +logic might be necessary. At minimum, interaction with the sparse index +needs to be carefully tested in the Git test suite when enabling it. + +The most-used commands have already been integrated with the sparse +index feature. This process usually takes a few steps: + +1. Add tests to [`t1092-sparse-checkout-compatibility.sh`](https://github.com/git/git/blob/master/t/t1092-sparse-checkout-compatibility.sh) + for the builtin, with a focus on what happens for paths outside of the + sparse-checkout cone. +2. Disable [the `command_requires_full_index` setting](https://github.com/git/git/blob/master/repository.h#L35) + in the builtin and ensure the tests pass. +3. If the tests do not pass, then alter the logic to work with the sparse index. +4. Add tests to [check that a sparse index stays sparse](https://github.com/git/git/blob/38062e73e009f27ea192d50481fcb5e7b0e9d6eb/t/t1092-sparse-checkout-compatibility.sh#L873-L939). +5. Add [performance tests](https://github.com/git/git/blob/master/t/perf/p2000-sparse-operations.sh) + to demonstrate speedup. + +Here is a list of builtins that could be integrated with the sparse index. +They are generally organized in order of least-difficult to most-difficult. +This allows the student to gain partial success early in the project and +the student can complete as many as possible in the timeframe (without +expectation that _all_ will be completed during the project). + +* `git mv` +* `git rm` +* `git grep` +* `git rev-parse` +* `git fsck` +* `git check-attr` +* `git describe` +* `git diff-files` +* `git diff-index` +* `git diff-tree` +* `git worktree` +* `git write-tree` +* `git apply` +* `git am` +* `git checkout--worker` (for parallel checkout) +* `git merge-index` +* `git rerere` + +Project Size: Medium +Languages: C, shell(bash) + +Co-Mentors: +* Derrick Stolee `` +* Victoria Dye `` From 33718755a061bc89368aad522f10eab9242ae3db Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 10 Feb 2022 00:21:27 +0100 Subject: [PATCH 0213/1248] Add an 'How to introduce yourself' section --- General-Microproject-Information.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 3254024a4b..8b5257ed73 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -309,3 +309,32 @@ one of those options. You can search the mailing list for words like "low hanging fruit", or "low-hanging fruits", "hint, hint", "later", "we should", "I plan to"... + +## How to introduce yourself to the community + +It's likely that you will introduce yourself to the community around +the same time you are going to start working on a micro-project. + +We don't require you to send us a special introductory email or to +tell us about your skills, interests, experience, background, +etc. Feel free to tell us what you want about yourself if you wish +though. + +But please, make it clear that you are interested in a specific +mentoring program and use the right tag, like [GSoC], [Outreachy], etc +at the beginning of the subject of your emails. + +As we usually don't know your interests, skills, experience, +background, etc, it's hard for us to select a micro-project for +you, and it's part of your job as an applicant to research a good +micro-project for you. It will show us that you will be able to +select a good project for you and properly research it. + +You can ask for help if there are things you don't understand in a +micro-project description, or if you have some trouble working on your +micro-project or even finding a micro-project. But please be very +specific in your questions and tell us in details what you searched or +tried, what you expected and what didn't work as you +expected. Something like "I couldn't find a good micro-project for +me", for example, doesn't tell us much, and doesn't give us any idea +about how we could help you. From e76f1a1154615faf8b1cf6e207c0d95cdfc43dc4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 13 Feb 2022 14:23:45 +0100 Subject: [PATCH 0214/1248] Soc-2022-Ideas: add 'Unify ref-filter formats' --- SoC-2022-Ideas.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index 86d6c947b4..7fcf71a616 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -71,3 +71,27 @@ Languages: C, shell(bash) Co-Mentors: * Derrick Stolee `` * Victoria Dye `` + +### Unify ref-filter formats with other pretty formats + +Git has an old problem of duplicated implementations of some +logic. For example, Git had at least 4 different implementations to +format command output for different commands. + +Our previous GSoC students and Outreachy interns unified some of the +formating logic into +[ref-filter](https://github.com/git/git/blob/master/ref-filter.h) and +got rid of similar logic in some command specific files. Current task +is to continue this work and reuse ref-filter formatting logic in +[pretty](https://github.com/git/git/blob/master/pretty.h). + +See: + + - this discussion + - Hariom Verma's GSoC 2020 final report + +Project Size: Medium +Languages: C, shell(bash) + +Possible mentors: +* Christian Couder `` From adca71c7c19634fbc2533c08ff1d121e4b589682 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Tue, 15 Feb 2022 14:45:46 +0000 Subject: [PATCH 0215/1248] Add Tower for Mac 8.0 to Releases I also added the YouTube video that quickly presents the new features. I hope that's OK! --- rev_news/drafts/edition-84.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 2c7c9abc41..89b05b5a8f 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -35,6 +35,7 @@ This edition covers what happened during the month of January 2022. ## Releases ++ Tower for Mac [8.0](https://www.git-tower.com/release-notes/mac) ([What's New in Tower 8 video](https://youtu.be/US4W1lNEJCE)) ## Other News From 104e0fb887fb2d806845a196a7a85c7903effee4 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 16 Feb 2022 00:46:31 +0530 Subject: [PATCH 0216/1248] SoC-2022: ensure languages are rendered in a separate line The lack of a preceding new line results in the Project Size and Languages information appearing adjacent to each other in the website. Fix that by adding the missing new lines. --- SoC-2022-Ideas.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index 7fcf71a616..dd3abc5740 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -66,6 +66,7 @@ expectation that _all_ will be completed during the project). * `git rerere` Project Size: Medium + Languages: C, shell(bash) Co-Mentors: @@ -91,6 +92,7 @@ See: - Hariom Verma's GSoC 2020 final report Project Size: Medium + Languages: C, shell(bash) Possible mentors: From 10b68afd2911ee082d98c9bd01ca70aaa7776adc Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 16 Feb 2022 01:52:13 +0530 Subject: [PATCH 0217/1248] SoC-2022: add organization application info draft for GSoC 2022 --- SoC-2022-Org-Application.md | 228 ++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 SoC-2022-Org-Application.md diff --git a/SoC-2022-Org-Application.md b/SoC-2022-Org-Application.md new file mode 100644 index 0000000000..ed563e7aab --- /dev/null +++ b/SoC-2022-Org-Application.md @@ -0,0 +1,228 @@ +--- +layout: default +title: SoC 2022 Organization Application +--- + +This is a draft of git's application to Google's Summer of Code 2022. + +# Initial form + +## Organization Name + +Git + +## Is this organization an established Open Source project or organization that releases code under an OSI approved license ? An OSI License is required for program participation. + +Yes + +## Has your organization participated in Google Summer of Code before? + +Yes + +## Please select all years in which your organization participated prior to 2022. + +Every year since 2007 except 2013. + +## [Agreement](https://summerofcode.withgoogle.com/terms/org) + +Accepted + + +# Organization Profile + +## Website URL for Organization + +https://git-scm.com/ + + +## Logo + +![Git Logo](/images/Git-Logo-1788C.png) + + +## Tagline + +fast,scalable,distributed revision control system + + +## Primary Open Source License + +GNU General Public License version 2.0 (GPL-2.0) + + +## When year was your project started? + +2005 + + +## Link to your source code location + +http://github.com/git/git + + +## Organization Categories + +Programming Languages and Development Tools + + +## Technology tags + +c language, shell script, git + + +## Topic Tags + +version control, dvcs + + +## Organization Description + +Git is the most widely-used revision control system in Open Source. It +is a distributed system with an emphasis on speed, data integrity, and +support for distributed, non-linear workflows. + +Many large and successful projects use Git, including the Linux +Kernel, Perl, Eclipse, Gnome, KDE, Qt, Ruby on Rails, Android, +PostgreSQL, Debian, and X.org. + +This organization covers projects for +[Git](https://github.com/git/git) itself. Other git-based software or +services are not covered by this organization. + + +## Contributor Guidance + +https://git.github.io/General-Application-Information/ + + +## Communication Methods + +Chat: https://git-scm.com/community + +Mailing List / Forum: https://git-scm.com/community + +General Email: git@vger.kernel.org + + +# Organization Questionnaire + +## Why does your org want to participate in Google Summer of Code? + +With the exception of 2013, Git has participated in GSoC every year +since 2007. We have appreciated not only the code contributions (both +new features and internal refactoring to reduce the maintenance +effort), but also the increased project visibility and the addition of +new long-term contributors. We also believe strongly in helping +students become comfortable contributing to open source in general, +even if they do not remain involved with Git itself. + + +## What would your organization consider to be a successful GSoC program? + +Students enjoying contributing improvements, learning and +participating in the community. It would be even better if they +continue to contribute and are willing to mentor other people after +the Summer. + + +## How will you keep mentors engaged with their students? + +We think that the most important part of GSoC is integrating the +students into the normal communication channels used by other project +members. The first step in dealing with disappearing students is to +make sure they are engaging with the community on design and code +issues, and reaching small milestones on the way to the project. Then +if they do disappear, we know quickly and can react, rather than being +surprised at the end. + +If they do disappear, we'll obviously contact them and find out +what's going on. But ultimately, non-communication is grounds for a +failing evaluation, regardless of any code produced. + +We plan to take fewer projects than we have as mentors. We usually +have two co-mentors per students, so that one mentor being unavailable +would have a limited impact on the project. Most of our projects can +be mentored by any of the mentors, and by keeping student progress +public and reviewed on-list, another mentor (or the community at +large) can pick up the slack if needed. + + +## How will you help your students stay on schedule to complete their projects? + +There are several ways to do this, and they have been successful in +the past: + +* Prepare students to submit patches before they started. We use a + microproject system prior to the student application where students + must submit at least a patch, and respond to reviews. This means + that on day 1 of their project, students already know how long + review cycles are, and how important it is to work with the + mailing-list. + +* Split the work into small patch series. We don't expect regular + developers to go silent for 3 months and then dump 10,000 lines of + code on us to review, and we don't want students to do that to us + either. Even if the first patch series are only preparatory steps + that do not bring a real added value to Git, it is important to get + them merged as early as possible. Even if the project is not + "completed", useful pieces of code are validated all along the + project. + + +## How will you get your students involved in your community during GSoC? + +Students will be required to join the main development mailing list +and post their patches for discussion (in addition to posting their +work as a Git repository on a publicly available server). All current +contributors already do this, so students will be able to see +experienced hands performing the same tasks and learn by example. We +also feel that the list-based discussions will help the student to +become and stay a member of the community. + +Mentors will also exchange direct email with students on at least a +weekly basis. Students will be required to provide weekly progress +reports back to their mentors, so that mentors are aware of the +current difficulties. Progress reports give the mentors a chance to +provide suggestions for problem resolution back to the student. + +Frequent email and IRC interaction with mentors and other developers +will be strongly encouraged by suggesting students post their questions +and ideas to the mailing list, and to discuss them on #git. + + +## Anything else we should know (optional)? + +We sometimes write about the GSoC in our Git Rev News newsletter +(https://git.github.io/rev_news/archive/). + + +## Is your organization part of any government? + +No + + +# Program Application + +## Ideas List URL + + + + +## Mentors + +``` +How many Mentors does your Organization have available to participate in this program? +``` + +5 + + +### How many students did your org accept for 2021? + +2 + + +### How many of your org's 2021 students are active today? + +1 + From 948d45cdaf7ea41f4f1734836dc4ef23cfaecc1c Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 16 Feb 2022 01:55:10 +0530 Subject: [PATCH 0218/1248] SoC-2021: hide the old org application from navbar --- SoC-2021-Org-Application.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SoC-2021-Org-Application.md b/SoC-2021-Org-Application.md index 4128dacda7..74d87e31d1 100644 --- a/SoC-2021-Org-Application.md +++ b/SoC-2021-Org-Application.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2021 Organization Application +navbar: false --- This is a draft of git's application to Google's Summer of Code 2021. From 204d16d6ac36ba8a88dfc360b5b7f0447e18a052 Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Wed, 16 Feb 2022 17:21:22 -0500 Subject: [PATCH 0219/1248] _includes/README.md: update current set of admins While Peff is taking a break from Git, update the list of people with admin-rights on git/git.github.io to reflect who is active and can grant push access to interested contributors. Closes: git/git.github.io#553 --- _includes/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/_includes/README.md b/_includes/README.md index d15164c07a..b8fd9bc233 100644 --- a/_includes/README.md +++ b/_includes/README.md @@ -19,9 +19,10 @@ be better? These pages also host the [Git Rev News](https://git.github.io/rev_news/), see the [About Git Rev News](https://git.github.io/rev_news/rev_news/) page. -If you want push access, contact peff@peff.net and provide your GitHub -username. You may also send patches by mail (and feel free to cc -git@vger.kernel.org if appropriate). +If you want push access, contact Christian Couder +\<\> or Taylor Blau \<\> and +provide your GitHub username. You may also send patches by mail (and +feel free to cc git@vger.kernel.org if appropriate). # Development From fa6ce7dc8a9308543c573de0f421e64bf13b46ed Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Thu, 17 Feb 2022 17:30:33 -0500 Subject: [PATCH 0220/1248] SoC-2022-Ideas.md: add "reachability bitmap improvements" As discussed[1] on the list, here is a description of a GSoC project which takes a look at a handful of potential performance improvements for reachability bitmaps. Like my Outreachy proposal[2], there isn't one specific bitmap project, but instead a handful of small- to medium-sized sub-projects that students should feel free to choose from. This is by design to protect against the case that one project doesn't carry the benefits we expect, or a student changes their interest, etc. [1]: https://lore.kernel.org/git/YfGpjm8mCkWIPM6V@nand.local/ [2]: https://www.outreachy.org/outreachy-december-2021-internship-round/communities/git/#improve-reachability-bitmaps --- SoC-2022-Ideas.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index dd3abc5740..c25bf59534 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -97,3 +97,86 @@ Languages: C, shell(bash) Possible mentors: * Christian Couder `` + +### Reachability bitmap improvements + +[Reachability bitmaps][vmg-bitmaps] allow Git to quickly answer queries about +which objects are reachable from a given commit. Instead of a commits parents +and its root tree recursively, we can use a precomputed set of objects encoded +as a bit-string and stored in a `.bitmap` file to answer the query near +instantaneously. + +There are a couple of areas where bitmap performance itself could be improved: + + - Individual bitmaps are stored compressed (with [EWAH][ewah]), but we have + some sense that it can be slow to decompress individual bitmaps (which we + have to do in order to read them, but also to do things like negate them, OR + and AND them together, etc). + + One possible project could be to explore using an alternative compression + scheme (like the more modern [Roaring+Run][roaring-run] technique) to see if + we can improve overall bitmap performance by reducing the amount of time it + takes to read an individual bitmap. + + This project would entail designing a suite of performance tests, along with + any necessary changes to the `.bitmap` format necessary to accommodate the + new compression scheme, making those changes, and then running the + performance tests to measure the resulting speed-up. + + - Loading a `.bitmap` file can be slow for large bitmaps. This is because we + have to read the file sequentially in order to discover the offset of each + bitmap within the file. + + It should be possible to shave off some time from this step by including a + small "table of contents" that indicates which commits have bitmaps, and + where to find them in the `.bitmap` file. In the past [some efforts have + been made][ttaylorr-commit-table] to do this. But we should undertake more + performance testing to prove whether this is or isn't a good idea before + submitting a patch series in this area. + + - [Recent changes][ttaylorr-bitmaps] have made it possible to repack a + repository's objects into a sequence of packs whose object count forms a + geometric progression (e.g., if the first pack has `N` objects, the next + pack will have at least `2N` objects, then `4N` objects and so on). + + But even when repacking a repository in this way, regenerating its bitmaps + can still take a long time. One possible approach to this would be a new + mode of generating bitmaps that is more "incremental" in nature. In other + words, a mode which only adds new bitmaps for commits introduced between + successive bitmap generations. + + Because of how individual bitmaps are generated, this will result in only + having to traverse objects between the new bitmap tips and old ones, + resulting in overall faster bitmap generation. + + Like the above, this project would involve designing a set of performance + tests, implementing the changes required to introduce this new type of + bitmap generation, and then running those tests against your new code. + + - Other (larger, longer-term) ideas include: rethinking how we select which + commits receive bitmaps (and/or having bitmaps represent multiple commits + instead of just one to "summarize" small sets of commits), or improving how + we handle queries that use a bitmap but do not have complete coverage. + GSoC students should consider these projects more advanced, and thus they + are not explained in as much detail here. Instead, this point serves to + illustrate that there are opportunities to explore larger projects should we + decide they are more interesting than the above or we have time to take them + on. + +This project will give GSoC students a broad overview of reachability bitmaps, +with the goal of improving their performance in some way or another. Students +can expect hands-on mentorship, but will have the agency to pick one or more of +the above sub-projects (or create their own!) that interests them most. + +Project Size: Medium + +Languages: C, shell + +Possible mentors: +* Taylor Blau `` + +[vmg-bitmaps]: https://github.blog/2015-09-22-counting-objects/ +[ewah]: https://arxiv.org/abs/0901.3751 +[roaring-run]: https://roaringbitmap.org/about/ +[ttaylorr-commit-table]: https://lore.kernel.org/git/YNuiM8TR5evSeNsN@nand.local/ +[ttaylorr-bitmaps]: https://github.blog/2021-04-29-scaling-monorepo-maintenance/ From 6bd508c1a428b397317456be44fc6ad0c573e8b0 Mon Sep 17 00:00:00 2001 From: Hariom Verma Date: Fri, 18 Feb 2022 07:34:56 +0530 Subject: [PATCH 0221/1248] SoC-2022-Ideas: add Hariom as possible mentor --- SoC-2022-Ideas.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index dd3abc5740..ca66e9be15 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -97,3 +97,4 @@ Languages: C, shell(bash) Possible mentors: * Christian Couder `` +* Hariom Verma `` From cfb11dee56448e040be8665e828bd0d64b006589 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 23 Feb 2022 01:02:16 +0530 Subject: [PATCH 0222/1248] rn-84: add re-interview with Eric Subshine --- rev_news/drafts/edition-84.md | 186 +++++++++++++++++++++++++++++++++- 1 file changed, 183 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 89b05b5a8f..97b38e4bd5 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -29,9 +29,189 @@ This edition covers what happened during the month of January 2022. ### Support --> - +## Developer Spotlight: Eric Sunshine + +_(Eric has already been interviewed in [Git Rev News #7, September 2015](https://git.github.io/rev_news/2015/09/09/edition-7/#developer-spotlight-eric-sunshine).)_ + +* Since your previous interview, have there been changes in who you + are and what you do? + + About a year after the previous interview, taking on the role of + caregiver for a family member consumed the bulk of my time to the + point that I was unable to keep up with the Git project or contribute + in any meaningful way, and was effectively absent from the project + for at least a year and a half. Since returning to the project, my + contributions have been far more scarce due to time constraints of + "real life" and a new job which I started a few years ago. + +* You were a long-time RCS, CVS, and Subversion user. Do you miss + any features of those version controls systems in Git? + + I can say without hesitation that I do not miss any features of those + older version control systems. In fact, I can report (perhaps + happily) that I have mostly forgotten how to use them. This is true + of Subversion, in particular, in which I have had to consult the + documentation to tackle even the simplest tasks the couple times I + had to use it in the last few years, despite having been a longtime + and experienced user. + +* How are your contributions to Git these days? Code contributions? + Code reviews? Others? + + In the past, I was generally able to keep up with the mailing list + and read most or all patches submitted to the project and often + provide detailed reviews, but my Git time is fairly limited these + days, so I have to be much more selective about which topics I follow + or participate in. + + Since I contributed quite a bit to the `git worktree` command (and am + perhaps an "area expert", especially since Nguyễn Thái Ngọc Duy + departed from the project), I pay particular attention to bug reports + about that command or topics touching it in some significant fashion. + In the case of a bug report, I either provide a fix for the problem + myself or help guide some other contributor. In the case of topics + which touch `git worktree`, I try to set aside time to review the + topic's patches carefully and follow along as the topic progresses. + + That aside, I also provide reviews for other topics when they fit + into my limited Git time, and answer the periodic question on the + mailing list, or interact in a discussion if I have something + meaningful to offer on the subject. + +* Are 'ability to stage changes' and 'interactive rebase' still your + favorite Git features? Or do you have new favorites? + + Yes they are, and no I do not have new favorites. + + In fact, a few years back, I started using the [`src`](http://www.catb.org/~esr/src/) + version control system for managing standalone files (which, although built + atop RCS, features a "modern" command line interface quite like Git's + and in no way like RCS's interface). Although I find `src` handy for + versioning standalone files, I always feel as if my hands are tied + when using it since it lacks the very useful features of staging + changes and rebasing interactively. + + As a consequence, aside from contributing bug fixes and enhancements + to the project, I also spent some time significantly improving the + `fast-import` and `fast-export` round trip fidelity of `src`. This + allows me to temporarily import a `src` history into Git, which gives + me access to Git's staging and interactive rebasing, and finally + convert the history back to `src`. Yes, it's a terrible kludge, and a + painful one, but at least gives me a way to take advantage of those + Git features when absolutely required. I don't use `src` often enough + presently to justify the development effort, but adding staging and + interactive rebasing to the tool directly would be on my wish list + for that project. + +* How does your mailing list workflow look like? + + I understand that some developers have special tooling set up to + improve the mailing list-centric workflow on the Git project, but I + still use a plain email client with no special provisions, and I + likely will continue with this set-up as long as it works well enough + for my simple needs. + + I do find the Git mailing list archive at + quite useful and often go spelunking through it when researching some + topic or bug report, as well as to fetch sets of patches which I may + have already deleted from my local email client. Much more recently, + I have also started taking advantage of its NNTP feed (nntp.lore.kernel.org). + +* What is your advice for people who want to start Git development? + Where and how should they start? + + Getting involved in the Git project can be intimidating (I know, even + after all these years, I still feel intimidated each time I submit + patches), but people on the project are generally quite friendly, and + the goal of reviewers is to help you refine your submission so that + it can eventually be accepted into the project. After all, that's why + reviewers take the time to read submissions so thoroughly and offer + (sometimes in-depth and exhaustive) comments to improve the + submission. One thing to note: people who review a lot of patches + tend (out of necessity) to be economical with their words, pointing + out just the parts of the patch which need improvement and often + forgetting to praise the parts which are done well. As such, reviews + can sometimes feel cold and off putting, but that is not the + intention. Reviewers are genuinely trying to help; they would not put + in such effort otherwise. + + A good way to learn how the project works is to subscribe to the + mailing list and read submissions from active contributors and + reviews from regular reviewers. You can learn by example via passive + observation. From a patch or patch series, you can learn not only how + a patch series should be constructed, but also how an effective + commit message is written. By reading reviews, you can learn what + reviewers are looking for and how they interact. + + To become actively involved in the project, submit a patch, even a + small one fixing a bug you found or making a minor improvement to + documentation. If you have an idea for a functionality improvement or + a new feature, send it to the mailing list. Or, if you just want to + contribute without having anything particular in mind, monitor the + mailing list for bug reports (as I did when I joined the project) and + try to devise a fix and submit it to the mailing list in the form of + a patch. + + Another way to contribute to the project is by reviewing submissions. + Reviews do not need to be extensive or elaborate. A review which + points out a minor logic flaw in a patch or highlights a + typographical error in a comment or commit message is useful. + +* If there's one tip you would like to share with other Git developers, + what would it be? + + When reviewing a patch, make it clear which of your comments you + expect the submitter to act upon and which suggestions can be left to + the discretion of the submitter. This is especially important for new + contributors who may not be able to distinguish between mandatory + changes to the patch and "it might be nice to have" changes. Also let + the submitter know that it is okay to push back on a review comment + if necessary since newcomers may not realize that doing so is an + option. + + For a submitter, try to respond to each review comment -- even if the + response is a simple "OK" or "I agree with all your comments" or "I + disagree with this comment because..." -- so that reviewers do not + feel that their effort has been wasted. + + (Oops, that's two tips, not one. Sorry.) + +* What would you name your most important contribution to Git? + + It is difficult to judge the importance of various contributions. I + may instead be able to highlight a few areas in which I have been + involved. + + Although I do not do many reviews these days, I used to be an active + reviewer, and hope that my review comments and suggestions helped + improve various submissions in at least some way. + + From an end-user perspective, perhaps the my most visible + contribution to Git has been all the work I did to improve and + enhance the `git worktree` command and multiple-worktree support in + general (though much of the praise for the mechanics of + multiple-worktree support belongs to Nguyễn Thái Ngọc Duy who + designed and originated the implementation). + + From a Git developer perspective, perhaps my most valuable(?) + contribution is the so-called `chainlint` which identifies a specific + type of problem in Git test scripts which could, if undetected, allow + a test to miss a failure and erroneously report success. + +* What are you doing on the Git project these days, and why? + + As mentioned, my Git time is limited, so my involvement is scaled + back. I do try to answer a question here or there or contribute to a + discussion if possible, and I review the periodic submission. + + Aside from contributing a few bug-fix patches and introducing the + `git worktree repair` command relatively recently, my recent focus + has been on a new and much enhanced version of the `chainlint` tool + mentioned above. Although the implementation has been complete for + well over a half year (at the time of writing), I am still trying to + find time to polish the patch series itself for submission. In the + meantime, I did manage to submit a couple other somewhat lengthy + patch series in preparation for the new `chainlint`. ## Releases From 8359db4ceea0129c0b7a044678edec0e9d81d6a0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 23 Feb 2022 10:10:05 +0100 Subject: [PATCH 0223/1248] rn-84: add releases --- rev_news/drafts/edition-84.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 97b38e4bd5..2688d7dfec 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -215,6 +215,28 @@ _(Eric has already been interviewed in [Git Rev News #7, September 2015](https:/ ## Releases ++ Git [2.35.1](https://public-inbox.org/git/xmqq1r0rtfw9.fsf@gitster.g/) ++ Git for Windows [2.35.1(2)](https://github.com/git-for-windows/git/releases/tag/v2.35.1.windows.2), +[2.35.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.35.1.windows.1) ++ libgit2 [1.4.1](https://github.com/libgit2/libgit2/releases/tag/v1.4.1), +[1.4.0](https://github.com/libgit2/libgit2/releases/tag/v1.4.0) ++ GitHub Enterprise [3.3.4](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.4), +[3.2.9](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.9), +[3.1.17](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.17), +[3.0.25](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.25), +[3.4.0](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.0), +[3.3.3](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.3), +[3.2.8](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.8), +[3.1.16](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.16), +[3.0.24](https://help.github.com/enterprise-server@3.0/admin/release-notes#3.0.24) ++ GitLab [14.8](https://about.gitlab.com/releases/2022/02/22/gitlab-14-8-released/) +[14.7.3](https://about.gitlab.com/releases/2022/02/14/gitlab-14-7-3-released/), +[14.7.2](https://about.gitlab.com/releases/2022/02/08/gitlab-14-7-2-released/), +[14.7.1, 14.6.4, and 14.5.4](https://about.gitlab.com/releases/2022/02/03/security-release-gitlab-14-7-1-released/) ++ GitKraken [8.3.0](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [2.9.9](https://desktop.github.com/release-notes/), +[2.9.8](https://desktop.github.com/release-notes/), +[2.9.7](https://desktop.github.com/release-notes/) + Tower for Mac [8.0](https://www.git-tower.com/release-notes/mac) ([What's New in Tower 8 video](https://youtu.be/US4W1lNEJCE)) ## Other News From f19b3381c93cfd0260768bc627417ad9af5b8f9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 23 Feb 2022 23:40:47 +0100 Subject: [PATCH 0224/1248] rn-84: Add links to a few articles and sites --- rev_news/drafts/edition-84.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 2688d7dfec..da15f42b23 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -243,12 +243,40 @@ _(Eric has already been interviewed in [Git Rev News #7, September 2015](https:/ __Various__ +* [Include diagrams in your Markdown files with Mermaid](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/), + automatically rendered on GitHub and possibly also in other + [CommonMark](https://commonmark.org/) implementations. +* [More ways to keep your pull request branch up-to-date](https://github.blog/changelog/2022-02-03-more-ways-to-keep-your-pull-request-branch-up-to-date/) + on GitHub. + __Light reading__ +* [Cross-fork object sharing in git (is not a bug)](https://people.kernel.org/monsieuricon/cross-fork-object-sharing-in-git-is-not-a-bug) + by Konstantin Ryabitsev. +* [Getting Started with Git Bash](https://www.git-tower.com/blog/git-bash/) + by Bruno Brito on Git Tower blog. +* [Inside the Hidden Git Folder - Computerphile](https://youtu.be/bSA91XTzeuA) + by Dr Max Wilson on Computerphile channel on YouTube. + Mind blink and you miss it error about the purpose of the `.git/logs/` folder. + Link to the previous video on the topic of Git by Dr Max Wilson can be found in + [Git Rev News Edition #83](https://git.github.io/rev_news/2022/01/31/edition-83/) + (the previous edition). +* [Protect secrets in Git with the clean/smudge filter](https://developers.redhat.com/articles/2022/02/02/protect-secrets-git-cleansmudge-filter) + by Tomer Figenblat on Red Hat Developer blog. +* [Git: Switching Unstaged Changes to a New Branch](https://css-tricks.com/git-switching-unstaged-changes-to-a-new-branch/) + two ways, by Chris Coyier on CSS-Tricks; read also featured comments. + __Git tools and sites__ +* [Monorepo.tools](https://monorepo.tools/) -- Everything you need to know about monorepos, + and the tools to build them. + * [Announcing monorepo.tools](https://blog.nrwl.io/announcing-monorepo-tools-da605afbb5d5) + by Juri Strumpflohner for Nrwl. + * You can find most recent list of pros and cons of monorepos in + [Git Rev News Edition #81](https://git.github.io/rev_news/2021/11/29/edition-81/). + ## Credits From 5692e1120f697c97d4d759c89af14148c2c3f8e8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 24 Feb 2022 04:20:37 +0100 Subject: [PATCH 0225/1248] rn-84: add perf improvements links --- rev_news/drafts/edition-84.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index da15f42b23..9b1190cf2b 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -243,6 +243,8 @@ _(Eric has already been interviewed in [Git Rev News #7, September 2015](https:/ __Various__ +* How some Git fetch performance improvements were made, [part 1](https://about.gitlab.com/blog/2022/01/20/git-fetch-performance/) and + [part 2](https://about.gitlab.com/blog/2022/02/07/git-fetch-performance-2021-part-2/), by the GitLab Scalability team. * [Include diagrams in your Markdown files with Mermaid](https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/), automatically rendered on GitHub and possibly also in other [CommonMark](https://commonmark.org/) implementations. From ee8cee4665fb93c45e2800965c2756aaf82ecdfd Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 24 Feb 2022 10:36:54 +0100 Subject: [PATCH 0226/1248] Microproject-Information: fix missing 's' grammo --- General-Microproject-Information.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 8b5257ed73..bf0aacf743 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -145,7 +145,7 @@ want quality, not quantity! (Also, it takes work to collect the ideas, and it would be nice to have enough microprojects for everybody.) -This means that for a microproject that consist in refactoring or +This means that for a microproject that consists in refactoring or rewriting a small amount of code, your patch should change only **ONE** file, or perhaps 2 files if they are closely related, like "foo.c" and "foo.h". From e60cb5026d86e3000abe1c21f93d1f867aedac3a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 24 Feb 2022 10:45:26 +0100 Subject: [PATCH 0227/1248] Microproject-Information: stop using 'student' The GSoC is now open to people who are not student, so it's better if we standardize on using "applicant" for people not yet accepted in the GSoC or Outreachy, and on using "contributor" as Google does for people accepted in the GSoC. See this issue: https://github.com/git/git.github.io/issues/555 --- General-Microproject-Information.md | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index bf0aacf743..aec1140857 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -7,8 +7,9 @@ title: General Microproject Information It is strongly recommended that people who want to apply to the Git project for the Google Summer of Code (GSoC), Outreachy, or other such -mentoring programs, submit a small code-related patch to the Git -project as part of their application. +mentoring programs, called "applicants" in this document, submit a +small code-related patch to the Git project as part of their +application. People who want to get involved in Git development outside mentoring programs can also benefit from information on this page to get @@ -18,9 +19,8 @@ instead of "[GSoC]" or "[Outreachy]" in the emails they send. Think of these microprojects as the "Hello, world" of getting involved with the Git project; the coding aspect of the change can be almost -trivial, but to make the change the student or applicant has to become -familiar with many of the practical aspects of working on the Git -project. +trivial, but to make the change the applicant has to become familiar +with many of the practical aspects of working on the Git project. Git development is based on sending successive versions of patches or patch series to the mailing list until they are considered good and @@ -41,7 +41,7 @@ which shows how a developer proposed a change and a patch to implement it. The problem being solved, the design of the proposed solution, and the implementation of that design were all reviewed and discussed, and after several iterations an improved version of the patch was -accepted into our codebase. As a GSoC student, or Outreachy intern, +accepted into our codebase. As a GSoC contributor, or Outreachy intern, you will be playing the role of the developer and engaging in a similar discussion. Get familar with the flow, need for clarity on both sides (i.e. you need to clearly defend your design, and need to @@ -138,12 +138,11 @@ minutes). We don't require that your patch be accepted into the to see that you have a basic level of competence and especially the ability to interact with the other Git developers. -## Only ONE quality focused microproject per student +## Only ONE quality focused microproject per applicant -Students or applicants please attempt only **ONE** microproject. We -want quality, not quantity! (Also, it takes work to collect the -ideas, and it would be nice to have enough microprojects for -everybody.) +Applicants please attempt only **ONE** microproject. We want quality, +not quantity! (Also, it takes work to collect the ideas, and it would +be nice to have enough microprojects for everybody.) This means that for a microproject that consists in refactoring or rewriting a small amount of code, your patch should change only @@ -157,9 +156,9 @@ script you change. If you change "foo.c" or "foo.h", the title of your patch should probably start with "foo: ". In general it's a good idea to check on the mailing list archive what -other GSoC students or Outreachy applicants attempting a microproject -have already been told this year or any previous year, as hopefully it -will help you avoid some mistakes. As some microproject ideas haven't +other GSoC or Outreachy applicants attempting a microproject have +already been told this year or any previous year, as hopefully it will +help you avoid some mistakes. As some microproject ideas haven't changed for years, some similar microprojects might have been attempted many times already and you can learn a lot from these attempts. From bea2e3bb1ba78f795e990a4e2522467f6de31810 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 25 Feb 2022 01:04:23 +0530 Subject: [PATCH 0228/1248] rn-84: add question and answer about email client --- rev_news/drafts/edition-84.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 9b1190cf2b..9cd1a6aabe 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -117,6 +117,20 @@ _(Eric has already been interviewed in [Git Rev News #7, September 2015](https:/ have already deleted from my local email client. Much more recently, I have also started taking advantage of its NNTP feed (nntp.lore.kernel.org). +* Could you elaborate a bit about the email client you use? + + I use Gmail in the web browser almost exclusively. Lately, I have + been using Thunderbird to access the lore.kernel.org NNTP feed. + Infrequently, I use `mutt` when I need to send a patch inline within + a reply when I don't want the Gmail web interface to modify + whitespace or the formatting in general. (I also have Emacs set up + for email, thus could use it for the same purpose as `mutt`, but + never actually do so.) + + [ _Editor's note: If you're going to use Gmail in the web browser, + ensure "Plain text mode" is checked. Also, see [Gmail specific + format-patch hints](https://git-scm.com/docs/git-format-patch#_gmail)_ ] + * What is your advice for people who want to start Git development? Where and how should they start? From 6280f397930d717ad4c4c2ab68d001433c9b997b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 26 Feb 2022 07:52:44 +0100 Subject: [PATCH 0229/1248] rn-84: add Eric among the helpers --- rev_news/drafts/edition-84.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 9cd1a6aabe..aac926b9bd 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -301,4 +301,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Eric Sunshine. From ea39ac4e15178012521cdf8236117aea996e79bf Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 26 Feb 2022 12:24:32 +0530 Subject: [PATCH 0230/1248] SoC-2022-Ideas: some tweaks to ideas list to adjust for GSoC requirement --- SoC-2022-Ideas.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index b6aa4cfc30..c6c2a8e22c 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -65,11 +65,11 @@ expectation that _all_ will be completed during the project). * `git merge-index` * `git rerere` -Project Size: Medium +Expected Project Size: 175 hours Languages: C, shell(bash) -Co-Mentors: +Possible mentors: * Derrick Stolee `` * Victoria Dye `` @@ -91,7 +91,7 @@ See: - this discussion - Hariom Verma's GSoC 2020 final report -Project Size: Medium +Expected Project Size: 175 hours Languages: C, shell(bash) @@ -169,7 +169,7 @@ with the goal of improving their performance in some way or another. Students can expect hands-on mentorship, but will have the agency to pick one or more of the above sub-projects (or create their own!) that interests them most. -Project Size: Medium +Expected Project Size: 175 hours Languages: C, shell From c01fbd05da865e25a07a51bdcf0efb9686845bd9 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 26 Feb 2022 10:13:47 +0100 Subject: [PATCH 0231/1248] rn-84: add fetch --prune article --- rev_news/drafts/edition-84.md | 80 ++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index aac926b9bd..77af90f7cb 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -21,9 +21,85 @@ This edition covers what happened during the month of January 2022. ### General --> - + +* [[PATCH] fetch --prune: exit with error if pruning fails](https://lore.kernel.org/git/20220127153714.1190894-1-t.gummerer@gmail.com/) + + Thomas Gummerer sent a patch so that `git fetch`, when it's used + with the `--prune` flag, or its `-p` short form, will not exit with + the 0 exit code anywmore if pruning a ref failed. + + Pruning a ref means removing remote tracking ref, usually a branch, + if the ref disappeared on the remote. For example if a remote called + `origin` has a branch called `feature1`, then when fetching from + `origin` Git, will create a remote tracking branch called + `origin/feature1` on the local machine. Then the next time a fetch + from `origin` is performed, if the `feature1` branch was removed on + `origin`, by default Git would delete the local `origin/feature1` + branch only if pruning is requested. + + Thomas noted in his patch that an error message was already printed + on stderr when pruning a ref failed, but it felt like a bug that + `git fetch` was still exiting with the 0 exit code in this case as + it could be interpreted as if no error happened. + + Thomas had looked up the commit that introduced pruning, but he + couldn't find if the exit code behavior was "an oversight or + intentional", but it felt like an oversight to him. + + Junio Hamano, the Git maintainer, agreed with Thomas about using a + non-zero exit code when ref pruning failed, but he was unsure about + which actual exit code would be emited by the code in Thomas patch. + + Junio also found an issue with the current code as in some cases it + appeared that -1 could be passed to exit(). This would result in a + 255 exit code, as exit codes have only 8 bits and are unsigned. He + left a `#leftoverbits` mention related to this in his email, which + helps find usually small issues that should be fixed later. + + Junio also thought that is probably wasn't a good idea to error out + as soon as an error happens when pruning. It was probably best to + continue to fetch and prune as much as possible, "given that we have + already paid for the cost of discovering the refs from the other + side". + + Thomas' patch added a new regression test that was then discussed a + bit by Junio, who left another `#leftoverbits` mention related to + the fact that many tests in the test script, where Thomas added the + new test, were using an old style and might want a cleanup. + + Dscho, alias Johannes Schindelin, replied to Junio that it might + actually be confusing and unexpected for users if the fetch would + continue when pruning failed. He suggested adding a + `--prune-best-effort` option for cases where we might want the fetch + to continue as much as possible when pruning fails. + + Thomas replied to Dscho, that he was unsure when writing the patch + what the behavior should be, but that exiting early "felt like the + right thing to do for the user". He said that he would be ok with + introducing `--prune-best-effort`. He wasn't sure people would + actually use it much though, as "it should be very rare that + `--prune` fails". + + Junio replied to Thomas and Dscho that "when we fetch to update + multiple refs, we do not stop at the first ref-update failure, but + try to do as much as possible and then report an error" and that it + the behavior should be similar with `--prune`. + + Thomas also replied separately about Junio's initial comment related + to the actual exit code that would be emited after Thomas' patch. He + wondered if the exit code should always be 1 when `git fetch` fails + when pruning. + + Thomas and Dscho then discussed the new test, following Junio's + comments, and agreed on adding a comment in the code to explain what + the test was doing. + + Thomas then sent [a version 2 of his patch](https://lore.kernel.org/git/20220131133047.1885074-1-t.gummerer@gmail.com/) + with the changes that were discussed. + + Junio reviewed this new version and decided to merge it down, so + this small improvement will be in the next Git version. + +* [Join us for Review Club!](https://lore.kernel.org/git/Yfl1%2FZN%2FtaYwfGD0@google.com/) + + Josh Steadmon announced that the Review Club meeting he has been + organizing at Google for a while is now open to everyone. It happens + every other Wednesday at 14:00 Pacific time (UTC-8) via Google Meet. + + The first opened meeting happened on Wednesday February 2nd and + discussed [Elijah's "In-core git merge-tree" patch series](https://lore.kernel.org/git/pull.1122.v2.git.1643479633.gitgitgadget@gmail.com/). + + Please contact Josh Steadmon at if you are + interested and want to join. ### Reviews @@ -377,4 +387,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Eric Sunshine. +with help from Eric Sunshine and Josh Steadmon. From 4ddb4c0db15cac4a8cddf49a784dd5ecc08ca611 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 26 Feb 2022 11:03:37 +0100 Subject: [PATCH 0233/1248] rn-84: change publication date to 2022-02-28 --- rev_news/drafts/edition-84.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 640f3ecc64..0d772d5b97 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 84 (February 23rd, 2022) +title: Git Rev News Edition 84 (February 28th, 2022) layout: default -date: 2022-02-23 12:06:51 +0100 +date: 2022-02-28 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 84 (February 23rd, 2022) +## Git Rev News: Edition 84 (February 28th, 2022) 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 From d6cd60a510ff8d01e73c254cbd7dded76a46f937 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 26 Feb 2022 11:07:05 +0100 Subject: [PATCH 0234/1248] rn-84: add Philip Oakley among the helpers --- rev_news/drafts/edition-84.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 0d772d5b97..38e97b4899 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -387,4 +387,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Eric Sunshine and Josh Steadmon. +with help from Eric Sunshine, Philip Oakley and Josh Steadmon. From be644970091c9bbf905d64b3bd40ae7d736757e4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 26 Feb 2022 11:07:57 +0100 Subject: [PATCH 0235/1248] rn-84: add Bruno Brito among the helpers --- rev_news/drafts/edition-84.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index 38e97b4899..c4c9b01fff 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -387,4 +387,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Eric Sunshine, Philip Oakley and Josh Steadmon. +with help from Eric Sunshine, Philip Oakley, Bruno Brito +and Josh Steadmon. From dad97cb871e391318b81a43a7572e54dd8136a91 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 27 Feb 2022 01:40:37 +0530 Subject: [PATCH 0236/1248] SoC-Ideas: mention difficulty for all project ideas Difficulty was explicitly mentioned by the mentor for Stolee's idea. I had estimated the difficulty for the other ones. We could tweak them if not appropriate. --- SoC-2022-Ideas.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index c6c2a8e22c..659401707d 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -67,6 +67,8 @@ expectation that _all_ will be completed during the project). Expected Project Size: 175 hours +Difficulty: Medium + Languages: C, shell(bash) Possible mentors: @@ -93,6 +95,8 @@ See: Expected Project Size: 175 hours +Difficulty: Medium + Languages: C, shell(bash) Possible mentors: @@ -171,6 +175,8 @@ the above sub-projects (or create their own!) that interests them most. Expected Project Size: 175 hours +Difficulty: Medium + Languages: C, shell Possible mentors: From 42e245e9f3a171671510e3826cfb8096d04f34e2 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 27 Feb 2022 01:42:16 +0530 Subject: [PATCH 0237/1248] SoC-Ideas: adjust expected project size of reachability bitmap project According to the description the idea has the potential to be a 350 hour. So, mention as such. --- SoC-2022-Ideas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index 659401707d..374b24c884 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -173,7 +173,7 @@ with the goal of improving their performance in some way or another. Students can expect hands-on mentorship, but will have the agency to pick one or more of the above sub-projects (or create their own!) that interests them most. -Expected Project Size: 175 hours +Expected Project Size: 175 hours or 350 hours Difficulty: Medium From 85c4ce234f5dc5d13f89cac66910f35b82389bcb Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 27 Feb 2022 18:19:28 +0100 Subject: [PATCH 0238/1248] Supplied the usual tiny typo fixes and one larger paraphrase. --- rev_news/drafts/edition-84.md | 58 +++++++++++++++++------------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/rev_news/drafts/edition-84.md b/rev_news/drafts/edition-84.md index c4c9b01fff..03edf8811a 100644 --- a/rev_news/drafts/edition-84.md +++ b/rev_news/drafts/edition-84.md @@ -36,34 +36,34 @@ This edition covers what happened during the month of January 2022. * [[PATCH] fetch --prune: exit with error if pruning fails](https://lore.kernel.org/git/20220127153714.1190894-1-t.gummerer@gmail.com/) Thomas Gummerer sent a patch so that `git fetch`, when it's used - with the `--prune` flag, or its `-p` short form, will not exit with - the 0 exit code anywmore if pruning a ref failed. - - Pruning a ref means removing remote tracking ref, usually a branch, - if the ref disappeared on the remote. For example if a remote called - `origin` has a branch called `feature1`, then when fetching from - `origin` Git, will create a remote tracking branch called - `origin/feature1` on the local machine. Then the next time a fetch - from `origin` is performed, if the `feature1` branch was removed on - `origin`, by default Git would delete the local `origin/feature1` - branch only if pruning is requested. + with the `--prune` flag or its `-p` short form, will not exit with + exit status 0 anymore if pruning a ref fails. + + Pruning a ref means removing a remote tracking ref, usually a branch, + if the ref disappeared on the remote. For example, if a remote called + `origin` has a branch called `feature1`, then fetching from + `origin` will cause Git to create a remote tracking branch called + `origin/feature1` on the local machine. After the `feature1` branch + is removed on `origin`, subsequent fetches from `origin` will yield + the deletion of the local `origin/feature1` branch only if pruning is + requested. Thomas noted in his patch that an error message was already printed on stderr when pruning a ref failed, but it felt like a bug that - `git fetch` was still exiting with the 0 exit code in this case as - it could be interpreted as if no error happened. + `git fetch` was still exiting with the 0 exit status in this case, as + this could be interpreted as if no error happened. Thomas had looked up the commit that introduced pruning, but he - couldn't find if the exit code behavior was "an oversight or + couldn't find if the exit status behavior was "an oversight or intentional", but it felt like an oversight to him. Junio Hamano, the Git maintainer, agreed with Thomas about using a - non-zero exit code when ref pruning failed, but he was unsure about - which actual exit code would be emited by the code in Thomas patch. + non-zero exit status when ref pruning failed, but he was unsure about + which actual exit status would be emitted by the code in Thomas' patch. Junio also found an issue with the current code as in some cases it - appeared that -1 could be passed to exit(). This would result in a - 255 exit code, as exit codes have only 8 bits and are unsigned. He + appeared that -1 could be passed to `exit()`. This would result in a + 255 exit status, as exit statuses have only 8 bits and are unsigned. He left a `#leftoverbits` mention related to this in his email, which helps find usually small issues that should be fixed later. @@ -84,29 +84,29 @@ This edition covers what happened during the month of January 2022. `--prune-best-effort` option for cases where we might want the fetch to continue as much as possible when pruning fails. - Thomas replied to Dscho, that he was unsure when writing the patch - what the behavior should be, but that exiting early "felt like the - right thing to do for the user". He said that he would be ok with + Thomas replied to Dscho that he was unsure what the behavior should + be when writing the patch, but that exiting early "felt like the + right thing to do for the user". He said that he would be OK with introducing `--prune-best-effort`. He wasn't sure people would actually use it much though, as "it should be very rare that `--prune` fails". Junio replied to Thomas and Dscho that "when we fetch to update multiple refs, we do not stop at the first ref-update failure, but - try to do as much as possible and then report an error" and that it - the behavior should be similar with `--prune`. + try to do as much as possible and then report an error", and that + `--prune` should behave similarly. Thomas also replied separately about Junio's initial comment related - to the actual exit code that would be emited after Thomas' patch. He - wondered if the exit code should always be 1 when `git fetch` fails - when pruning. + to the actual exit status that would be emitted after Thomas' patch. He + wondered if the exit status should always be 1 when `git fetch` fails + at pruning. Thomas and Dscho then discussed the new test, following Junio's comments, and agreed on adding a comment in the code to explain what the test was doing. Thomas then sent [a version 2 of his patch](https://lore.kernel.org/git/20220131133047.1885074-1-t.gummerer@gmail.com/) - with the changes that were discussed. + with the changes that had been discussed. Junio reviewed this new version and decided to merge it down, so this small improvement will be in the next Git version. @@ -361,7 +361,7 @@ __Light reading__ * [Inside the Hidden Git Folder - Computerphile](https://youtu.be/bSA91XTzeuA) by Dr Max Wilson on Computerphile channel on YouTube. Mind blink and you miss it error about the purpose of the `.git/logs/` folder. - Link to the previous video on the topic of Git by Dr Max Wilson can be found in + A link to the previous video on the topic of Git by Dr Max Wilson can be found in [Git Rev News Edition #83](https://git.github.io/rev_news/2022/01/31/edition-83/) (the previous edition). * [Protect secrets in Git with the clean/smudge filter](https://developers.redhat.com/articles/2022/02/02/protect-secrets-git-cleansmudge-filter) @@ -376,7 +376,7 @@ __Git tools and sites__ and the tools to build them. * [Announcing monorepo.tools](https://blog.nrwl.io/announcing-monorepo-tools-da605afbb5d5) by Juri Strumpflohner for Nrwl. - * You can find most recent list of pros and cons of monorepos in + * You can find the most recent list of pros and cons of monorepos in [Git Rev News Edition #81](https://git.github.io/rev_news/2021/11/29/edition-81/). From b94e6d07b75b2438351a7daba5d5212c62419ddf Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 28 Feb 2022 12:11:58 +0100 Subject: [PATCH 0239/1248] Publish rn-84 in _posts/ --- .../drafts/edition-84.md => _posts/2022-02-28-edition-84.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-84.md => _posts/2022-02-28-edition-84.markdown (100%) diff --git a/rev_news/drafts/edition-84.md b/_posts/2022-02-28-edition-84.markdown similarity index 100% rename from rev_news/drafts/edition-84.md rename to _posts/2022-02-28-edition-84.markdown From 635b3860eaa5eaef9aeb8fb6491512c0a6e6a515 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 28 Feb 2022 12:11:58 +0100 Subject: [PATCH 0240/1248] Add draft for rn-85 --- rev_news/drafts/edition-85.md | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 rev_news/drafts/edition-85.md diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md new file mode 100644 index 0000000000..b9e890d141 --- /dev/null +++ b/rev_news/drafts/edition-85.md @@ -0,0 +1,57 @@ +--- +title: Git Rev News Edition 85 (March 30th, 2022) +layout: default +date: 2022-03-30 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 85 (March 30th, 2022) + +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). + +This edition covers what happened during the month of February 2022. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From ec4c2eaf2e2a68f6c84c18ef94497a3bf03c650b Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 28 Feb 2022 23:38:46 +0530 Subject: [PATCH 0241/1248] SoC-2022-Ideas: change expected project size Both ideas have potential to be both 175 hour and 350 hour projects. So, mention the same in ideas page. --- SoC-2022-Ideas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index 374b24c884..165b3cfa44 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -65,7 +65,7 @@ expectation that _all_ will be completed during the project). * `git merge-index` * `git rerere` -Expected Project Size: 175 hours +Expected Project Size: 175 hours or 350 hours Difficulty: Medium @@ -93,7 +93,7 @@ See: - this discussion - Hariom Verma's GSoC 2020 final report -Expected Project Size: 175 hours +Expected Project Size: 175 hours or 350 hours Difficulty: Medium From 9a0e2e4d2d878dc880c1efc6331cbe0386cfc6df Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Tue, 1 Mar 2022 13:15:53 +0000 Subject: [PATCH 0242/1248] Add Tower for Windows 3.1 to Releases --- rev_news/drafts/edition-85.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index b9e890d141..40232fd2d1 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -34,7 +34,7 @@ This edition covers what happened during the month of February 2022. --> ## Releases - +- Tower for Windows [3.1](https://www.git-tower.com/release-notes/windows) ([What's New in Tower 3.1 for Windows blog post](https://www.git-tower.com/blog/gpg-windows/)) ## Other News From c96c2560ca4cc54ec9ec77609b9e2bb2c6d4daa6 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Tue, 1 Mar 2022 13:22:45 +0000 Subject: [PATCH 0243/1248] Add article to Light Reading section --- rev_news/drafts/edition-85.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index b9e890d141..e7e408baef 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -42,7 +42,7 @@ __Various__ __Light reading__ - +- [How to Really Use Git: 10 Rules to Make Git More Useful](https://hackernoon.com/how-to-really-use-git-10-rules-to-make-git-more-useful) by Bruno Brito on HackerNoon. __Git tools and sites__ From 22ad7b64b267dfa5f9dbd6232d58b90622a1e84b Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Wed, 2 Mar 2022 00:55:19 +0100 Subject: [PATCH 0244/1248] Found the hopefully last typesetting bug. --- _posts/2022-02-28-edition-84.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2022-02-28-edition-84.markdown b/_posts/2022-02-28-edition-84.markdown index 03edf8811a..10e223b02c 100644 --- a/_posts/2022-02-28-edition-84.markdown +++ b/_posts/2022-02-28-edition-84.markdown @@ -33,7 +33,7 @@ This edition covers what happened during the month of January 2022. ### Reviews -* [[PATCH] fetch --prune: exit with error if pruning fails](https://lore.kernel.org/git/20220127153714.1190894-1-t.gummerer@gmail.com/) +* [[PATCH] `fetch --prune`: exit with error if pruning fails](https://lore.kernel.org/git/20220127153714.1190894-1-t.gummerer@gmail.com/) Thomas Gummerer sent a patch so that `git fetch`, when it's used with the `--prune` flag or its `-p` short form, will not exit with From 42b301a8d2ac6bdfe44daee268d5d0b3ac5dee9b Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Fri, 4 Mar 2022 23:59:59 +0530 Subject: [PATCH 0245/1248] SoC-2022-Ideas: add Sivaraam as mentor for bitmap improvements idea --- SoC-2022-Ideas.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index 165b3cfa44..55225b68e6 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -181,6 +181,7 @@ Languages: C, shell Possible mentors: * Taylor Blau `` +* Kaartic Sivaraam `` [vmg-bitmaps]: https://github.blog/2015-09-22-counting-objects/ [ewah]: https://arxiv.org/abs/0901.3751 From 055ea1cec7c72cfeddbcb5098ebfcc61c4b51280 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 5 Mar 2022 00:20:28 +0530 Subject: [PATCH 0246/1248] SoC-2022-Ideas: linkify email links E-mails were wrapped in backticks which resulted in them rendering as code snippets. Tweak the e-mails so that they are rendered in a linkified manner. This would help students to easily copy e-mails address (or) send e-mails to potential mentors. --- SoC-2022-Ideas.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index 55225b68e6..4a87ef195b 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -72,8 +72,8 @@ Difficulty: Medium Languages: C, shell(bash) Possible mentors: -* Derrick Stolee `` -* Victoria Dye `` +* Derrick Stolee < > +* Victoria Dye < > ### Unify ref-filter formats with other pretty formats @@ -100,8 +100,8 @@ Difficulty: Medium Languages: C, shell(bash) Possible mentors: -* Christian Couder `` -* Hariom Verma `` +* Christian Couder < > +* Hariom Verma < > ### Reachability bitmap improvements @@ -180,8 +180,8 @@ Difficulty: Medium Languages: C, shell Possible mentors: -* Taylor Blau `` -* Kaartic Sivaraam `` +* Taylor Blau < > +* Kaartic Sivaraam < > [vmg-bitmaps]: https://github.blog/2015-09-22-counting-objects/ [ewah]: https://arxiv.org/abs/0901.3751 From 52bff63d22b9152d07607194e5d123d9c773e1b2 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 5 Mar 2022 00:25:24 +0530 Subject: [PATCH 0247/1248] README: fix rendering of e-mail links in About page The e-mail links in README render properly in GitHub's rendering of the README file. In the deployed site they render as plain text, though. Correct this by fixing the formatting of e-mail links such that they render properly in the deployed site. --- _includes/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/README.md b/_includes/README.md index b8fd9bc233..ea8fb22500 100644 --- a/_includes/README.md +++ b/_includes/README.md @@ -20,7 +20,7 @@ These pages also host the [Git Rev News](https://git.github.io/rev_news/), see the [About Git Rev News](https://git.github.io/rev_news/rev_news/) page. If you want push access, contact Christian Couder -\<\> or Taylor Blau \<\> and +< > or Taylor Blau < > and provide your GitHub username. You may also send patches by mail (and feel free to cc git@vger.kernel.org if appropriate). From ce4d814cca1729fbe9b51407812191583b730a2a Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sat, 5 Mar 2022 00:36:10 +0530 Subject: [PATCH 0248/1248] General-Microproject-Info: fix a grammo --- General-Microproject-Information.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index aec1140857..da58be0b86 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -332,7 +332,7 @@ select a good project for you and properly research it. You can ask for help if there are things you don't understand in a micro-project description, or if you have some trouble working on your micro-project or even finding a micro-project. But please be very -specific in your questions and tell us in details what you searched or +specific in your questions and tell us in detail what you searched or tried, what you expected and what didn't work as you expected. Something like "I couldn't find a good micro-project for me", for example, doesn't tell us much, and doesn't give us any idea From b001d40a260e981d05ca781045b1d8a03b4e54e5 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 10 Mar 2022 01:19:32 +0530 Subject: [PATCH 0249/1248] rn-84: rephrase a sentence to avoid confusion Ref: https://github.com/git/git.github.io/issues/544#issuecomment-1061035302 --- _posts/2022-02-28-edition-84.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2022-02-28-edition-84.markdown b/_posts/2022-02-28-edition-84.markdown index 10e223b02c..b9e157f541 100644 --- a/_posts/2022-02-28-edition-84.markdown +++ b/_posts/2022-02-28-edition-84.markdown @@ -360,7 +360,7 @@ __Light reading__ by Bruno Brito on Git Tower blog. * [Inside the Hidden Git Folder - Computerphile](https://youtu.be/bSA91XTzeuA) by Dr Max Wilson on Computerphile channel on YouTube. - Mind blink and you miss it error about the purpose of the `.git/logs/` folder. + Beware a blink and you miss it error about the purpose of the `.git/logs/` folder. A link to the previous video on the topic of Git by Dr Max Wilson can be found in [Git Rev News Edition #83](https://git.github.io/rev_news/2022/01/31/edition-83/) (the previous edition). From 777af3d2ff6f4a1c19cb37efdaf92b614f3704d8 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Wed, 23 Mar 2022 15:00:07 +0000 Subject: [PATCH 0250/1248] rn-85: Add Tower for Mac 8.1 release and one more "Light Reading" suggestion --- rev_news/drafts/edition-85.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index 03eca4ac21..85b4791209 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -35,6 +35,7 @@ This edition covers what happened during the month of February 2022. ## Releases - Tower for Windows [3.1](https://www.git-tower.com/release-notes/windows) ([What's New in Tower 3.1 for Windows blog post](https://www.git-tower.com/blog/gpg-windows/)) +- Tower for Mac [8.1](https://www.git-tower.com/release-notes/mac) ## Other News @@ -43,6 +44,7 @@ __Various__ __Light reading__ - [How to Really Use Git: 10 Rules to Make Git More Useful](https://hackernoon.com/how-to-really-use-git-10-rules-to-make-git-more-useful) by Bruno Brito on HackerNoon. +- [Git and GitHub for Marketing Teams](https://www.git-tower.com/blog/git-for-marketing-teams/) by Bruno Brito on Tower's blog. __Git tools and sites__ From 6fe724c21c018391037468acb4b2e31a46ccbdfc Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 28 Mar 2022 23:54:30 +0530 Subject: [PATCH 0251/1248] rn-85: add interview with Victoria Dye --- rev_news/drafts/edition-85.md | 162 +++++++++++++++++++++++++++++++++- 1 file changed, 159 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index 85b4791209..958322f013 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -29,9 +29,165 @@ This edition covers what happened during the month of February 2022. ### Support --> - + +## Developer Spotlight: Victoria Dye + +* Who are you and what do you do? + + Hi! My name is Victoria Dye, and I work as a software developer at GitHub. I + spend a lot of my time contributing to Git & some of its downstream forks + (Git for Windows and `microsoft/git`), and _occasionally_ Git Credential + Manager (although it's been a while). I really enjoy solving tough + performance problems in software, so I'm hoping to do more of that in Git in + the not-so-distant future! + +* What would you name your most important contribution to Git? + + I haven't been contributing to Git for all that long, so it's hard to judge + the importance of anything I've done. That said, I'm pretty proud of the + work I've done around sparse index and `sparse-checkout`. It's been exciting + to contribute and see those features mature so rapidly over the past couple + months, and I hope it continues to gain traction with users looking for + better performance in Git! + +* What are you doing on the Git project these days, and why? + + My focus pretty much since I started working on Git has been on integrating + commands with sparse index. Most recently that's been `git stash`, which not + only requires its own integration, but also the integration of all the + commands it shells out to (`update-index`, `read-tree`, etc.). The goal of + these initial sparse index integrations (including those by Derrick Stolee & + Lessley Dennington) is to cover the most popular commands as reported by + users at $DAYJOB (`git add`, `git reset`, etc.), so the theoretical + performance gains of the sparse index can turn into a real improvement to + user experience. + + Beyond my own work, I'm looking forward to mentoring a GSoC contributor in + _more_ sparse index integration! It's an admittedly complicated topic, but - + based on my own experience - working on it can give new contributors an + incredible depth of knowledge in Git that's hard to get elsewhere. Plus, I + love mentoring developers and creating a positive environment for them, so + I'm excited to have the chance to do that here! + +* 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? + + It would be great to see the shell script-based test suite rewritten into a + unit/integration/end-to-end testing stack. The tests we have are almost + exclusively end-to-end (excepting hackery with `test-tool` or `trace2` logs + exposing internal functions to test them), so we often have incomplete + coverage of some of the trickier code paths (e.g., `unpack_trees`). And, + especially for developers that like test-driven development, it can be a + _lot_ easier working with code that has a robust unit testing suite. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + In general, I don't think there's a _feature_ that I'd want to completely + remove. Git is a fantastic tool in that it lets developers structure their + work in whatever way works best for them; something I personally don't have + a great experience with (looking at you, _submodules_) might just happen to + be someone else's favorite tool. + + However, I would absolutely remove an implementation pattern in Git itself: + shell script builtins and Git commands shelling out to other Git commands. + They're prone to bugs, difficult to troubleshoot, and can almost always be + implemented more efficiently by commonizing the code they're trying to get + out of another command. + +* What is your favorite Git-related tool/library, outside of Git itself? + + I really, really like my current setup of VSCode + + [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens). + I used to have a bit of a "text editor is for editing text, Git command line + is for source control" attitude and avoided using any integrations between + the two, but recently I gave in and installed GitLens. I tend to heavily use + the commit history when investigating bugs & learning a new area of the + code, so the inline 'blame' and commit-message-on-hover in particular make + that process about as fast it could be. + +* What does your mailing list workflow look like? + + For submissions, I use [GitGitGadget](https://github.com/gitgitgadget/git). + It really simplifies the process of submitting to Git (especially re-rolls) + and, if anything, it prevents me from making silly mistakes with + `git send-email`. + + For everything else, I have two email inbox folders: things addressed to me + directly (submission feedback, patches I've been CC'd on) and "everything + else". For direct feedback/CCs, I try to respond within a couple days if I + think I can contribute something valuable to the discussion. The "everything + else" folder is set to "automatically mark as read" to avoid a distracting + barrage of "unread"s in my inbox, so I typically scan it a couple times a + day to stay up-to-date and check whether there's anything I can help with or + review. + +* Do you think contributing to Git has a high entry barrier? If yes, do + you have any suggestions to improve the experience for new contributors? + + In my experience, not really (at least, not so high that it excludes + would-be contributors). But I think it might seem that way because the + mailing list can be super intimidating when you're looking to get started. + + The mailing list is constantly active with complex patches and lots of + experienced developers iterating on complicated feedback, so it can be easy + to feel as though you can't contribute much to it or that your code won't + meet the project's standards. There have been efforts in the past to guide + new contributors and help them technically learn the project, but it + ultimately comes down to the first interactions someone has with the rest of + the mailing that that determines whether or not they stick with it. + + In terms of suggestions for improvement, I think it's important for + reviewers to maintain a supportive tone in even highly constructive reviews. + A lot can get lost in text communication, so sometimes it's worth explicitly + calling out your appreciation for a contribution. This is _especially_ true + for new contributors, but is just as applicable to any reviews. + + Another (more concrete) suggestion would be to make it easier for new + contributors to find appropriate "starter" features/bugs of different sizes. + Other open source projects have issue trackers with a "good first project" + tag (and, as a new contributor on other projects, I've definitely + appreciated them). Although there have been discussions about creating + public issue trackers outside the mailing list, to my knowledge nothing like + that exists yet for Git, let alone a subset for new contributors. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + If you're not coming in with a clear project or bugfix in mind, it can be + really difficult to figure out where to start. If you're in that position, + something that has helped me in the past has been to just start testing + things until they break. Read up on a command you find interesting, look for + scenarios (e.g. options, sequences) that aren't well-tested in our existing + tests, and start experimenting! Worst case, you can improve test coverage + and help us avoid issues in the future; a lot of times, though, you'll find + a bug or an opportunity to add a new option. In any event, the experience + will teach you a ton about Git and make you more comfortable with + contributing. + + And once you have a working change, don't be afraid to submit it out of fear + that it's not "good enough." The goal we all share is to make Git as good as + it can possibly be, so your contribution - no matter how small or trivial + you think it is - is a valuable part of what makes this project succeed. + +* If there's one tip you would like to share with other Git developers, + what would it be? + + Keep learning and trying new things! The Git development community has a + vast range of experience across its members - from people who worked on it + since the beginning to people making their first open source contribution + ever. But it's also an easy place to get stuck in "your niche" (if you're + lucky, you get stuck with a couple of other people so you can review each + others' work). + + Of course, none of us have infinite time to spend on Git. But every once in + a while, take a minute to read a contribution from someone you don't know on + a topic you're not familiar with. Or investigate a bug report on a command + you've never worked on! Or share your idea for a process we could try (like + the Git Review Club)! Not only will you learn something new and improve + yourself as a developer, but the collaboration you foster will help all of + us improve Git in the long term. + ## Releases - Tower for Windows [3.1](https://www.git-tower.com/release-notes/windows) ([What's New in Tower 3.1 for Windows blog post](https://www.git-tower.com/blog/gpg-windows/)) From 43f66d3861721a388ad264c33a4aef394d29203d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 29 Mar 2022 12:05:16 +0200 Subject: [PATCH 0252/1248] rn-85: add releases --- rev_news/drafts/edition-85.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index 958322f013..a111502488 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -190,8 +190,29 @@ This edition covers what happened during the month of February 2022. ## Releases -- Tower for Windows [3.1](https://www.git-tower.com/release-notes/windows) ([What's New in Tower 3.1 for Windows blog post](https://www.git-tower.com/blog/gpg-windows/)) -- Tower for Mac [8.1](https://www.git-tower.com/release-notes/mac) + ++ libgit2 [1.4.2](https://github.com/libgit2/libgit2/releases/tag/v1.4.2) ++ GitLab [14.9.1](https://about.gitlab.com/releases/2022/03/23/gitlab-14-9-1-released/), +[14.9](https://about.gitlab.com/releases/2022/03/22/gitlab-14-9-released/), +[14.8.4](https://about.gitlab.com/releases/2022/03/16/gitlab-14-8-4-released/), +[14.8.3](https://about.gitlab.com/releases/2022/03/15/gitlab-14-8-3-released/), +[14.7.6](https://about.gitlab.com/releases/2022/03/24/gitlab-14-7-6-released/), +[14.7.5](https://about.gitlab.com/releases/2022/03/09/gitlab-14-7-5-released/), +[14.6.6](https://about.gitlab.com/releases/2022/03/02/gitlab-14-6-6-released/) ++ Gerrit Code Review [3.5.1](https://www.gerritcodereview.com/3.5.html#351), +[3.4.4](https://www.gerritcodereview.com/3.4.html#344), +[3.3.10](https://www.gerritcodereview.com/3.3.html#3310), ++ GitHub Enterprise [3.4.0](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.0), +[3.3.5](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.5), +[3.2.10](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.10), +[3.1.18](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.18) ++ GitKraken [8.3.3](https://support.gitkraken.com/release-notes/current), +[8.3.2](https://support.gitkraken.com/release-notes/current), +[8.3.1](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [2.9.12](https://desktop.github.com/release-notes/), +[2.9.11](https://desktop.github.com/release-notes/) ++ Tower for Windows [3.1](https://www.git-tower.com/release-notes/windows) ([What's New in Tower 3.1 for Windows blog post](https://www.git-tower.com/blog/gpg-windows/)) ++ Tower for Mac [8.1](https://www.git-tower.com/release-notes/mac) ## Other News From 05abacc030c7e4cb2feeec79e0df07d67c8b6afd Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 29 Mar 2022 12:20:31 +0200 Subject: [PATCH 0253/1248] rn-85: add Bruno Brito among the helpers --- rev_news/drafts/edition-85.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index a111502488..1d3b7cfdf5 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -233,4 +233,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Bruno Brito. From 17670deb954999584ed2d284f5b9a691f63f5475 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 29 Mar 2022 12:21:11 +0200 Subject: [PATCH 0254/1248] rn-85: add Victoria Dye among the helpers --- rev_news/drafts/edition-85.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index 1d3b7cfdf5..daa07bff90 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -233,4 +233,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito. +with help from Victoria Dye and Bruno Brito. From cea94257ef6fe5aaede991ef7a391761ea864fae Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 29 Mar 2022 18:20:19 +0200 Subject: [PATCH 0255/1248] rn-85: add gcc 12 article --- rev_news/drafts/edition-85.md | 85 ++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-85.md b/rev_news/drafts/edition-85.md index daa07bff90..3df3318638 100644 --- a/rev_news/drafts/edition-85.md +++ b/rev_news/drafts/edition-85.md @@ -21,9 +21,90 @@ This edition covers what happened during the month of February 2022. ### General --> - + +* [[PATCH] http API: fix dangling pointer issue noted by GCC 12.0](https://lore.kernel.org/git/patch-1.1-1cec367e805-20220126T212921Z-avarab@gmail.com/) + + Ævar Arnfjörð Bjarmason sent a patch to the mailing list to fix an + issue that appears when compiling Git with the gcc 12.0 development + branch. + + The issue is that this gcc version emits a warning on the last line + of the following code: + + ``` + int finished = 0; + + slot->finished = &finished; + ``` + + where `slot` is an instance of `struct active_request_slot` which + has an `int *finished` member. + + The warning is "storing the address of local variable ‘finished’ in + ‘*slot.finished’ [-Werror=dangling-pointer=]". + + Ævar thought about making the `struct active_request_slot` member an + `int finished` member, so it's not anymore a pointer, and then about + removing the `int *finished` member entirely and using the + `int in_use` member instead. His patch implemented the latter. + + Taylor Blau reviewed Ævar's patch but wasn't sure about one of the + places where the `int *finished` member was removed. + + Junio Hamano also reviewed the patch and wondered if the new gcc + version was correct in flagging the code in the first place, as it + appeared that `slot->finished` wasn't used outside the function + where it's assigned the address of a local variable. + + Junio also wondered if it was correct to remove the `int *finished` + member entirely and use the `int in_use` member instead, as that + looked like reversing the patch that introduced `int *finished` + without fully explaining why it was correct to do so. + + To address the issue Junio then proposed implementing the following: + + ``` + if (slot->finished == &finished) + slot->finished = NULL; + ``` + + so that hopefully gcc would understand that the `slot->finished` + field isn't using a local address outside the current function. + + Ævar replied to Junio, that assingning slot->finished to NULL at the + end of the function would indeed quiet gcc. So he sent + [a version 2 of his patch](https://lore.kernel.org/git/patch-v2-1.1-777838267a5-20220225T090816Z-avarab@gmail.com/) + that only added `slot->finished = NULL;` at the end of the function. + + Junio wasn't sure if the change was completely correct as he said he + no longer trusts his own reading of the http code, but he agreed + that it should be merged if gcc isn't fixed soon. + + Taylor took another look at the patch and found other functions + where `slot->finished` is assigned, so he wondered if a better fix + would be to change the `int *finished` member into a tri-state + "UNKNOWN/TRUE/FALSE enum". + + Ævar then sent [a version 3 of his patch](https://lore.kernel.org/git/patch-v3-1.1-69190804c67-20220325T143322Z-avarab@gmail.com/) + where he only improved the commit message compared to the previous + version. In the new commit message he explains why the other places + where `slot->finished` is assigned are already correct and don't + need any change. + + Taylor then agreed with Ævar's explanations, but Junio wasn't sure + about them, so he changed the commit message a bit, explaining how + we could make sure that the change to clear `slot->finished` is + correct by adding the following code before it: + + ``` + if (slot->finished) + BUG("the uncoditional clearing at the end is wrong"); + ``` + + For now the patch has still not been merged into the `next` branch + as Junio hopes that the gcc 12.0 will be fixed before it's actually + released. But in case it isn't at least we are ready for it. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 930781117b5256bca7e3d120530cb5d15b139fc9 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 31 Mar 2022 18:50:55 +0200 Subject: [PATCH 0262/1248] rn-85: add Hugging Face & Gitaly link --- _posts/2022-03-31-edition-85.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2022-03-31-edition-85.markdown b/_posts/2022-03-31-edition-85.markdown index db447ef653..d4d0b183ad 100644 --- a/_posts/2022-03-31-edition-85.markdown +++ b/_posts/2022-03-31-edition-85.markdown @@ -304,8 +304,9 @@ __Various__ the motivation behind these changes can be found in the [Improving Git protocol security on GitHub](https://github.blog/2021-09-01-improving-git-protocol-security-github/) article on GitHub Blog. -* [SSH and Git, meet 1Password](https://blog.1password.com/1password-ssh-agent/): +- [SSH and Git, meet 1Password](https://blog.1password.com/1password-ssh-agent/): you can now, among other things, enable the SSH agent in 1Password. +- [Hugging Face uses Gitaly to store Machine Learning related repos](https://discuss.huggingface.co/t/announcement-switching-our-git-infra-to-gitaly/15030). __Light reading__ From 7d363c9bd3b90e1d914afd9a25cbda17d11f45a4 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 31 Mar 2022 18:59:11 +0200 Subject: [PATCH 0263/1248] rn-85: add GitLab hiring link --- _posts/2022-03-31-edition-85.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/_posts/2022-03-31-edition-85.markdown b/_posts/2022-03-31-edition-85.markdown index d4d0b183ad..12a59674d0 100644 --- a/_posts/2022-03-31-edition-85.markdown +++ b/_posts/2022-03-31-edition-85.markdown @@ -307,6 +307,7 @@ __Various__ - [SSH and Git, meet 1Password](https://blog.1password.com/1password-ssh-agent/): you can now, among other things, enable the SSH agent in 1Password. - [Hugging Face uses Gitaly to store Machine Learning related repos](https://discuss.huggingface.co/t/announcement-switching-our-git-infra-to-gitaly/15030). +- [GitLab is hiring to work on Gitaly](https://boards.greenhouse.io/gitlab/jobs/5949673002). __Light reading__ From e4586a32533d41191df47567f3a4598cbc2a74d4 Mon Sep 17 00:00:00 2001 From: Plato Kiorpelidis Date: Tue, 12 Apr 2022 20:33:21 +0300 Subject: [PATCH 0264/1248] General-Microproject-Information: convert travis-ci to GitHub actions Git has converted from using travis-ci to GitHub actions in commit https://github.com/git/git/commit/4a6e4b9602630d50eb9d630c721bb01df97049f9. We also need to update the documentation for possible SoC candidates. The instructions for the added GitHub actions were strongly influenced by commit https://github.com/git/git/commit/f003a91f5c5695a44a94efe9171bc905fbfa27ce. Signed-off-by: Plato Kiorpelidis --- General-Microproject-Information.md | 30 ++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index da58be0b86..3709211b45 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -100,15 +100,27 @@ the following steps: signify your agreement by adding a `Signed-off-by` line. * *Optional, but recommended:* - Create a fork of [Git](https://github.com/git/git) on github.com, - [sign in to Travis CI](https://travis-ci.org/auth) with your GitHub - account, accepting the GitHub - [access permissions confirmation](https://docs.travis-ci.com/user/github-oauth-scopes), - and enable builds of your Git fork in your Travis CI profile - (you only have to do these steps once). Afterwards you can push - your changes to your fork and on - (example [here](https://travis-ci.org/git/git/builds)) you can see - if your changes pass the Git test suite on Ubuntu Linux and on Mac OS X. + With an account at GitHub, you can use GitHub CI to test your changes + on Linux, Mac and Windows. See + [examples](https://github.com/git/git/actions/workflows/main.yml) + of recent CI runs. + + To run these tests against your own branch, + [create a fork](https://help.github.com/articles/fork-a-repo/) + of [Git](https://github.com/git/git) on GitHub and switch to it. At the + top bar select [Actions tab](https://github.com/git/git/actions) + and perform the initial setup to enable it for your fork. After enabling it, + CI will run for a specific branch of your fork whenever you push new changes + to it in GitHub. You can monitor the test state of all your branches in the + same [Actions tab](https://github.com/git/git/actions) of your fork. + + If a branch did not pass all test cases then it is marked with a red cross. In + that case you can click on the failing job and navigate to + "ci/run-build-and-tests.sh" and/or \ + "ci/print-test-failures.sh". You can also + download "Artifacts" which are tarred (or zipped) archives with test data + relevant for debugging. Fix the problem and push your fix to your GitHub fork. + This will trigger a new CI build. Ensure all tests pass. * Submit your change to the Git mailing list. For this step you probably want to use the commands `git format-patch` and `git From 8d3f1c46580b766e4ddb0da62dc8aa8fbba4de92 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Thu, 14 Apr 2022 00:37:43 +0530 Subject: [PATCH 0265/1248] Fix broken student guide links The flossmanual links no longer work. The GSoC contributor guides are available in a different place now. So, update the links accordingly. Also, refer to them as "GSoC Contributor guide" since that is how GSoC refers to them. --- General-Application-Information.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/General-Application-Information.md b/General-Application-Information.md index c601c04cdd..54b275c28c 100644 --- a/General-Application-Information.md +++ b/General-Application-Information.md @@ -49,7 +49,7 @@ what is to be done. An application must include detailed plans on the design, timeline ... A typical application takes several pages. If you are applying for the GSoC, you should already have read -[the GSoC Student Guide](http://write.flossmanuals.net/gsocstudentguide/writing-a-proposal/) +[the GSoC Contributor Guide](https://google.github.io/gsocguides/student/writing-a-proposal) by now, but re-read it if needed. If you are applying for Outreachy there is very likely similar @@ -116,7 +116,7 @@ are interested in, it is a good idea to: Junio. * Include what is suggested in - [the GSoC Student Guide](http://write.flossmanuals.net/gsocstudentguide/writing-a-proposal/) + [the GSoC Contributor Guide](https://google.github.io/gsocguides/student/writing-a-proposal) or the equivalent guidelines for Outreachy. ([lore.kernel.org](https://lore.kernel.org/git/) can be From 6c60ea84626c82b4a62a61ef19fd89d5da5fc491 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Tue, 26 Apr 2022 17:20:25 +0100 Subject: [PATCH 0266/1248] rn-86: Add some "Light Reading" suggestions --- rev_news/drafts/edition-86.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rev_news/drafts/edition-86.md b/rev_news/drafts/edition-86.md index 982b4f50fe..6acab7d795 100644 --- a/rev_news/drafts/edition-86.md +++ b/rev_news/drafts/edition-86.md @@ -43,6 +43,11 @@ __Various__ __Light reading__ +[Mac Dev Survey 2022 Results](https://www.git-tower.com/blog/mac-dev-survey-2022-results/) by Kristian Lumme on Tower's blog. + +[Setting Up Git on Windows Subsystem for Linux](https://www.git-tower.com/blog/git-wsl/) by Bruno Brito on Tower's blog. + +[How to Clean Up Fully Merged Feature Branches](https://www.git-tower.com/blog/how-to-clean-up-merged-feature-branches/) by Bruno Brito on Tower's blog. __Git tools and sites__ From 8e6622d9016a5289de5f1853e09e503406dd980e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 28 Apr 2022 15:14:50 +0200 Subject: [PATCH 0267/1248] rn-86: add releases --- rev_news/drafts/edition-86.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/rev_news/drafts/edition-86.md b/rev_news/drafts/edition-86.md index 982b4f50fe..e2e9b1a896 100644 --- a/rev_news/drafts/edition-86.md +++ b/rev_news/drafts/edition-86.md @@ -35,6 +35,36 @@ This edition covers what happened during the month of March 2022. ## Releases ++ Git [2.36.0](https://public-inbox.org/git/xmqqh76qz791.fsf@gitster.g/), +[2.35.3 and below as a usability fix](https://public-inbox.org/git/xmqq1qy04iqa.fsf@gitster.g/), +[2.36.0-rc2](https://public-inbox.org/git/xmqqfsmib5el.fsf@gitster.g/), +[2.35.2 and below for CVE-2022-24765](https://public-inbox.org/git/xmqqv8veb5i6.fsf@gitster.g/), +[2.36.0-rc1](https://public-inbox.org/git/xmqqy20fjgpy.fsf@gitster.g/), +[2.36.0-rc0](https://public-inbox.org/git/xmqqo81gpokn.fsf@gitster.g/) ++ Git for Windows [2.36.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.36.0.windows.1), +[2.36.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.36.0-rc2.windows.1), +[2.36.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.36.0-rc1.windows.1), +[2.36.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.36.0-rc0.windows.1), +[2.35.3(1)](https://github.com/git-for-windows/git/releases/tag/v2.35.3.windows.1), +[2.35.2(1)](https://github.com/git-for-windows/git/releases/tag/v2.35.2.windows.1) ++ libgit2 [1.4.3](https://github.com/libgit2/libgit2/releases/tag/v1.4.3) ++ GitHub Enterprise [3.4.2](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.2), +[3.3.7](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.7), +[3.2.12](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.12), +[3.1.20](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.20), +[3.4.1](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.1), +[3.3.6](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.6), +[3.2.11](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.11), +[3.1.19](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.19) ++ GitLab [14.10](https://about.gitlab.com/releases/2022/04/22/gitlab-14-10-released/) +[14.9.3](https://about.gitlab.com/releases/2022/04/12/gitlab-14-9-3-released/), +[14.6.7](https://about.gitlab.com/releases/2022/04/01/gitlab-14-6-7-released/), +[14.9.2, 14.8.5, and 14.7.7](https://about.gitlab.com/releases/2022/03/31/critical-security-release-gitlab-14-9-2-released/) ++ GitKraken [8.4.0](https://support.gitkraken.com/release-notes/current) ++ GitHub Desktop [3.0.0](https://desktop.github.com/release-notes/), +[2.9.15](https://desktop.github.com/release-notes/), +[2.9.14](https://desktop.github.com/release-notes/), +[2.9.13](https://desktop.github.com/release-notes/) ## Other News From 646ba6f99c449d287190a640228c55ad70781794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Fri, 29 Apr 2022 19:05:00 +0200 Subject: [PATCH 0268/1248] Improve formatting of proposed changes, using list --- rev_news/drafts/edition-86.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/rev_news/drafts/edition-86.md b/rev_news/drafts/edition-86.md index 6acab7d795..34f6f69f1d 100644 --- a/rev_news/drafts/edition-86.md +++ b/rev_news/drafts/edition-86.md @@ -43,11 +43,9 @@ __Various__ __Light reading__ -[Mac Dev Survey 2022 Results](https://www.git-tower.com/blog/mac-dev-survey-2022-results/) by Kristian Lumme on Tower's blog. - -[Setting Up Git on Windows Subsystem for Linux](https://www.git-tower.com/blog/git-wsl/) by Bruno Brito on Tower's blog. - -[How to Clean Up Fully Merged Feature Branches](https://www.git-tower.com/blog/how-to-clean-up-merged-feature-branches/) by Bruno Brito on Tower's blog. +- [Mac Dev Survey 2022 Results](https://www.git-tower.com/blog/mac-dev-survey-2022-results/) by Kristian Lumme on Tower's blog. +- [Setting Up Git on Windows Subsystem for Linux](https://www.git-tower.com/blog/git-wsl/) by Bruno Brito on Tower's blog. +- [How to Clean Up Fully Merged Feature Branches](https://www.git-tower.com/blog/how-to-clean-up-merged-feature-branches/) by Bruno Brito on Tower's blog. __Git tools and sites__ From b0f943ab445f284b83e6c1b6915f01b6dcb44018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 30 Apr 2022 00:21:54 +0200 Subject: [PATCH 0269/1248] rn-86: Add links to various news, articles, sites and tools --- rev_news/drafts/edition-86.md | 83 +++++++++++++++++++++++++++++++++-- 1 file changed, 80 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-86.md b/rev_news/drafts/edition-86.md index c138b38ae2..0f2f10ce6f 100644 --- a/rev_news/drafts/edition-86.md +++ b/rev_news/drafts/edition-86.md @@ -70,15 +70,92 @@ This edition covers what happened during the month of March 2022. __Various__ ++ [Git security vulnerability announced](https://github.blog/2022-04-12-git-security-vulnerability-announced/) + by Taylor Blau. ++ [Highlights from Git 2.36](https://github.blog/2022-04-18-highlights-from-git-2-36/) + by Taylor Blau. ++ [Public open source projects are eligible for Ultimate [GitLab] tier features](https://about.gitlab.com/blog/2022/02/04/ultimate-perks-for-open-source-projects/) + by Orit Golowinski on GitLab blog. ++ [GitHub can now auto-block commits containing API keys, auth tokens](https://www.bleepingcomputer.com/news/security/github-can-now-auto-block-commits-containing-api-keys-auth-tokens/) + by Sergiu Gatlan. + + +__April Fool's__ + ++ [Make a cup of coffee with Git](https://opensource.com/article/22/4/brew-coffee-git-command) + by Moshe Zadka on opensource\.com ++ [Announcing git snail-mail](https://drewdevault.com/2022/04/01/git-snail-mail.html) + on Drew DeVault's blog... which almost got created for real (though without `git scan-mail` it would require). + __Light reading__ -- [Mac Dev Survey 2022 Results](https://www.git-tower.com/blog/mac-dev-survey-2022-results/) by Kristian Lumme on Tower's blog. -- [Setting Up Git on Windows Subsystem for Linux](https://www.git-tower.com/blog/git-wsl/) by Bruno Brito on Tower's blog. -- [How to Clean Up Fully Merged Feature Branches](https://www.git-tower.com/blog/how-to-clean-up-merged-feature-branches/) by Bruno Brito on Tower's blog. ++ [Securing Developer Tools: Git Integrations](https://blog.sonarsource.com/securing-developer-tools-git-integrations) + by Thomas Chauchefoin on SonarSource blog. ++ [Mac Dev Survey 2022 Results](https://www.git-tower.com/blog/mac-dev-survey-2022-results/) by Kristian Lumme on Tower's blog. ++ [Setting Up Git on Windows Subsystem for Linux](https://www.git-tower.com/blog/git-wsl/) by Bruno Brito on Tower's blog. ++ [How to Clean Up Fully Merged Feature Branches](https://www.git-tower.com/blog/how-to-clean-up-merged-feature-branches/) by Bruno Brito on Tower's blog. ++ [How to Use the Git Stash Command](https://www.freecodecamp.org/news/git-stash-commands/) + by Preethi on freeCodeCamp. ++ [Git Credential Manager: authentication for everyone](https://github.blog/2022-04-07-git-credential-manager-authentication-for-everyone/) + by Matthew John Cheetham on GitHub blog, in [Engineering](https://github.blog/category/engineering/). ++ [The friend zone: friendly forks 101](https://github.blog/2022-04-25-the-friend-zone-friendly-forks-101/) + by Lessley Dennington on GitHub blog, in [Engineering](https://github.blog/category/engineering/) and [Open Source](https://github.blog/category/open-source/). ++ [The risks of embedded bare repositories in Git](https://lwn.net/Articles/892755/) + by Jake Edge on LWN ([free link for non-subscribers](https://lwn.net/SubscriberLink/892755/a087f0c8092e873e/)). ++ [Handling messy pull-request diffstats](https://lwn.net/Articles/889760/) + by Jonathan Corbet on LWN ([free link for non-subscribers](https://lwn.net/SubscriberLink/889760/1b10fc1d270a0874/)). + + Present in Linux kernel documentation as [maintainer/messy-diffstat.rst](https://github.com/torvalds/linux/blob/master/Documentation/maintainer/messy-diffstat.rst). ++ [Radicle: a Decentralized Alternative to GitHub for Web3](https://thenewstack.io/radicle-a-decentralized-alternative-to-github-for-web3/) + by Jake Ludington on The New Stack. [Radicle](https://radicle.xyz/) was previously mentioned in + [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/) and [#70](https://git.github.io/rev_news/2020/12/26/edition-70/). ++ [Explaining Git branches with a LEGO analogy](https://opensource.com/article/22/4/git-branches) + by Seth Kenlon on opensource\.com. ++ [Make your own Git subcommands](https://opensource.com/article/22/4/customize-git-subcommands) + by Seth Kenlon on opensource\.com. ++ [How I use the Git `for-each-ref` command for DevOps](https://opensource.com/article/22/4/git-each-ref-command) + by Evan "Hippy" Slatis on opensource\.com. ++ [My guide to understanding Git `rebase -i`](https://opensource.com/article/22/4/manage-git-commits-rebase-i-command) + by Vaishnavi R on opensource\.com. ++ [How to "Undo" Pushed Commits with Git](https://dev.to/github/how-to-undo-pushed-commits-with-git-2pe6) + by Rizèl Scarlett for GitHub on DEV. ++ [5 resources to get your Monorepo off the ground](https://dev.to/mbarzeev/5-resources-to-get-your-monorepo-off-the-ground-3mlp) + by Matti Bar-Zeev on DEV; + + first mention of monorepos in Git Rev News can be found in [edition #4](https://git.github.io/rev_news/2015/06/03/edition-4/), + + most recent mention is [Monorepo.tools](https://monorepo.tools/) site in [edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [Use Git tactically](https://stackoverflow.blog/2022/04/06/use-git-tactically/): + How you can use micro-commits to effectively apply the [Strangler Fig pattern](https://martinfowler.com/bliki/StranglerFigApplication.html), + by Mark Seeman on The Overflow (Stack Overflow blog). + __Git tools and sites__ ++ [Building Software Together](https://buildtogether.tech/) is a free online book by Greg Wilson + which aims aim is to teach you how to be a _compassionate programmer_; + it includes two chapters about Git: + + [Chapter 7: Using Git On Your Own](https://buildtogether.tech/git-solo/) + + [Chapter 8: Using Git Together](https://buildtogether.tech/git-team/) ++ [Version Control with Git](https://swcarpentry.github.io/git-novice/index.html) + by the Software Carpentry Foundation ++ [git-backup](https://github.com/ChappIO/git-backup) is a command-line tool + to pull all your GitHub and GitLab repositories for backup purposes; doesn't require Git. ++ [gitquickbranch.c](https://dianne.skoll.ca/hacks/gitquickbranch.c) + by Dianne Skoll is a small program in C to quickly find current branch name. ++ [delta](https://github.com/dandavison/delta) is a syntax-highlighting pager + for git, diff, and grep output. + + It is one of the tools on [Modern Unix tools](https://github.com/ibraheemdev/modern-unix) list, + which is a collection of modern/faster/saner alternatives to common unix commands. ++ [Difftastic](https://github.com/Wilfred/difftastic) + is an experimental diff tool that compares files based on their syntax. + The [manual](https://difftastic.wilfred.me.uk/) includes list of + [some other tree diffing tools available](https://difftastic.wilfred.me.uk/tree_diffing.html). ++ [Vershd](https://vershd.io/) is [Electron-based](https://www.electronjs.org/apps?q=git) + multi-platform Git GUI, with separate views of branches and their commits, pending files and stashes, + and the ability to show in advance what's going to happen when actions are taken. + Free for, among others, personal use and educational institutions. + If only it's marketing was less FUD-ish + _("Git can [...] destroy your work in a second")_... + ## Credits From 9575dd6ac51c830d874ac9e767ea54e74e376c32 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 30 Apr 2022 00:48:01 +0200 Subject: [PATCH 0270/1248] rn-86: change publication date to 2022-04-30 --- rev_news/drafts/edition-86.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-86.md b/rev_news/drafts/edition-86.md index 0f2f10ce6f..7f718ee596 100644 --- a/rev_news/drafts/edition-86.md +++ b/rev_news/drafts/edition-86.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 86 (April 27th, 2022) +title: Git Rev News Edition 86 (April 30th, 2022) layout: default -date: 2022-04-27 12:06:51 +0100 +date: 2022-04-30 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 86 (April 27th, 2022) +## Git Rev News: Edition 86 (April 30th, 2022) 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 From e4640250296c69e25bf0c19ad4ffb96ed33d5187 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 30 Apr 2022 00:48:51 +0200 Subject: [PATCH 0271/1248] rn-86: add git reset --quiet article --- rev_news/drafts/edition-86.md | 115 +++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-86.md b/rev_news/drafts/edition-86.md index 7f718ee596..bb90fd67cd 100644 --- a/rev_news/drafts/edition-86.md +++ b/rev_news/drafts/edition-86.md @@ -21,9 +21,120 @@ This edition covers what happened during the month of March 2022. ### General --> - + +* [[PATCH 0/5] Separate '--skip-refresh' from '--quiet' in 'reset', use '--quiet' internally in 'stash'](https://lore.kernel.org/git/pull.1170.git.1647043729.gitgitgadget@gmail.com/) + + Victoria Dye sent a 5 patch long series to improve the following: + + - the way the `--quiet` command line options work in `git reset`, + - the way index refreshing is handled in `git reset`, and + - the way the `--quiet` and `--index` command line option work in + `git stash`. + + She had discovered issues with these features when she was working + on tests for `git stash` sparse index integration. (See Victoria's + interview in last month's + [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/) + for information on Victoria's current work.) She found that + `--quiet` in `git stash` does not suppress all non-error output when + used with `--index` and that this comes from `reset_head()` being + called without the internal flag corresponding to `--quiet`. + + When calling `reset_head()` with the flag is set though, the index + is not refreshed, while `git stash` needs the index to be refreshed. + The underlying issue was that the internal flags related to + `--quiet` and to refreshing the index were not independent. + + So the first goal with her patch series was to decouple these + behaviors, and the second goal was to allow `git stash` to + internally use `reset_head()` with the internal flag corresponding + to `--quiet` and to still refresh the index. + + To decouple the behaviors one of her patches introduced the + `--[no-]refresh` option and the corresponding `reset.refresh` config + setting to `git reset`. Derrick Stolee, who prefers to be called + just Stolee, reviewed the patch series and agreed that the changes + in that patch were "well motivated", and otherwise he found that the + "code looks great" and he the mostly suggested improvements to the + tests. + + Junio Hamano, the Git maintainer, also agreed that it was a good + idea to separate refreshing from `--quiet`. + + Victoria then sent [a version 2](https://lore.kernel.org/git/pull.1170.v2.git.1647274230.gitgitgadget@gmail.com/) + of her patch series, with improvements to the tests, some commit + messages and the cover letter title. + + Junio then reviewed the patch series and mostly suggested + improvements to the tests saying that otherwise "everything looked + good", while Stolee was happy with the series as it took into + account all his previous suggestions. + + Victoria then sent [a version 3](https://lore.kernel.org/git/pull.1170.v3.git.1647308982.gitgitgadget@gmail.com/) + of her patch series that added a few more tests and improved some + others tests. + + Junio and Victoria then discussed the tests a bit more, and Junio + agreed with Victoria's approach. + + Phillip Wood though chimed in a few days later saying that the + approach taken by the patch series, which consisted in still not + refreshing the index by default when `--quiet` was given, was maybe + not the best. He considered that it was a "hack" that had been + introduced for performance reasons before the sparse index feature + was introduced and that we should take the opportunity to get rid of + it and go back to the original behavior of refreshing the index when + `--quiet` is given. + + Junio agreed with Phillip saying that "he would very much prefer to + see `--quiet` not making contribution to the decision to refresh or + not in the longer term". He suggested introducing `--no-refresh` to + `git reset` and said he thought `reset.refresh` wasn't a good idea + as it could lead to issue for people using `git reset` in scripts. + + Victoria replied that she agreed with them but wanted to preserve as + much backward compatibility as possible. She said she would gladly + make the change if backwards-compatibility wasn't an issue. She also + asked if `reset.quiet` should be kept as it could also harm people + using `git reset` in scripts. + + As her patch series had already been merged into the `next` branch, + she would send a new series on top deprecating `reset.refresh` and + `reset.quiet`, and making refreshing the default for all of `git + reset`. + + Later she indeed sent the first version of + [a 4 patch long series](https://lore.kernel.org/git/pull.1184.git.1647894889.gitgitgadget@gmail.com/) + removing all instances of skipping index refresh in `git reset` + except for `--no-refresh` itself, and removing both `reset.refresh` + and `reset.quiet`. + + Phillip reviewed her new patch series suggesting to allow both + `--no-refresh` and `--refresh` as one patch of the series removed + the latter. He said that `--refresh` could be used to countermand a + previous `--no-refresh` typically when using an alias that includes + `--no-refresh`. He also discussed possible improvements to the + documentation of `--refresh` and to commit messages. + + Victoria then sent + [a version 2 of this new patch series](https://lore.kernel.org/git/pull.1184.v2.git.1648059480.gitgitgadget@gmail.com/) + taking into account Phillip's suggestions. + + Junio liked the changes and agreed to merge the series. Later + though, Phillip suggested that the short help sentence given by `git + reset -h` be about `--no-refresh` instead of `--refresh` as it's + "the form that users will want most of the time". + + Junio agreed with Phillip's suggestion. He had already merged the + series to `next` though, so he proposed another patch on top + implementing Phillip's suggestion. Victoria tested the patch and + agreed with it. Junio replied he would merge it then. + + All these patches were indeed merged into the master branch before + the recent release of the latest Git 2.36.0, so that in this new Git + version `git reset` and `git stash` handle some of their options in + a much better way. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From a6c1046fafbb7db8d44c67057b441bf5aa8ebdc5 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 2 May 2022 10:10:51 +0200 Subject: [PATCH 0286/1248] rn-86: correct date in filename --- ...2-05-01-edition-86.markdown => 2022-04-30-edition-86.markdown} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2022-05-01-edition-86.markdown => 2022-04-30-edition-86.markdown} (100%) diff --git a/_posts/2022-05-01-edition-86.markdown b/_posts/2022-04-30-edition-86.markdown similarity index 100% rename from _posts/2022-05-01-edition-86.markdown rename to _posts/2022-04-30-edition-86.markdown From 45bb56ff00c87a8c35420d8ac81c692a4118ca26 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 22 May 2022 17:35:28 +0200 Subject: [PATCH 0287/1248] rn-87: add releases --- rev_news/drafts/edition-87.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index b1ec772df4..c6b5296cfc 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -35,6 +35,19 @@ This edition covers what happened during the month of May 2022. ## Releases ++ Git [2.36.1](https://public-inbox.org/git/xmqqczgqmv0f.fsf@gitster.g/) ++ Git for Windows [2.36.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.36.1.windows.1) ++ GitLab [15.0](https://about.gitlab.com/releases/2022/05/22/gitlab-15-0-released/) +[14.10.3](https://about.gitlab.com/releases/2022/05/16/gitlab-14-10-3-released/), +[14.10.2](https://about.gitlab.com/releases/2022/05/05/gitlab-14-10-2-released/), +[14.10.1, 14.9.4, and 14.8.6](https://about.gitlab.com/releases/2022/05/02/security-release-gitlab-14-10-1-released/) ++ Gerrit Code Review [3.3.11](https://www.gerritcodereview.com/3.3.html#3311) ++ GitHub Enterprise [3.5.0](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.0), +[3.4.3](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.3), +[3.3.8](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.8), +[3.2.13](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.13), +[3.1.21](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.21) ++ GitKraken [8.5.0](https://support.gitkraken.com/release-notes/current) ## Other News From 13b2fdf2f2ae3b8111d9a702a94848ac2ebd5b11 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 22 May 2022 23:23:29 +0530 Subject: [PATCH 0288/1248] rn-87: add interview with Carlo Arenas --- rev_news/drafts/edition-87.md | 139 +++++++++++++++++++++++++++++++++- 1 file changed, 136 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index c6b5296cfc..54eb0d0639 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -29,9 +29,142 @@ This edition covers what happened during the month of May 2022. ### Support --> - +## Developer Spotlight: Carlo Marcelo Arenas Belón + +* Who are you and what do you do? + + I am a peruvian hacker that likes to argue he is also "american" to + his neighbours and accidental coworkers/friends in the USA, because + while I flew to get here, and I even crossed an ocean to do so, I + might as well have walked instead. + + To be honest, my close family and probably most of my friends in Perú + would instead call me a "characato" but I am starting to worry I am + getting slightly off-topic here. + + About "what I do", it is a little complicated; I used to call myself a + "server babysitter" until I had a real human one and realized how + inaccurate that was. I usually have a lot of computers around me and + one day realized I might become a cyborg of sorts even if none of them + is strictly connected to me, because AFAIK nobody has figured out how + to do that yet, but again I seem to be going off-topic, because I am + guessing what you really meant is either "what it says in my current + business card" or "what sort of thing I do to contribute to society + that is good enough so I have the means to pay the bills"? + + Well; due to either a series of unfortunate misunderstandings or some + bureaucratic mistake akin to the Vogon Constructor Fleet job that + destroyed earth in the beginning of the Hitchhiker of the Galaxy, I am + now open to a lot more opportunities to help you do anything, and MUST + do it for free. Hope that is a good answer, but ping me if you would + like some additional explanation. + +* What would you name your most important contribution to Git? + + None. + + I did break Git for macOS once long ago when I was trying to make it + more useful in Linux. Then, I did the same at least once for + Windows after I bought an Apple computer to make sure that + wouldn't happen again and changed my email address so no one would be + able to connect the dots. + + I might have found one bug in Windows that might have redeemed me from + that breakage after I bought a Windows computer for similar reasons + though. + + I did fix Git for Minix after I met Linus Torvalds in a Google + conference and just in spite of him not understanding a funny joke I + made (not a fault of his, I am sure, since I have such a thick accent + I sometimes can't understand myself), but I had yet to upstream the + patches, so maybe that? + + Eitherway, I am hoping whatever it is, it will be great and might make + my mom or my son proud, even if it is yet to come. + +* What are you doing on the Git project these days, and why? + + scratching itches and learning from the best, aren't you? + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + I'm not sure if it will take a full year, but it would be great to + have a Git conference to get everyone in a room (obviously not while + there is a pandemic, of course). + + Something less ambitious but maybe even more effective, would be to get a + virtual hackathon, eventhough I had to admit realistically a physical + one would be even better. + + It is a shame they don't do the "Linux cruise" anymore, but it might + be also a good format at a much smaller scale and I even remember + reading somewhere that even in a cruise (which usually has terrible + internet connectivity), Git was still useful since you might as well + send patches around in USB drives. + + I guess the first thing to implement in that hackaton might be ZMODEM + transport for git push/pull, and I might be more than happy to make + sure everyone has a working cable to use if they are still lucky + enough to get a computer that has a DB9. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + The bugs, but then even those are fun to have from time to time. + +* What is your favorite Git-related tool/library, outside of Git itself? + + I don't have a favorite, but it is because I just don't know enough to have one. + Luckily you guys have this monthly "magazine" of sorts, so I might be + able to eventually find one. + + It sort of feels as exciting as when I used to go to one private + library in my hometown to read about the latest games in the computer + magazines they had that I might be able to type into that first + computer my parents got for me, that had an 8-bit CPU and 64KB of RAM + (not all of it totally addressable though, as it also had a ROM with a + basic interpreter that I think used half of that), but I am not sure. + +* Do you happen to have any memorable experience w.r.t contributing to the + Git project? If yes, could you share it with us? + + Lots indeed, that is why I sometimes actively try to fix some bugs any + reasonable person would either ignore or at most report. + + My code might be a mess, but I think it is usually better than a bug, + and I get the chance to get to work and learn from people that are way + better than me at fixing them, mostly nicer as well, and especially + way more patient than I would be. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + My first contribution was probably a real and annoying bug that I + couldn't believe was there, so most people I presume would just + scratch that itch and go away. + + Some might fall in love with the technology, or the community and come + back like I did. + + Regardless of that, there is a lot of wisdom (and luckily for me, + incomplete features or minor bugs) which once you realize this tool is + meant to be used by developers, kind of makes sense. + + The documentation and the list content is pure gold, so take your time + to read as much of it as you can first, if possible. + + Jump straight at it and make sure all the tests and linters are quiet + and try to fight the urge to send it out until you can't improve it + further and let it go. + + Read the feedback you'd get, and try to improve it further based on + that, and iterate. Be patient and take your time. + +* If there's one tip you would like to share with other Git developers, + what would it be? + + Don't Panic ## Releases From d12e00debed6874d3955f7354dc841fa2c4ed3f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= Date: Sun, 22 May 2022 13:15:33 -0700 Subject: [PATCH 0289/1248] Proofreading Frankly I am not sure about the grammatical rule that applies but "at" sounds better. Also improved slightly the reference to HG2G[1] using material from Wikipedia, which I guess might make this a derivative ;) [1] https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy --- rev_news/drafts/edition-87.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index 54eb0d0639..c269520482 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -54,7 +54,7 @@ This edition covers what happened during the month of May 2022. Well; due to either a series of unfortunate misunderstandings or some bureaucratic mistake akin to the Vogon Constructor Fleet job that - destroyed earth in the beginning of the Hitchhiker of the Galaxy, I am + demolished Earth at the beginning of the Hitchhiker's Guide to the Galaxy, I am now open to a lot more opportunities to help you do anything, and MUST do it for free. Hope that is a good answer, but ping me if you would like some additional explanation. @@ -123,7 +123,7 @@ This edition covers what happened during the month of May 2022. library in my hometown to read about the latest games in the computer magazines they had that I might be able to type into that first computer my parents got for me, that had an 8-bit CPU and 64KB of RAM - (not all of it totally addressable though, as it also had a ROM with a + (not all of it totally usable though, as it also had a ROM with a basic interpreter that I think used half of that), but I am not sure. * Do you happen to have any memorable experience w.r.t contributing to the From 154c0ad0ffe2f377a87593b1aa1c1e00cf8d33d1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 23 May 2022 16:40:07 +0200 Subject: [PATCH 0290/1248] rn-87: add GSoC small article --- rev_news/drafts/edition-87.md | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index 54eb0d0639..9ba51439ee 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -17,9 +17,33 @@ This edition covers what happened during the month of May 2022. ## Discussions - + +* [Git participates in GSoC (Google Summer of Code) 2022](https://summerofcode.withgoogle.com/programs/2022/organizations/git) + + The following three contributors have been officially accepted to + work on Git as part of the + [GSoC 2022](https://summerofcode.withgoogle.com/): + + - Abhradeep Chakraborty will work on the + [Reachability bitmap improvements](https://summerofcode.withgoogle.com/programs/2022/projects/UPtA6qdf) + project. He will be co-mentored by Kaartic Sivaraam and Taylor Blau. + + - Shaoxuan Yuan will work on the + [More Sparse Index Integrations](https://summerofcode.withgoogle.com/programs/2022/projects/hz4rcOUB) + project. He will be co-mentored by Derrick Stolee and Victoria Dye. + + - Jaydeep Das will work on the + [Unify ref-filters with other pretty formats](https://summerofcode.withgoogle.com/programs/2022/projects/8mYcnerl) + project. He will be co-mentored by Hariom Verma and Christian + Couder. His first blog post about it + [is up](https://jdeep.me/posts/6.d/). + + Congratulations to the selected contributors! + + Thanks also to the students who applied and worked on + micro-projects, but couldn't be selected! We hope to continue to see + you in the community! From d6c7ca5da28e0a03a137a6d780985e6ac825fcfb Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 24 May 2022 12:02:25 +0200 Subject: [PATCH 0295/1248] rn-87: add Bruno Brito among the helpers --- rev_news/drafts/edition-87.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index 7760aa9a78..190fd5d648 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -297,4 +297,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Bruno Brito. From f3501818e8d18633ab158fee78c726fb2f715212 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 24 May 2022 12:03:30 +0200 Subject: [PATCH 0296/1248] rn-87: add Carlo Arenas among the helpers --- rev_news/drafts/edition-87.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index 190fd5d648..765322e2a6 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -297,4 +297,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito. +with help from Carlo Marcelo Arenas Belón and Bruno Brito. From 0a4a4031942e98c2589dde0da6198c2d2b03558a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 24 May 2022 15:27:48 +0200 Subject: [PATCH 0297/1248] rn-87: change publication date to 2022-05-26 --- rev_news/drafts/edition-87.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index 765322e2a6..fc633b7e5c 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 87 (May 25th, 2022) +title: Git Rev News Edition 87 (May 26th, 2022) layout: default -date: 2022-05-25 12:06:51 +0100 +date: 2022-05-26 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 87 (May 25th, 2022) +## Git Rev News: Edition 87 (May 26th, 2022) 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 From 8d3f527955568600fd2fe174ee59526b4ee20a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 24 May 2022 18:06:48 +0200 Subject: [PATCH 0298/1248] rn-87: Add links to various articles, services, and tools --- rev_news/drafts/edition-87.md | 69 ++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index fc633b7e5c..0a009876cc 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -280,15 +280,82 @@ This edition covers what happened during the month of May 2022. __Various__ -+ [Mastering Tower for Mac — 40 Tips in under 10 Minutes](https://youtu.be/OChAwMBLjnY) video by Bruno Brito. + __Light reading__ ++ [An overview of version control in programming](https://lemire.me/blog/2022/04/21/an-overview-of-version-control-in-programming/) + by Daniel Lemire on his blog. ++ [Revisiting the Pain: The World without Git](https://dev.to/kcdchennai/revisiting-the-pain-the-world-without-git-3jod) + by Sneh Chauhan for Kubernetes Community Days Chennai on DEV\.to. + + Compare [The Git Parable](http://tom.preston-werner.com/2009/05/19/the-git-parable.html), + by Tom Preston-Werner (2009) - the ideas behind the architecture of Git; + covered in [Git Rev News #30](https://git.github.io/rev_news/2017/08/16/edition-30/). + [Mastering Tower (Mac Edition)](https://www.git-tower.com/blog/mastering-tower/) by Bruno Brito on Tower's blog. ++ [Mastering Tower for Mac — 40 Tips in under 10 Minutes](https://youtu.be/OChAwMBLjnY) video by Bruno Brito. ++ [Git Commit Message Template in Terminal and VS Code](https://dev.to/abbeyperini/git-commit-message-template-in-terminal-and-vs-code-326p) + by Abbey Perini on DEV\.to. This article refers to: + + [How to Write a Git Commit Message](https://cbea.ms/git-commit/) (2014), which appeared in + [Git Rev News Edition #24](https://git.github.io/rev_news/2017/02/22/edition-24/). + + [Conventional Commits specification](https://www.conventionalcommits.org/), first appearing in + [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). ++ [A Guide to writing Industry Standard Git Commit Message](https://dev.to/tuasegun/a-guide-to-writing-industry-standard-git-commit-message-2ohl) + by Tuasegun on DEV\.to. ++ [Your Git Commit History Should Read Like a History Book. Here’s How.](https://betterprogramming.pub/your-git-commit-history-should-read-like-a-history-book-heres-how-7f44d5df1801) + by Mirco, on Better Programming, a Medium blog (member-only story). ++ [Squash \[merge\] commits considered harmful](https://dev.to/wesen/squash-commits-considered-harmful-ob1) + by Manuel Odendahl on DEV\.to. ++ [Can You Resolve Merge Conflicts Before They Happen?](https://dev.to/benjamincohen123/can-you-resolve-merge-conflicts-before-they-happen-46nd) + by Benjamin C. Baker on DEV\.to describes how to resolve merge conflicts manually, + and how one can detect potential conflicts in advance with [GitLive](https://git.live/) extension. + GitLive was mentioned in [Git Rev News Edition #77](https://git.github.io/rev_news/2021/07/31/edition-77/) + and [#82](https://git.github.io/rev_news/2021/12/30/edition-82/). ++ [How to Resolve Merge Conflicts in Git – A Practical Guide with Examples](https://www.freecodecamp.org/news/resolve-merge-conflicts-in-git-a-practical-guide/) + by Tapas Adhikary on freeCodeCamp. ++ [Automatically formatting and cleaning code on commit](https://blogs.halodoc.io/automatically-formatting-and-beautifying-code-on-commit/) + by Muhammad Sibra on Halodoc. + + This article mentions [husky](https://typicode.github.io/husky/#/), + which was first included in [Git Rev News #63](https://git.github.io/rev_news/2020/05/28/edition-63/), + and [lint-staged](https://www.npmjs.com/package/lint-staged), + first mentioned in [Git Rev News #45](https://git.github.io/rev_news/2018/11/21/edition-45/). ++ [Arduino and Git: Two Views](https://hackaday.com/2022/04/29/arduino-and-git-two-views/) + by Al Williams on Hackaday. ++ [Rename rebase with git](https://edofic.com/posts/2020-04-20-rebase-rename/) (2020), + or how to perform a `git rebase` in which you rename a file without conflicts -- though + nowadays one would use [`git filter-repo`](https://github.com/newren/git-filter-repo) + instead of `git filter-branch` as in the article. + Post on Andraž Bajt's blog. ++ [Repairing a corrupt Git repo using a clone](https://edofic.com/posts/2016-02-24-git-repair/) (2016) + on Andraž Bajt's blog. __Git tools and sites__ ++ [Commit Message Editor](https://marketplace.visualstudio.com/items?itemName=adam-bender.commit-message-editor) + plugin for Visual Studio Code, by Adam Bender. + The default settings follow the Conventional Commits specification ++ [VSCode Git Commit Message](https://marketplace.visualstudio.com/items?itemName=rioukkevin.vscode-git-commit) + plugin for Visual Studio Code, by Kévin Riouk. + An extension made to formalize git commit messages. ++ [Mergify](https://mergify.com/) is a web service for + automatizing pull requests and securing the code merge using a merge queue. + Free for open-source. + + [Merging Pull Requests Like a Pro With Mergify](https://dev.to/aniket762/merging-pull-requests-like-a-pro-with-mergify-30fa) + by Aniket Pal on DEV\.to. ++ [Mani](https://github.com/alajmo/mani) is a CLI tool that helps you manage multiple repositories. + + [mani, a CLI Tool to Manage Multiple Repositories](https://dev.to/alajmo/mani-a-cli-tool-to-manage-multiple-repositories-1eg) + by Samir Alajmovic on DEV\.to. The article includes list of + [alternatives](https://dev.to/alajmo/mani-a-cli-tool-to-manage-multiple-repositories-1eg#alternatives). ++ [Fig](https://fig.io/) adds IDE-style autocomplete (including for git, cd, ssh) + to your existing terminal (Terminal, iTerm, Hyper, Tabby, Kitty, bash, zsh,...). ++ [JSON Patch](http://jsonpatch.com/) is a format for describing changes to a JSON document + as JSON document themselves. Specified in [RFC 6902](https://datatracker.ietf.org/doc/html/rfc6902/). ++ [sqldiff](https://www.sqlite.org/sqldiff.html) is command-line utility program + that displays content differences between two [SQLite](https://www.sqlite.org/) databases. ++ [Gitcoin (GTC)](https://gitcoin.co/) is a Web3 platform, which combines + open-source programming projects with a Ethereum-based crypto payment system. + _In spite of its name it has no connection with Git._ + ## Credits From 2d1c27ac94991880a557df502674b1d8efa63053 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 24 May 2022 23:30:14 +0530 Subject: [PATCH 0299/1248] rn-87: use 'contributors' instead of 'students' to refer GSoC candidates GSoC candidates are not longer just students [1]. They could be graduates too. So, avoid using the term 'students' to refer to them. Instead, use the term 'contributors' to refer to them which aligns closely with GSoC's suggested wording of 'GSoC Contributors'. [1]: https://opensource.googleblog.com/2021/11/expanding-google-summer-of-code-in-2022.html?m=1 --- rev_news/drafts/edition-87.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index 0a009876cc..e7c46c089b 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -41,7 +41,7 @@ This edition covers what happened during the month of May 2022. Congratulations to the selected contributors! - Thanks also to the students who applied and worked on + Thanks also to the other contributors who applied and worked on micro-projects, but couldn't be selected! We hope to continue to see you in the community! From 41aa4d370e1701fa07942f7fe9100aff62fe4566 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Wed, 25 May 2022 14:10:21 +0200 Subject: [PATCH 0300/1248] Supplied my usual tiny fixes; deliberately extended the issue's time frame to April and May. --- rev_news/drafts/edition-87.md | 41 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/rev_news/drafts/edition-87.md b/rev_news/drafts/edition-87.md index 69aaee469c..9cae32298e 100644 --- a/rev_news/drafts/edition-87.md +++ b/rev_news/drafts/edition-87.md @@ -13,7 +13,7 @@ Welcome to the 87th edition of [Git Rev News](https://git.github.io/rev_news/rev a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). -This edition covers what happened during the month of May 2022. +This edition covers what happened during the months of April and May 2022. ## Discussions @@ -48,7 +48,7 @@ This edition covers what happened during the month of May 2022. * [[ANNOUNCE] git-scm.com Heroku credits update](https://lore.kernel.org/git/YkcmtqcFaO7v1jW5@nand.local/) Taylor Blau announced that the Heroku credits for - [git-scm.com](https://git-scm.com), Git project's de-facto homepage, + [git-scm.com](https://git-scm.com), Git project's de facto homepage, would not be provided for free by Heroku anymore. The Git project has so far relied on those free credits from Heroku @@ -104,8 +104,9 @@ This edition covers what happened during the month of May 2022. [GSoC](https://summerofcode.withgoogle.com) project. For now the Git project accepted - [FusionAuth](https://fusionauth.io/)'s generous offer and the - git-scm.com web site will continue to run in the same way. + [FusionAuth](https://fusionauth.io/)'s generous offer, and the + [git-scm.com](https://git-scm.com) web site will continue to run + in the same way. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 0f746f65655c6268ca84a061fa23413294e9469a Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 29 May 2022 23:48:32 +0200 Subject: [PATCH 0308/1248] Removed the empty "Various" paragraph. --- _posts/2022-05-26-edition-87.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2022-05-26-edition-87.markdown b/_posts/2022-05-26-edition-87.markdown index f512e9ceba..f86825a5cb 100644 --- a/_posts/2022-05-26-edition-87.markdown +++ b/_posts/2022-05-26-edition-87.markdown @@ -282,9 +282,9 @@ This edition covers what happened during the months of April and May 2022. ## Other News + __Light reading__ From c61046f184d7700711bcb206c385b9d96692bded Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Thu, 23 Jun 2022 15:27:00 +0100 Subject: [PATCH 0309/1248] rn-88: Add new release + Reading suggestions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I added a new Tower for Mac release and 4 new blog posts 🙂 --- rev_news/drafts/edition-88.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-88.md b/rev_news/drafts/edition-88.md index 6cba51d6bb..6354f2c85b 100644 --- a/rev_news/drafts/edition-88.md +++ b/rev_news/drafts/edition-88.md @@ -34,15 +34,17 @@ This edition covers what happened during the month of May 2022. --> ## Releases - ++ Tower for Mac [8.3](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) ## Other News __Various__ - __Light reading__ - ++ [Better File Comparison with Kaleidoscope](https://www.git-tower.com/blog/kaleidoscope/) by Bruno Brito on Tower’s blog. ++ [Working with Feature Branches](https://www.git-tower.com/blog/working-with-feature-branches/) by Bruno Brito on Tower’s blog. ++ [Coming Up on Tower's Roadmap](https://www.git-tower.com/blog/coming-up-on-the-roadmap-2022/) by Bruno Brito on Tower’s blog. ++ [The Three Phases of Software Development](https://www.git-tower.com/blog/three-phases-of-software-development/) by Kristian Lumme on Tower’s blog. __Git tools and sites__ From ffd86fa2c68321c3de8ca378c44ace03742ffd29 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 28 Jun 2022 13:55:52 +0200 Subject: [PATCH 0310/1248] rn-88: add releases --- rev_news/drafts/edition-88.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/rev_news/drafts/edition-88.md b/rev_news/drafts/edition-88.md index 6354f2c85b..3b42e0e744 100644 --- a/rev_news/drafts/edition-88.md +++ b/rev_news/drafts/edition-88.md @@ -34,6 +34,29 @@ This edition covers what happened during the month of May 2022. --> ## Releases + ++ Git [2.37.0](https://public-inbox.org/git/xmqqy1xinf00.fsf@gitster.g/), +[2.37.0-rc2](https://public-inbox.org/git/xmqqedzg4hqj.fsf@gitster.g/), +[2.37.0-rc1](https://public-inbox.org/git/xmqqv8syloqp.fsf@gitster.g/), +[2.37.0-rc0](https://public-inbox.org/git/xmqqwndk10gg.fsf@gitster.g/) ++ Git for Windows [2.37.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.37.0.windows.1), +[2.37.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.37.0-rc2.windows.1), +[2.37.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.37.0-rc1.windows.1), +[2.37.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.37.0-rc0.windows.1) ++ Bitbucket Server [8.2](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ Gerrit Code Review [3.6.1](https://www.gerritcodereview.com/3.6.html#361) ++ GitHub Enterprise [3.5.1](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.1), +[3.4.4](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.4), +[3.3.9](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.9), +[3.2.14](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.14), +[3.1.22](https://help.github.com/enterprise-server@3.1/admin/release-notes#3.1.22) ++ GitLab [15.1](https://about.gitlab.com/releases/2022/06/22/gitlab-15-1-released/) +[15.0.3](https://about.gitlab.com/releases/2022/06/16/gitlab-15-0-3-released/), +[15.0.2](https://about.gitlab.com/releases/2022/06/06/gitlab-15-0-2-released/), +[15.0.1, 14.10.4, and 14.9.5](https://about.gitlab.com/releases/2022/06/01/critical-security-release-gitlab-15-0-1-released/) ++ GitHub Desktop [3.0.3](https://desktop.github.com/release-notes/), +[3.0.2](https://desktop.github.com/release-notes/), +[3.0.1](https://desktop.github.com/release-notes/) + Tower for Mac [8.3](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) ## Other News From fadd6522a37229c4f3b3a56f68c2ed66eac0509d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 28 Jun 2022 20:38:46 +0200 Subject: [PATCH 0311/1248] rn-88: Add links to various news, articles, services, and tools --- rev_news/drafts/edition-88.md | 65 ++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-88.md b/rev_news/drafts/edition-88.md index 6354f2c85b..14dc40b653 100644 --- a/rev_news/drafts/edition-88.md +++ b/rev_news/drafts/edition-88.md @@ -37,17 +37,80 @@ This edition covers what happened during the month of May 2022. + Tower for Mac [8.3](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) ## Other News +__Events__ ++ [Git Merge 2022](https://github.blog/2022-06-15-git-merge-2022/) + by Lee Reilly on GitHub blog. + [Git Merge](http://git-merge.com/), the conference dedicated to bringing the Git community together + returns on September 14-15 in Chicago, Illinois, USA. + [Call for Speakers](https://sessionize.com/git-merge-2022) is open through Sunday, July 10. __Various__ ++ [Highlights from Git 2.37](https://github.blog/2022-06-27-highlights-from-git-2-37/) + by Taylor Blau on GitHub's blog. ++ [How Atlassian made Git push over HTTPS faster for Bitbucket Cloud](https://www.atlassian.com/engineering/faster-git-push-over-https-for-bitbucket-cloud) + by Brent Thew on [Atlassian Engineering](https://www.atlassian.com/engineering) blog. ++ [Why We’re Sticking with Ruby on Rails at GitLab](https://thenewstack.io/why-were-sticking-with-ruby-on-rails-at-gitlab/) + by Sid Sijbrandij on The New Stack (contributed post, sponsored by GitLab). ++ [Improved verification of historic Git commit signatures \[in GitHub\]](https://github.blog/changelog/2022-05-31-improved-verification-of-historic-git-commit-signatures/) + with respect to public GPG signing keys that are expired or revoked (but not compromised). ++ [AppSmith Adds Git Support to Low-Code App Dev Framework](https://devops.com/appsmith-adds-git-support-to-low-code-app-dev-framework/) + by Mike Vizard on DevOps\.com. __Light reading__ + [Better File Comparison with Kaleidoscope](https://www.git-tower.com/blog/kaleidoscope/) by Bruno Brito on Tower’s blog. + [Working with Feature Branches](https://www.git-tower.com/blog/working-with-feature-branches/) by Bruno Brito on Tower’s blog. + [Coming Up on Tower's Roadmap](https://www.git-tower.com/blog/coming-up-on-the-roadmap-2022/) by Bruno Brito on Tower’s blog. + [The Three Phases of Software Development](https://www.git-tower.com/blog/three-phases-of-software-development/) by Kristian Lumme on Tower’s blog. ++ [Best practices for Git branching](https://blogs.halodoc.io/best-practices-for-git/), + describing Git flow at Halodoc, by Ashish Anand. ++ [How to Recover a Deleted File in Git – Revert Changes After a Hard Reset](https://www.freecodecamp.org/news/how-to-recover-a-deleted-file-in-git/) + by Zaira Hira on freeCodeCamp. ++ [Git List Remote Branches](https://www.freecodecamp.org/news/git-list-remote-branches/) + by Quincy Larson on freeCodeCamp. ++ [Replacing Your Git Command Cheat Sheet With AI Command Search](https://www.warp.dev/blog/replace-git-cheat-sheet-ai-command-search) + by Jessica Wang on Warp blog; uses [Warp's AI Command search](https://docs.warp.dev/features/ai-command-search#:~:text=Press%20CTRL%2D%60%20to%20open,ENTER%20to%20generate%20the%20command.). ++ [We Put Half a Million files in One git (Mono-)Repository, Here’s What We Learned](https://canvatechblog.com/we-put-half-a-million-files-in-one-git-repository-heres-what-we-learned-ec734a764181) + by Ahn Lee in Canva Engineering Blog (a Medium-based blog). + + See also, for example, articles on [Developer Homepage of Derrick Stolee](https://stolee.dev/), + including [The Future of Git at Scale](https://www.youtube.com/watch?v=pXdabSCz4JA) 2021 presentation + ([slides](https://stolee.dev/docs/universe-2020.pdf) available), + a survey of some advanced Git features to help Git scale to the largest monorepos. ++ [Reducing the size of a git repository with git-replace](https://andrewlock.net/reducing-the-size-of-a-git-repository-with-git-replace/) + by Andrew Lock on andrewlock\.net, where repository is split into + a small "current" repository containing a minimal amount of history, and + a "history" repository containing all the commits prior to the creation of the new repository, + stitched together when needed with git-replace. ++ [How to Prevent Merge Conflicts (or at least have less of them)](https://blackgirlbytes.dev/how-to-prevent-merge-conflicts) + by Rizèl Scarlett, featured on daily.dev ([also on DEV.to](https://dev.to/github/how-to-prevent-merge-conflicts-or-at-least-have-less-of-them-109p)). + It is the last part + of 3 part [Intro to Git](https://dev.to/blackgirlbytes/series/17601) series on DEV\.to, + beginning with [How Do I Resolve Merge Conflicts?](https://dev.to/github/how-do-i-resolve-merge-conflicts-5438). ++ [People rarely use complicated git commands on the weekend, and I have the data to prove it.](https://dev.to/devteam/people-rarely-use-complicated-git-commands-on-the-weekend-and-i-have-the-data-to-prove-it-3ae2) + by Ben Halpern for The DEV Team on DEV\.to. ++ [How Git truly works](https://towardsdatascience.com/how-git-truly-works-cd9c375966f6) + by Alberto Prospero in Towards Data Science (a Medium-based blog). ++ [Sourceware – GNU Toolchain Infrastructure roadmap](https://gnu.wildebeest.org/blog/mjw/2022/06/22/sourceware-gnu-toolchain-infrastructure-roadmap/) + by Mark J. Wielaard __Git tools and sites__ - ++ [Sourceware](https://sourceware.org/) is community run infrastructure, mailing lists, + git, bug trackers, wikis, etc. hosted in the Red Hat Open Source + [Community Infrastructure Community Cage](https://osci.io/tenants/). + Uses [shared buildbot](https://builder.sourceware.org/) for (test) automation, + and [patchwork](https://patchwork.sourceware.org/) for tracking the state of contributions; + most tests upload all results to [bunsendb](https://sourceware.org/git/bunsendb.git). + Uses mirror at SourceHut, , for web forge. ++ [unix-history-repo](https://github.com/dspinellis/unix-history-repo) is a repository + representing a reconstructed version of the Unix history from 1970 until today, + based on the currently available data. Note that this repository will be often + automatically regenerated from scratch. ++ [git-repair](http://git-repair.branchable.com/) can repair various forms of damage to git repositories; + a complement to `git fsck`, which finds problems, but does not fix them. + It is a Haskell program, + developed as a spinoff of [git-annex](http://git-annex.branchable.com/) (for large files management). ++ [Rich Enhanced Shell History (resh)](Rich Enhanced Shell History - Contextual shell history for zsh and bash) + provides contextual shell history for zsh and bash, + where relevant results are based on current directory, _git repo_, exit status, and host. ## Credits From 4a545b58c42e824feb9fb366f1b578029dbd047f Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 29 Jun 2022 08:12:34 +0200 Subject: [PATCH 0312/1248] rn-88: add merge ort bug article --- rev_news/drafts/edition-88.md | 74 ++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-88.md b/rev_news/drafts/edition-88.md index 7b24047f79..242fde7b61 100644 --- a/rev_news/drafts/edition-88.md +++ b/rev_news/drafts/edition-88.md @@ -25,9 +25,79 @@ This edition covers what happened during the month of May 2022. ### Reviews --> - + +* [Bug in merge-ort (rename detection can have collisions?)](https://public-inbox.org/git/kl6lee006mle.fsf@chooglen-macbookpro.roam.corp.google.com/) + + Glen Choo reported on the mailing list that `git merge` was failing + on certain branches of a repo used at his workplace. As the repo is + a public one, Glen could share the full recipe to reproduce the bug. + + When following it one get the following error: + + `Assertion failed: (ci->filemask == 2 || ci->filemask == 4), function apply_directory_rename_modifications, file merge-ort.c, line 2410.` + + Glen noticed that the bug seemed specific to the "ort" merge + strategy, which recently became the default merge strategy, as when + using the "recursive"strategy, which used to be the default merge + strategy before "ort" took over, the merge seemed to work as + expected. + + Glen also tried to debug the issue by himself and found that the + reason for the assertion failure seemed to be that two files + involved in the merge were renames of each other. + + Elijah Newren, who developed the new "ort" strategy, thanked Glen + for the detailed report, and said that he found a small reproduction + recipe to simplify what's going on. He explained it with the + following: + +``` +# Commit O: sub1/file, sub2/other +# Commit A: sub3/file, sub2/{other, new_add_add_file_1} +# Commit B: sub1/{file, newfile}, sub1/sub2/{other, new_add_add_file_2} +# +# In words: +# A: sub1/ -> sub3/, add sub2/new_add_add_file_1 +# B: sub2/ -> sub1/sub2, add sub1/newfile, add sub1/sub2/new_add_add_file_2 +``` + + He then explained that both the "ort" and "recursive" merge + strategies have code to avoid "doubly transitive renames". Such + renames happen when, for example, on one side of the merge a + directory named "A" is renamed to "B", while on the other side "B" + is renamed "C". + + The code to avoid "doubly transitive renames" is fooled when a + leading directory of a directory is renamed though. For example if + on one side a directory named "A" is renamed to "B", while on the + other side a leading directory of "B" is renamed to "C". That's what + triggers the bug. + + Junio Hamano, the Git maintainer, thanked Elijah for his continued + support of the merge strategy, and noticed that at least the code is + not "making a silent mismerge" in this special case and the + recursive strategy is working. + + Elijah replied that he was glad the recursive strategy worked for + Glen because it didn't work either with his minimal reproduction + test case. + + Glen then wondered if turning off rename detection could help in + case of merges with complex renames like this, but Elijah suggested + using the 'resolve' strategy, which "is roughly the recursive + strategy minus the renames and the multiple merge base handling", + instead. + + Elijah also posted + [a small patch series](https://lore.kernel.org/git/pull.1268.git.1655871651.gitgitgadget@gmail.com/) + that adds test cases demonstrating the bug Glen found and fixing it + in the ort strategy code. + + Jonathan Tan reviewed the series and verified that it indeed fixes + Glen's test cases. Calvin Wan also commented on the patch series. So + there is good hope that after a few iteration to polish the series + the bug will be fixed soon. + +* [Google Summer of Code](https://summerofcode.withgoogle.com) + contributors working on Git are now in the ["Coding Period"](https://developers.google.com/open-source/gsoc/timeline#june_13) + (from June 13 to September 19) of the program and have posted at least + once on their blogs: + + - Abhradeep Chakraborty, who works on + ["Reachability bitmap improvements"](https://summerofcode.withgoogle.com/programs/2022/projects/UPtA6qdf), + has published [his latest post](https://medium.com/@abhra303/gsoc-week-2-redesign-the-table-format-829dae755a5) + on [his Medium blog](https://medium.com/@abhra303). + + - Shaoxuan Yuan, who works on ["More Sparse Index Integrations"](https://summerofcode.withgoogle.com/programs/2022/projects/hz4rcOUB) + has published [his latest post](https://ffyuanda.github.io/blog/GSoC-week-2/) + on [his website](https://ffyuanda.github.io/). + + - Jaydeep Das, who works on ["Unify ref-filters with other pretty formats"](https://summerofcode.withgoogle.com/programs/2022/projects/8mYcnerl) + has published [his latest post](https://jdeep.me/posts/10.d/) + on [his website](https://jdeep.me/posts/). + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 2594cb8321135388f3805c9d6405a3be2e55cc49 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Jul 2022 08:12:26 +0200 Subject: [PATCH 0327/1248] rn-88: fix date in post filename --- ...2-07-01-edition-88.markdown => 2022-06-30-edition-88.markdown} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename _posts/{2022-07-01-edition-88.markdown => 2022-06-30-edition-88.markdown} (100%) diff --git a/_posts/2022-07-01-edition-88.markdown b/_posts/2022-06-30-edition-88.markdown similarity index 100% rename from _posts/2022-07-01-edition-88.markdown rename to _posts/2022-06-30-edition-88.markdown From 39212f5cc61f417e2d01a5322fc93c7992c03a57 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 1 Jul 2022 08:19:56 +0200 Subject: [PATCH 0328/1248] rn-88: add more helpers --- _posts/2022-06-30-edition-88.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2022-06-30-edition-88.markdown b/_posts/2022-06-30-edition-88.markdown index 72199f0173..57e4d6400a 100644 --- a/_posts/2022-06-30-edition-88.markdown +++ b/_posts/2022-06-30-edition-88.markdown @@ -249,4 +249,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bruno Brito. +with help from Bruno Brito, Elijah Newren, Matheus Tavares +and Johannes Schindelin. From d3ed5ed61d811c5fe3fc6fcd4d75ebea3b9ee0e0 Mon Sep 17 00:00:00 2001 From: Philip Oakley Date: Wed, 6 Jul 2022 12:32:45 +0100 Subject: [PATCH 0329/1248] Add collected articles and 'Easy Watching' videos Add an 'Easy Watching' section, and populate with a few Git and coding videos. Add a range of light reading items collected over the last few months (sorry for missing previous Rev News submissions) Free free to edit/delete to taste. Signed-off-by: Philip Oakley --- rev_news/drafts/edition-89.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 34f63e62c1..41e23a26c5 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -42,10 +42,20 @@ __Various__ __Light reading__ - ++ [Introduction to Git Ops](https://www.codeproject.com/Articles/5334970/Introduction-to-GitOps) Some useful background to the Git - DevOps approach in this sponsored article. ++ [git rebase --fork-point considered harmful (by 'me')](https://commaok.xyz/post/fork-point/) The reflog lookup heuristics aren't what you thought, are they? A UX report. ++ [Git Delete Branch How-To, for Both Local and Remote](https://www.cloudbees.com/blog/git-delete-branch-how-to-for-both-local-and-remote) with pictures, Also includes deleting branches on Github.. ++ [Git - Subtree](https://www.geeksforgeeks.org/git-subtree/) A short overview of the common replacement for Git submodule. ++ [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) More choices. ++ ['Turn off merge fast-forward by default'](https://betterdev.blog/turn-off-git-fast-forward-merge/) An alternative viewpoint (from Git for Windows [#3858](https://github.com/git-for-windows/git/issues/3858)) + +__Easy Watching__ ++ [Git Internals - The BLOB](https://www.youtube.com/watch?v=_wj4MGuvcjc) 'A shot of code' looks at the internals of the .git folder to see exactly what goes on under the hood. ++ [Getting Comfortable with GIT](https://www.youtube.com/watch?v=aXXXiynr-4A) looking to get a deeper understanding of Git, and hopefully feeling a lot more comfortable when performing some of the more scary Git operations.. says 'A shot of code'. ++ [It's Impossible to Know If You're a Good Programmer](https://www.youtube.com/watch?v=Ax4EfY9LrF4) The imposter syndrome and irrelavent code challenges. __Git tools and sites__ - ++[Git Signing](https://wilsonmar.github.io/git-signing/) All the details for signing commits and tags (for non-repudiation) in GitHub using GPG, Vault, Yubikey, Keybase! ## Credits @@ -54,4 +64,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Philip Oakley, and XXX. From 02592391f33d0cabec59e9761799c793957d5a3a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 6 Jul 2022 17:28:39 +0200 Subject: [PATCH 0330/1248] rn-89: fix typo in 'Easy watching' --- rev_news/drafts/edition-89.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 41e23a26c5..55858d2e0a 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -49,7 +49,7 @@ __Light reading__ + [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) More choices. + ['Turn off merge fast-forward by default'](https://betterdev.blog/turn-off-git-fast-forward-merge/) An alternative viewpoint (from Git for Windows [#3858](https://github.com/git-for-windows/git/issues/3858)) -__Easy Watching__ +__Easy watching__ + [Git Internals - The BLOB](https://www.youtube.com/watch?v=_wj4MGuvcjc) 'A shot of code' looks at the internals of the .git folder to see exactly what goes on under the hood. + [Getting Comfortable with GIT](https://www.youtube.com/watch?v=aXXXiynr-4A) looking to get a deeper understanding of Git, and hopefully feeling a lot more comfortable when performing some of the more scary Git operations.. says 'A shot of code'. + [It's Impossible to Know If You're a Good Programmer](https://www.youtube.com/watch?v=Ax4EfY9LrF4) The imposter syndrome and irrelavent code challenges. From 17d34dbc60ecb3736009d642b4ae6c4a33a93915 Mon Sep 17 00:00:00 2001 From: Philip Oakley Date: Fri, 8 Jul 2022 14:18:55 +0100 Subject: [PATCH 0331/1248] Link to Junio's suggestion for reading about the Git Internals This came up on the mailing list and may have been missed by many. I could have included a `git switch --detach v0.99~954` option for those that have cloned git.git Signed-off-by: Philip Oakley --- rev_news/drafts/edition-89.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 55858d2e0a..28311571c9 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -39,7 +39,11 @@ This edition covers what happened during the month of July 2022. ## Other News __Various__ - ++ [About GIT Internals](https://lore.kernel.org/git/?q=%3Cxmqqk09xhdma.fsf%40gitster.g%3E+): Aman asked how to better understand GIT software internals. Junio (maintainer) suggested starting at the [Initial revision of "git", the information manager from hell (e83c5163, v0.99~954)](https://github.com/git/git/tree/e83c5163316f89bfbde7d9ab23ca2e25604af290). +"With only 1244 lines spread across 11 files, it is a short-read that +is completable in a single sitting for those who are reasonably +fluent in C. It does not have any frills, but the basic data +structures to express the important concepts are already there." __Light reading__ + [Introduction to Git Ops](https://www.codeproject.com/Articles/5334970/Introduction-to-GitOps) Some useful background to the Git - DevOps approach in this sponsored article. From 2fa3706e8ea064f301e8aaffc7607622ee67560f Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Sun, 10 Jul 2022 18:10:34 +0530 Subject: [PATCH 0332/1248] rn-89: mention the year and previous appearance of article Addresses Jakub's comment in PR #590 [1] [1]: https://github.com/git/git.github.io/pull/590#issuecomment-1178067501 --- rev_news/drafts/edition-89.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 55858d2e0a..5acd3cc0cc 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -46,7 +46,8 @@ __Light reading__ + [git rebase --fork-point considered harmful (by 'me')](https://commaok.xyz/post/fork-point/) The reflog lookup heuristics aren't what you thought, are they? A UX report. + [Git Delete Branch How-To, for Both Local and Remote](https://www.cloudbees.com/blog/git-delete-branch-how-to-for-both-local-and-remote) with pictures, Also includes deleting branches on Github.. + [Git - Subtree](https://www.geeksforgeeks.org/git-subtree/) A short overview of the common replacement for Git submodule. -+ [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) More choices. ++ [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) (2020) + More choices. This was previously mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). + ['Turn off merge fast-forward by default'](https://betterdev.blog/turn-off-git-fast-forward-merge/) An alternative viewpoint (from Git for Windows [#3858](https://github.com/git-for-windows/git/issues/3858)) __Easy watching__ From a928da3ef7551ce30355dbbc2eb1545a6215677c Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Fri, 22 Jul 2022 13:11:46 +0100 Subject: [PATCH 0333/1248] rn-89: Add Light Reading suggestion --- rev_news/drafts/edition-89.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 5acd3cc0cc..433552c042 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -49,6 +49,7 @@ __Light reading__ + [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) (2020) More choices. This was previously mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). + ['Turn off merge fast-forward by default'](https://betterdev.blog/turn-off-git-fast-forward-merge/) An alternative viewpoint (from Git for Windows [#3858](https://github.com/git-for-windows/git/issues/3858)) ++ [Getting Started with Git Hooks and Husky](https://www.git-tower.com/blog/git-hooks-husky/) by Bruno Brito on Tower's blog. __Easy watching__ + [Git Internals - The BLOB](https://www.youtube.com/watch?v=_wj4MGuvcjc) 'A shot of code' looks at the internals of the .git folder to see exactly what goes on under the hood. From b4009bf6bce629838620413075ac0dd1585c578c Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 24 Jul 2022 17:43:39 -0700 Subject: [PATCH 0334/1248] interview: gitster Signed-off-by: Junio C Hamano --- rev_news/drafts/edition-89.md | 186 +++++++++++++++++++++++++++++++++- 1 file changed, 183 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 5acd3cc0cc..e4556d30ba 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -29,9 +29,189 @@ This edition covers what happened during the month of July 2022. ### Support --> - +## Developer Spotlight: Junio C Hamano + +* Who are you and what do you do? + +I am an open source toolsmith, who works at Open Source Program +Office (OSPO) at Google. I work as the maintainer of Git. + + +* How has your journey with Git as its maintainer been so far? + +I have worked with many contributors since 2005, and seeing so many +of them grow into excellent developers as they work on this project +was a joy. + + +* How does your work as the maintainer of the Git project look like? + +Unlike earlier days, I no longer have to be in the driving seat to +design or implement a big feature anymore, and luckily there are +multiple groups of people who do excellent job dreaming up and new +ways to use Git and make it a reality. My best days start by +getting greeted by surprisingly good proposal of a new feature or +optimization of an existing feature, and the entire day is spent on +reviewing them. It happens less often these days, but they still do +occasionally. + +On my normal days, I scan the mailing list for patches and +discussions, and my goal is to at least open every one of incoming +messages, and read carefully at least half of the patches I pick up +to queue on the 'seen' branch, which means that I may be queuing the +other half without carefully reading, trusting the reviews already +done by other members of the community. + +I aim to finish picking up new topics, replacing existing topics, +and generally interacting with the mailing list, by around 2pm. +Then I rebuild the 'seen' topic, rewrite the latest draft of "What's +cooking" report (which is used as the guide to choose which topics +will go to the 'next' branch), and push out the first integration +result of the day by 4pm. After that, I'd merge the topics that +have cooked long enough in 'next' to 'master', and the topics that +have been adequately reviewed to 'next'. The 'seen' and 'next' +branches are rebuild, the "What's cooking" report is rewritten, and +the second integration result of the day gets pushed out, before I +call it a day. + + +* If there's anything you would like to say to your past self, what + would that be? + +Study math and algorithms harder, perhaps. I know them well enough +to get around, but it is primarily because there are so many other +community members who are good at them that I can rely on, so I do +not have to get involved in details that are too deep for me. + + +* What would you name your most important contribution to Git? + +There are too many to list in the design and implementation of the +internals, but in the end, I think what mattered to the project most +was that I was consistently there available to help guide the +project. + +It may not be "important contribution", but my most favorite +creation is "git rerere". It was fun to design, work on, and (most +importantly) name it. + + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + +The interoperability between SHA-1 and SHA-256 repositories first +comes to mind. The ingredients are almost all there, so are rough +design. + + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + +I generally think that the hacks to lie to the object layer, like +"grafts" and "replace" mechanisms, and "alternate" object store, +were not great ideas. There aren't all that many that I would +remove, but there are too many that I wish we could redo entirely +without backward compatibility issues (e.g. path ordering in the +index). + + +* What is your favorite Git-related tool/library, outside of Git itself? + +My recent favorites are Eric's "public-inbox", which powers the +https://lore.kernel.org/git mailing list archive, and Konstantin's +"b4" that helps to interact with the lore archive better. + + +* What is your advice for people who want to start Git development? + Where and how should they start? + +That depends on why they want to do so. Do they not like the way +the tool currently works and they want to change it? Are they happy +with Git but they feel they do not know enough of it and are curious +about how things work? For the former folks, the usual "scratch +your itch" advice would work well to certain extent. For the latter +folks, their "itch" can be to try to figure out how one of their +favorite subcommand works, and then perhaps clean up or optimize +the code paths they studied. Following what our test scripts are +doing to your favorite feature may be a great way to learn them, too. + +Either way, while identifying and scratching their "itch", I'd +recommend them to lurk on the mailing list for at least a few weeks, +and starting early is good. Learn by reading others' patches being +discussed, the kind of things the reviewers are interested in, and +how the development process works. See who are active and how the +discussion goes. These social conventions, how our developers work +with others, is just as important as, if not more than, technical +details. MyFirstContribution document may also be a good place to +start. + + +* How does your mailing list workflow look like? + +I try not to be the first to comment on any new topic (unless the +topic gains no attention from anybody, yet it looks worth commenting +on, which sometimes happens). This is because other members of the +community may offer interesting viewpoints that I would not hear +(and think of myself) if I spoke first. + +My ideal is that a topic gets discussed without me for a few rounds +and by the time I feel like taking a look myself, it is already +quite ready, thanks to the help from competent reviewers (which +happens quite often). Then I can pick it up and queue almost +directly to 'next' (in practice, I'd first merge it to 'seen' to +ensure that there is no funny interactions with existing topics in +the first integration cycle of the day that happens before 2pm, and +then merge it down to 'next' in the second integration cycle of the +day, or perhaps the day after). + +As I cannot keep track of all the things said in the discussion on +all topics, I make heavy use of the lore archive and use the draft +of "What's cooking" report to take notes on each topic's current +status. So, the workflow is + + (1) to notice a new topic, whose merit is either obvious to see or + others reviews helped to highlight, and queue it to 'seen', + while sending comments to them, + + (2) record the topic in the "What's cooking" draft, + + (3) to observe the discussion on the topic, perhaps taking a reroll + and replacing the copy I have, + + (4) send out an updated "What's cooking", possibly the topic marked + for promotion, + + (5) go back to (3) + +until each topic graduates to 'master'. + + +* If there's one tip you would like to share with other Git + developers, what would it be? + +It is very easy to be too strongly married to your initial solution +to become blind to the merits of other approaches suggested in the +discussion, or accept a possible reframing of the original problem +to solve a wider problem. + +In the very early days of Git, before Linus passed the project's +maintainership to me, I also had a "competitive" manner in a bad +way. There were plenty of problems to be solved, and it felt as if +people competed to be the first to offer a solution to each of them. +When I had an idea to solve a problem that others are also +interested to see solved, sometimes it felt like I had to "beat" +them, which meant that I had to send out patches that weren't well +reasoned and well explained enough. Luckily, being maintainer means +I do not have to compete the others. Instead I can set the pace of +the project. After having lived in such a "competitive" way for a +few months and saw its downside, I learned to give contributors time +to think things through and wait long enough for counter-proposals. + +So, one "tip" is to take things slowly. Be ready to step back, take +a deep breath and take time to rethink the problem, together with +those in the discussion. You'd end up working well with the others +that way. + ## Releases From 9fa084576c74c7d8d341e90abf7e30dbb71a6c0d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 25 Jul 2022 08:56:17 +0200 Subject: [PATCH 0335/1248] rn-89: add link to Matheus Master's defense --- rev_news/drafts/edition-89.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index c4aa8fa6fd..a22b21b0cf 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -224,6 +224,7 @@ __Various__ is completable in a single sitting for those who are reasonably fluent in C. It does not have any frills, but the basic data structures to express the important concepts are already there." ++ Matheus Tavares [successfully defended his Master's dissertation about parallelizing Git checkout](https://www.linkedin.com/posts/matheus-tavares-bernardino_faster-git-checkouts-on-nfs-and-ssd-with-activity-6953084366075883520-usZP/). Some of his work on this was done during [his 2019 Google Summer of Code](https://matheustavares.gitlab.io/posts/gsoc-final-report). __Light reading__ + [Introduction to Git Ops](https://www.codeproject.com/Articles/5334970/Introduction-to-GitOps) Some useful background to the Git - DevOps approach in this sponsored article. From 98a40fc375bbdf9b6b26aed910fea07795ff425c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 25 Jul 2022 08:57:56 +0200 Subject: [PATCH 0336/1248] rn-89: add Junio among the helpers --- rev_news/drafts/edition-89.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index a22b21b0cf..d34ca885d7 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -251,4 +251,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Philip Oakley, and XXX. +with help from Junio Hamano and Philip Oakley. From 7e4321570221464bc535f5b4facd357cc6dc5492 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 25 Jul 2022 08:59:00 +0200 Subject: [PATCH 0337/1248] rn-89: add Bruno Brito among the helpers --- rev_news/drafts/edition-89.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index d34ca885d7..ed371f081a 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -251,4 +251,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Junio Hamano and Philip Oakley. +with help from Junio Hamano, Philip Oakley and Bruno Brito. From 0aca8db325da3c7cdb67de9d920b7b64d87f175f Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 27 Jul 2022 00:28:43 +0530 Subject: [PATCH 0338/1248] rn-89: reformat Junio's interview for better rendering Indent the answers a level so that they're rendered directly below the questions. Also, use the standard markdown styling for the ordered list to ensure the list is rendered correctly. --- rev_news/drafts/edition-89.md | 248 +++++++++++++++++----------------- 1 file changed, 124 insertions(+), 124 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index ed371f081a..4509f6ff65 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -33,184 +33,184 @@ This edition covers what happened during the month of July 2022. * Who are you and what do you do? -I am an open source toolsmith, who works at Open Source Program -Office (OSPO) at Google. I work as the maintainer of Git. + I am an open source toolsmith, who works at Open Source Program + Office (OSPO) at Google. I work as the maintainer of Git. * How has your journey with Git as its maintainer been so far? -I have worked with many contributors since 2005, and seeing so many -of them grow into excellent developers as they work on this project -was a joy. + I have worked with many contributors since 2005, and seeing so many + of them grow into excellent developers as they work on this project + was a joy. * How does your work as the maintainer of the Git project look like? -Unlike earlier days, I no longer have to be in the driving seat to -design or implement a big feature anymore, and luckily there are -multiple groups of people who do excellent job dreaming up and new -ways to use Git and make it a reality. My best days start by -getting greeted by surprisingly good proposal of a new feature or -optimization of an existing feature, and the entire day is spent on -reviewing them. It happens less often these days, but they still do -occasionally. - -On my normal days, I scan the mailing list for patches and -discussions, and my goal is to at least open every one of incoming -messages, and read carefully at least half of the patches I pick up -to queue on the 'seen' branch, which means that I may be queuing the -other half without carefully reading, trusting the reviews already -done by other members of the community. - -I aim to finish picking up new topics, replacing existing topics, -and generally interacting with the mailing list, by around 2pm. -Then I rebuild the 'seen' topic, rewrite the latest draft of "What's -cooking" report (which is used as the guide to choose which topics -will go to the 'next' branch), and push out the first integration -result of the day by 4pm. After that, I'd merge the topics that -have cooked long enough in 'next' to 'master', and the topics that -have been adequately reviewed to 'next'. The 'seen' and 'next' -branches are rebuild, the "What's cooking" report is rewritten, and -the second integration result of the day gets pushed out, before I -call it a day. + Unlike earlier days, I no longer have to be in the driving seat to + design or implement a big feature anymore, and luckily there are + multiple groups of people who do excellent job dreaming up and new + ways to use Git and make it a reality. My best days start by + getting greeted by surprisingly good proposal of a new feature or + optimization of an existing feature, and the entire day is spent on + reviewing them. It happens less often these days, but they still do + occasionally. + + On my normal days, I scan the mailing list for patches and + discussions, and my goal is to at least open every one of incoming + messages, and read carefully at least half of the patches I pick up + to queue on the 'seen' branch, which means that I may be queuing the + other half without carefully reading, trusting the reviews already + done by other members of the community. + + I aim to finish picking up new topics, replacing existing topics, + and generally interacting with the mailing list, by around 2pm. + Then I rebuild the 'seen' topic, rewrite the latest draft of "What's + cooking" report (which is used as the guide to choose which topics + will go to the 'next' branch), and push out the first integration + result of the day by 4pm. After that, I'd merge the topics that + have cooked long enough in 'next' to 'master', and the topics that + have been adequately reviewed to 'next'. The 'seen' and 'next' + branches are rebuild, the "What's cooking" report is rewritten, and + the second integration result of the day gets pushed out, before I + call it a day. * If there's anything you would like to say to your past self, what would that be? -Study math and algorithms harder, perhaps. I know them well enough -to get around, but it is primarily because there are so many other -community members who are good at them that I can rely on, so I do -not have to get involved in details that are too deep for me. + Study math and algorithms harder, perhaps. I know them well enough + to get around, but it is primarily because there are so many other + community members who are good at them that I can rely on, so I do + not have to get involved in details that are too deep for me. * What would you name your most important contribution to Git? -There are too many to list in the design and implementation of the -internals, but in the end, I think what mattered to the project most -was that I was consistently there available to help guide the -project. + There are too many to list in the design and implementation of the + internals, but in the end, I think what mattered to the project most + was that I was consistently there available to help guide the + project. -It may not be "important contribution", but my most favorite -creation is "git rerere". It was fun to design, work on, and (most -importantly) name it. + It may not be "important contribution", but my most favorite + creation is "git rerere". It was fun to design, work on, and (most + importantly) name it. * If you could get a team of expert developers to work full time on something in Git for a full year, what would it be? -The interoperability between SHA-1 and SHA-256 repositories first -comes to mind. The ingredients are almost all there, so are rough -design. + The interoperability between SHA-1 and SHA-256 repositories first + comes to mind. The ingredients are almost all there, so are rough + design. * If you could remove something from Git without worrying about backwards compatibility, what would it be? -I generally think that the hacks to lie to the object layer, like -"grafts" and "replace" mechanisms, and "alternate" object store, -were not great ideas. There aren't all that many that I would -remove, but there are too many that I wish we could redo entirely -without backward compatibility issues (e.g. path ordering in the -index). + I generally think that the hacks to lie to the object layer, like + "grafts" and "replace" mechanisms, and "alternate" object store, + were not great ideas. There aren't all that many that I would + remove, but there are too many that I wish we could redo entirely + without backward compatibility issues (e.g. path ordering in the + index). * What is your favorite Git-related tool/library, outside of Git itself? -My recent favorites are Eric's "public-inbox", which powers the -https://lore.kernel.org/git mailing list archive, and Konstantin's -"b4" that helps to interact with the lore archive better. + My recent favorites are Eric's "public-inbox", which powers the + https://lore.kernel.org/git mailing list archive, and Konstantin's + "b4" that helps to interact with the lore archive better. * What is your advice for people who want to start Git development? Where and how should they start? -That depends on why they want to do so. Do they not like the way -the tool currently works and they want to change it? Are they happy -with Git but they feel they do not know enough of it and are curious -about how things work? For the former folks, the usual "scratch -your itch" advice would work well to certain extent. For the latter -folks, their "itch" can be to try to figure out how one of their -favorite subcommand works, and then perhaps clean up or optimize -the code paths they studied. Following what our test scripts are -doing to your favorite feature may be a great way to learn them, too. - -Either way, while identifying and scratching their "itch", I'd -recommend them to lurk on the mailing list for at least a few weeks, -and starting early is good. Learn by reading others' patches being -discussed, the kind of things the reviewers are interested in, and -how the development process works. See who are active and how the -discussion goes. These social conventions, how our developers work -with others, is just as important as, if not more than, technical -details. MyFirstContribution document may also be a good place to -start. + That depends on why they want to do so. Do they not like the way + the tool currently works and they want to change it? Are they happy + with Git but they feel they do not know enough of it and are curious + about how things work? For the former folks, the usual "scratch + your itch" advice would work well to certain extent. For the latter + folks, their "itch" can be to try to figure out how one of their + favorite subcommand works, and then perhaps clean up or optimize + the code paths they studied. Following what our test scripts are + doing to your favorite feature may be a great way to learn them, too. + + Either way, while identifying and scratching their "itch", I'd + recommend them to lurk on the mailing list for at least a few weeks, + and starting early is good. Learn by reading others' patches being + discussed, the kind of things the reviewers are interested in, and + how the development process works. See who are active and how the + discussion goes. These social conventions, how our developers work + with others, is just as important as, if not more than, technical + details. MyFirstContribution document may also be a good place to + start. * How does your mailing list workflow look like? -I try not to be the first to comment on any new topic (unless the -topic gains no attention from anybody, yet it looks worth commenting -on, which sometimes happens). This is because other members of the -community may offer interesting viewpoints that I would not hear -(and think of myself) if I spoke first. + I try not to be the first to comment on any new topic (unless the + topic gains no attention from anybody, yet it looks worth commenting + on, which sometimes happens). This is because other members of the + community may offer interesting viewpoints that I would not hear + (and think of myself) if I spoke first. -My ideal is that a topic gets discussed without me for a few rounds -and by the time I feel like taking a look myself, it is already -quite ready, thanks to the help from competent reviewers (which -happens quite often). Then I can pick it up and queue almost -directly to 'next' (in practice, I'd first merge it to 'seen' to -ensure that there is no funny interactions with existing topics in -the first integration cycle of the day that happens before 2pm, and -then merge it down to 'next' in the second integration cycle of the -day, or perhaps the day after). + My ideal is that a topic gets discussed without me for a few rounds + and by the time I feel like taking a look myself, it is already + quite ready, thanks to the help from competent reviewers (which + happens quite often). Then I can pick it up and queue almost + directly to 'next' (in practice, I'd first merge it to 'seen' to + ensure that there is no funny interactions with existing topics in + the first integration cycle of the day that happens before 2pm, and + then merge it down to 'next' in the second integration cycle of the + day, or perhaps the day after). -As I cannot keep track of all the things said in the discussion on -all topics, I make heavy use of the lore archive and use the draft -of "What's cooking" report to take notes on each topic's current -status. So, the workflow is + As I cannot keep track of all the things said in the discussion on + all topics, I make heavy use of the lore archive and use the draft + of "What's cooking" report to take notes on each topic's current + status. So, the workflow is - (1) to notice a new topic, whose merit is either obvious to see or - others reviews helped to highlight, and queue it to 'seen', - while sending comments to them, + 1. to notice a new topic, whose merit is either obvious to see or + others reviews helped to highlight, and queue it to 'seen', + while sending comments to them, - (2) record the topic in the "What's cooking" draft, + 2. record the topic in the "What's cooking" draft, - (3) to observe the discussion on the topic, perhaps taking a reroll - and replacing the copy I have, + 3. to observe the discussion on the topic, perhaps taking a reroll + and replacing the copy I have, - (4) send out an updated "What's cooking", possibly the topic marked - for promotion, + 4. send out an updated "What's cooking", possibly the topic marked + for promotion, - (5) go back to (3) + 5. go back to (3) -until each topic graduates to 'master'. + until each topic graduates to 'master'. * If there's one tip you would like to share with other Git developers, what would it be? -It is very easy to be too strongly married to your initial solution -to become blind to the merits of other approaches suggested in the -discussion, or accept a possible reframing of the original problem -to solve a wider problem. - -In the very early days of Git, before Linus passed the project's -maintainership to me, I also had a "competitive" manner in a bad -way. There were plenty of problems to be solved, and it felt as if -people competed to be the first to offer a solution to each of them. -When I had an idea to solve a problem that others are also -interested to see solved, sometimes it felt like I had to "beat" -them, which meant that I had to send out patches that weren't well -reasoned and well explained enough. Luckily, being maintainer means -I do not have to compete the others. Instead I can set the pace of -the project. After having lived in such a "competitive" way for a -few months and saw its downside, I learned to give contributors time -to think things through and wait long enough for counter-proposals. - -So, one "tip" is to take things slowly. Be ready to step back, take -a deep breath and take time to rethink the problem, together with -those in the discussion. You'd end up working well with the others -that way. + It is very easy to be too strongly married to your initial solution + to become blind to the merits of other approaches suggested in the + discussion, or accept a possible reframing of the original problem + to solve a wider problem. + + In the very early days of Git, before Linus passed the project's + maintainership to me, I also had a "competitive" manner in a bad + way. There were plenty of problems to be solved, and it felt as if + people competed to be the first to offer a solution to each of them. + When I had an idea to solve a problem that others are also + interested to see solved, sometimes it felt like I had to "beat" + them, which meant that I had to send out patches that weren't well + reasoned and well explained enough. Luckily, being maintainer means + I do not have to compete the others. Instead I can set the pace of + the project. After having lived in such a "competitive" way for a + few months and saw its downside, I learned to give contributors time + to think things through and wait long enough for counter-proposals. + + So, one "tip" is to take things slowly. Be ready to step back, take + a deep breath and take time to rethink the problem, together with + those in the discussion. You'd end up working well with the others + that way. ## Releases From f4cb69536e6d7ad494481df702919ca2051a627e Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Wed, 27 Jul 2022 00:35:27 +0530 Subject: [PATCH 0339/1248] rn-89: fix formatting of git tools entry --- rev_news/drafts/edition-89.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 4509f6ff65..dc85350f52 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -242,7 +242,7 @@ __Easy watching__ + [It's Impossible to Know If You're a Good Programmer](https://www.youtube.com/watch?v=Ax4EfY9LrF4) The imposter syndrome and irrelavent code challenges. __Git tools and sites__ -+[Git Signing](https://wilsonmar.github.io/git-signing/) All the details for signing commits and tags (for non-repudiation) in GitHub using GPG, Vault, Yubikey, Keybase! ++ [Git Signing](https://wilsonmar.github.io/git-signing/) All the details for signing commits and tags (for non-repudiation) in GitHub using GPG, Vault, Yubikey, Keybase! ## Credits From 5a9b6a215440187454540f3d7d4b38105e42efb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 27 Jul 2022 00:21:40 +0200 Subject: [PATCH 0340/1248] rn-89: Improve formatting of "Light reading" entry --- rev_news/drafts/edition-89.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index dc85350f52..6068986836 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -228,7 +228,7 @@ structures to express the important concepts are already there." __Light reading__ + [Introduction to Git Ops](https://www.codeproject.com/Articles/5334970/Introduction-to-GitOps) Some useful background to the Git - DevOps approach in this sponsored article. -+ [git rebase --fork-point considered harmful (by 'me')](https://commaok.xyz/post/fork-point/) The reflog lookup heuristics aren't what you thought, are they? A UX report. ++ [`git rebase --fork-point` considered harmful (by 'me')](https://commaok.xyz/post/fork-point/) The reflog lookup heuristics aren't what you thought, are they? A UX report. + [Git Delete Branch How-To, for Both Local and Remote](https://www.cloudbees.com/blog/git-delete-branch-how-to-for-both-local-and-remote) with pictures, Also includes deleting branches on Github.. + [Git - Subtree](https://www.geeksforgeeks.org/git-subtree/) A short overview of the common replacement for Git submodule. + [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) (2020) From ba77652f0b613a11230917a8f4065750d071ba55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 27 Jul 2022 02:27:40 +0200 Subject: [PATCH 0341/1248] rn-89: Add links to various news, articles, sites, and tools --- rev_news/drafts/edition-89.md | 64 +++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 6068986836..36dd1f5fb1 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -219,15 +219,31 @@ This edition covers what happened during the month of July 2022. ## Other News __Various__ ++ [GitLive 15.0: Offline merge conflict detection across all branches for any Git repository and more](https://blog.git.live/gitlive-15.0-offline-merge-conflict-detection-across-all-branches-for-any-git-repository) + by Agnieszka Stec. ++ Iterative\.AI, authors of the [DVC](https://dvc.org/) Data Version Control tool + (first mentioned in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/)), + bring [Git-backed Machine Learning Model Registry](https://dvc.org/blog/iterative-studio-model-registry) + to [Iterative Studio](https://studio.iterative.ai/). + [About GIT Internals](https://lore.kernel.org/git/?q=%3Cxmqqk09xhdma.fsf%40gitster.g%3E+): Aman asked how to better understand GIT software internals. Junio (maintainer) suggested starting at the [Initial revision of "git", the information manager from hell (e83c5163, v0.99~954)](https://github.com/git/git/tree/e83c5163316f89bfbde7d9ab23ca2e25604af290). "With only 1244 lines spread across 11 files, it is a short-read that is completable in a single sitting for those who are reasonably fluent in C. It does not have any frills, but the basic data structures to express the important concepts are already there." + Matheus Tavares [successfully defended his Master's dissertation about parallelizing Git checkout](https://www.linkedin.com/posts/matheus-tavares-bernardino_faster-git-checkouts-on-nfs-and-ssd-with-activity-6953084366075883520-usZP/). Some of his work on this was done during [his 2019 Google Summer of Code](https://matheustavares.gitlab.io/posts/gsoc-final-report). ++ [Whatever happened to SHA-256 support in Git?](https://lwn.net/Articles/898522/): + an article by Jonathan Corbet on LWN\.net. ++ [Give Up GitHub: The Time Has Come!](https://sfconservancy.org/blog/2022/jun/30/give-up-github-launch/) + by Denver Gingerich and Bradley M. Kuhn of Software Freedom Conservancy, + (see also [Open source body quits GitHub, urges you to do the same](https://www.theregister.com/2022/06/30/software_freedom_conservancy_quits_github/) in The Register) + calls for FOSS project to migrate away from GitHub. __Light reading__ + [Introduction to Git Ops](https://www.codeproject.com/Articles/5334970/Introduction-to-GitOps) Some useful background to the Git - DevOps approach in this sponsored article. ++ [Git workflows: Best practices for GitOps deployments](https://developers.redhat.com/articles/2022/07/20/git-workflows-best-practices-gitops-deployments), + describing differences between how you manage your code in Git + and how you manage your GitOps configuration in Git. + By Christian Hernandez, GitOps Advocate, on Red Hat Developer blog. + [`git rebase --fork-point` considered harmful (by 'me')](https://commaok.xyz/post/fork-point/) The reflog lookup heuristics aren't what you thought, are they? A UX report. + [Git Delete Branch How-To, for Both Local and Remote](https://www.cloudbees.com/blog/git-delete-branch-how-to-for-both-local-and-remote) with pictures, Also includes deleting branches on Github.. + [Git - Subtree](https://www.geeksforgeeks.org/git-subtree/) A short overview of the common replacement for Git submodule. @@ -235,6 +251,19 @@ __Light reading__ More choices. This was previously mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). + ['Turn off merge fast-forward by default'](https://betterdev.blog/turn-off-git-fast-forward-merge/) An alternative viewpoint (from Git for Windows [#3858](https://github.com/git-for-windows/git/issues/3858)) + [Getting Started with Git Hooks and Husky](https://www.git-tower.com/blog/git-hooks-husky/) by Bruno Brito on Tower's blog. ++ “Codeberg” series by Flavio Poletti (@polettix), + starting with [Codeberg](https://github.polettix.it/ETOOBUSY/2022/07/05/codeberg/) + and currently ending with [Codeberg Pages - Custom domains](https://github.polettix.it/ETOOBUSY/2022/07/18/codeberg-pages-domains/), + describes the [Codeberg](https://codeberg.org/) hosting service, + which is powered by [Gitea](https://gitea.io/) software + (a fork of [Gogs](https://gogs.io/), which is written in Go). ++ [Write Better Commits, Build Better Projects](https://github.blog/2022-06-30-write-better-commits-build-better-projects/): + Learn strategies to improve and use commits to streamline your development process. + By Victoria Dye on GitHub Engineering Blog. ++ [Write Git Commit Messages That Your Colleagues Will Love](https://dev.to/simeg/write-git-commit-messages-that-your-colleagues-will-love-1757) + by Simon Egersand on DEV\.to. ++ [Why I love Tig for visualizing my Git workflows](https://opensource.com/article/22/7/visualize-git-workflow-tig) + by Sumantro Mukherjee (Correspondent, Red Hat) on OpenSource\.com. __Easy watching__ + [Git Internals - The BLOB](https://www.youtube.com/watch?v=_wj4MGuvcjc) 'A shot of code' looks at the internals of the .git folder to see exactly what goes on under the hood. @@ -242,7 +271,42 @@ __Easy watching__ + [It's Impossible to Know If You're a Good Programmer](https://www.youtube.com/watch?v=Ax4EfY9LrF4) The imposter syndrome and irrelavent code challenges. __Git tools and sites__ ++ [Please remove that `.git` folder](https://dev.to/jmau111/please-remove-that-git-folder-3i9a) + from directory browsing on the web server to avoid information leaks. + Don't deploy the `.git/` folder or, at least, forbid access. + By Julien Maury (jmau111) on DEV\.to and on [own blog](https://blog.julien-maury.dev/en/snippet/practical-git-security/). + [Git Signing](https://wilsonmar.github.io/git-signing/) All the details for signing commits and tags (for non-repudiation) in GitHub using GPG, Vault, Yubikey, Keybase! ++ [Git-Story](https://initialcommit.com/tools/git-story): Animate the story of your Git project, + by creating video animations (.mp4) of your commit history directly from your Git repo. + Note: arrows point in the direction of increasing time, not from commit to its parents. + + See also [How to Animate Your Git Commit History with git-story](https://www.freecodecamp.org/news/animate-your-git-repo-with-git-story/) + by Jacob Stopak on freeCodeCamp. ++ [GitHub Actions Kotlin DSL](https://github.com/krzema12/github-actions-kotlin-dsl) + ([docs](https://krzema12.github.io/github-actions-kotlin-dsl/)) + allows authoring GitHub Actions workflows for GitOps in Kotlin. + + See also [GitHub Actions DSL: a New Hope in YAML Programming Wasteland](https://dev.to/jmfayard/github-actions-a-new-hope-in-yaml-wasteland-1i9c) + by Jean-Michel Fayard on DEV\.to. ++ [jc](https://github.com/kellyjonbrazil/jc) (JSON Convert) + is CLI tool and python library that converts the output of popular command-line tools and file-types + to JSON, YAML, etc... including `git log`. This allows automated processing with tools + such as [`jq`](https://stedolan.github.io/jq/), and simplifying automation scripts. ++ [GitJournal](https://gitjournal.io/) is Mobile first Markdown Notes app + integrated with Git, for Android and iOS, + that can work with any Git hosting provider (via SSH). ++ [data-diff](https://github.com/datafold/data-diff) is an open-source command-line tool and Python library + by [Datafold](https://www.datafold.com/open-source-data-diff) + to efficiently diff rows across two different databases. + + See also references to [various](https://www.dolthub.com/blog/2021-09-17-database-version-control/) [blog](https://www.dolthub.com/blog/2021-11-26-so-you-want-git-database/) [posts](https://www.dolthub.com/blog/2021-12-20-git-sql/) + by Tim Sehn on DoltHub Blog about version control, Git, and databases, which appeared + in [Git Rev News Edition #82](https://git.github.io/rev_news/2021/12/30/edition-82/). ++ [GitHacker](https://github.com/WangYihang/GitHacker) is a multithreaded tool + to detect whether a site has the `.git/` folder leakage vulnerability, and if so + restores the entire Git repository, including data from stash. ++ [Build your own X](https://github.com/codecrafters-io/build-your-own-x) + is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch, + including [Build your own `Git`](https://github.com/codecrafters-io/build-your-own-x#build-your-own-git). + + > What I cannot create, I do not understand — Richard Feynman. ## Credits From 5014d8b83c8f09dcdc4eec7b6d206108cb6ad64f Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Thu, 28 Jul 2022 12:50:37 +0200 Subject: [PATCH 0342/1248] Supplied my usual tiny spelling/phrasing fixes. --- rev_news/drafts/edition-89.md | 44 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 36dd1f5fb1..cf01fa6550 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -50,7 +50,7 @@ This edition covers what happened during the month of July 2022. design or implement a big feature anymore, and luckily there are multiple groups of people who do excellent job dreaming up and new ways to use Git and make it a reality. My best days start by - getting greeted by surprisingly good proposal of a new feature or + getting greeted by a surprisingly good proposal of a new feature or optimization of an existing feature, and the entire day is spent on reviewing them. It happens less often these days, but they still do occasionally. @@ -70,7 +70,7 @@ This edition covers what happened during the month of July 2022. result of the day by 4pm. After that, I'd merge the topics that have cooked long enough in 'next' to 'master', and the topics that have been adequately reviewed to 'next'. The 'seen' and 'next' - branches are rebuild, the "What's cooking" report is rewritten, and + branches are rebuilt, the "What's cooking" report is rewritten, and the second integration result of the day gets pushed out, before I call it a day. @@ -100,7 +100,7 @@ This edition covers what happened during the month of July 2022. something in Git for a full year, what would it be? The interoperability between SHA-1 and SHA-256 repositories first - comes to mind. The ingredients are almost all there, so are rough + comes to mind. The ingredients are almost all there, so is rough design. @@ -129,7 +129,7 @@ This edition covers what happened during the month of July 2022. the tool currently works and they want to change it? Are they happy with Git but they feel they do not know enough of it and are curious about how things work? For the former folks, the usual "scratch - your itch" advice would work well to certain extent. For the latter + your itch" advice would work well to a certain extent. For the latter folks, their "itch" can be to try to figure out how one of their favorite subcommand works, and then perhaps clean up or optimize the code paths they studied. Following what our test scripts are @@ -141,8 +141,8 @@ This edition covers what happened during the month of July 2022. discussed, the kind of things the reviewers are interested in, and how the development process works. See who are active and how the discussion goes. These social conventions, how our developers work - with others, is just as important as, if not more than, technical - details. MyFirstContribution document may also be a good place to + with others, are just as important as, if not more than, technical + details. The "MyFirstContribution" document may also be a good place to start. @@ -198,11 +198,11 @@ This edition covers what happened during the month of July 2022. maintainership to me, I also had a "competitive" manner in a bad way. There were plenty of problems to be solved, and it felt as if people competed to be the first to offer a solution to each of them. - When I had an idea to solve a problem that others are also + When I had an idea to solve a problem that others were also interested to see solved, sometimes it felt like I had to "beat" them, which meant that I had to send out patches that weren't well reasoned and well explained enough. Luckily, being maintainer means - I do not have to compete the others. Instead I can set the pace of + I do not have to compete with the others. Instead I can set the pace of the project. After having lived in such a "competitive" way for a few months and saw its downside, I learned to give contributors time to think things through and wait long enough for counter-proposals. @@ -239,17 +239,17 @@ structures to express the important concepts are already there." calls for FOSS project to migrate away from GitHub. __Light reading__ -+ [Introduction to Git Ops](https://www.codeproject.com/Articles/5334970/Introduction-to-GitOps) Some useful background to the Git - DevOps approach in this sponsored article. ++ [Introduction to Git Ops](https://www.codeproject.com/Articles/5334970/Introduction-to-GitOps): Some useful background to the Git - DevOps approach in this sponsored article. + [Git workflows: Best practices for GitOps deployments](https://developers.redhat.com/articles/2022/07/20/git-workflows-best-practices-gitops-deployments), describing differences between how you manage your code in Git and how you manage your GitOps configuration in Git. By Christian Hernandez, GitOps Advocate, on Red Hat Developer blog. -+ [`git rebase --fork-point` considered harmful (by 'me')](https://commaok.xyz/post/fork-point/) The reflog lookup heuristics aren't what you thought, are they? A UX report. -+ [Git Delete Branch How-To, for Both Local and Remote](https://www.cloudbees.com/blog/git-delete-branch-how-to-for-both-local-and-remote) with pictures, Also includes deleting branches on Github.. -+ [Git - Subtree](https://www.geeksforgeeks.org/git-subtree/) A short overview of the common replacement for Git submodule. -+ [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) (2020) ++ [`git rebase --fork-point` considered harmful (by me)](https://commaok.xyz/post/fork-point/): The reflog lookup heuristics aren't what you thought, are they? A UX report by Josh Bleecher Snyder. ++ [Git Delete Branch How-To, for Both Local and Remote](https://www.cloudbees.com/blog/git-delete-branch-how-to-for-both-local-and-remote) with pictures, also includes deleting branches on GitHub. ++ [Git - Subtree](https://www.geeksforgeeks.org/git-subtree/): A short overview of the common replacement for Git submodule. ++ [Managing Git projects with submodules and subtrees](https://opensource.com/article/20/5/git-submodules-subtrees) (2020): More choices. This was previously mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). -+ ['Turn off merge fast-forward by default'](https://betterdev.blog/turn-off-git-fast-forward-merge/) An alternative viewpoint (from Git for Windows [#3858](https://github.com/git-for-windows/git/issues/3858)) ++ ['Turn off merge fast-forward by default'](https://betterdev.blog/turn-off-git-fast-forward-merge/): An alternative viewpoint (from Git for Windows [#3858](https://github.com/git-for-windows/git/issues/3858)) by Maciej Radzikowski on the Better Dev blog. + [Getting Started with Git Hooks and Husky](https://www.git-tower.com/blog/git-hooks-husky/) by Bruno Brito on Tower's blog. + “Codeberg” series by Flavio Poletti (@polettix), starting with [Codeberg](https://github.polettix.it/ETOOBUSY/2022/07/05/codeberg/) @@ -266,16 +266,16 @@ __Light reading__ by Sumantro Mukherjee (Correspondent, Red Hat) on OpenSource\.com. __Easy watching__ -+ [Git Internals - The BLOB](https://www.youtube.com/watch?v=_wj4MGuvcjc) 'A shot of code' looks at the internals of the .git folder to see exactly what goes on under the hood. -+ [Getting Comfortable with GIT](https://www.youtube.com/watch?v=aXXXiynr-4A) looking to get a deeper understanding of Git, and hopefully feeling a lot more comfortable when performing some of the more scary Git operations.. says 'A shot of code'. -+ [It's Impossible to Know If You're a Good Programmer](https://www.youtube.com/watch?v=Ax4EfY9LrF4) The imposter syndrome and irrelavent code challenges. ++ [Git Internals - The BLOB](https://www.youtube.com/watch?v=_wj4MGuvcjc): 'A shot of code' looks at the internals of the .git folder to see exactly what goes on under the hood. ++ [Getting Comfortable with GIT](https://www.youtube.com/watch?v=aXXXiynr-4A), looking to get a deeper understanding of Git, and hopefully feeling a lot more comfortable when performing some of the more scary Git operations... says 'A shot of code'. ++ [It's Impossible to Know If You're a Good Programmer](https://www.youtube.com/watch?v=Ax4EfY9LrF4): The impostor syndrome and irrelevant code challenges. __Git tools and sites__ + [Please remove that `.git` folder](https://dev.to/jmau111/please-remove-that-git-folder-3i9a) from directory browsing on the web server to avoid information leaks. Don't deploy the `.git/` folder or, at least, forbid access. By Julien Maury (jmau111) on DEV\.to and on [own blog](https://blog.julien-maury.dev/en/snippet/practical-git-security/). -+ [Git Signing](https://wilsonmar.github.io/git-signing/) All the details for signing commits and tags (for non-repudiation) in GitHub using GPG, Vault, Yubikey, Keybase! ++ [Git Signing](https://wilsonmar.github.io/git-signing/): All the details for signing commits and tags (for non-repudiation) in GitHub using GPG, Vault, Yubikey, Keybase! + [Git-Story](https://initialcommit.com/tools/git-story): Animate the story of your Git project, by creating video animations (.mp4) of your commit history directly from your Git repo. Note: arrows point in the direction of increasing time, not from commit to its parents. @@ -286,11 +286,11 @@ __Git tools and sites__ allows authoring GitHub Actions workflows for GitOps in Kotlin. + See also [GitHub Actions DSL: a New Hope in YAML Programming Wasteland](https://dev.to/jmfayard/github-actions-a-new-hope-in-yaml-wasteland-1i9c) by Jean-Michel Fayard on DEV\.to. -+ [jc](https://github.com/kellyjonbrazil/jc) (JSON Convert) - is CLI tool and python library that converts the output of popular command-line tools and file-types ++ [jc](https://github.com/kellyjonbrazil/jc) (**J**SON **C**onvert) + is a CLI tool and Python library that converts the output of popular command-line tools and file-types to JSON, YAML, etc... including `git log`. This allows automated processing with tools such as [`jq`](https://stedolan.github.io/jq/), and simplifying automation scripts. -+ [GitJournal](https://gitjournal.io/) is Mobile first Markdown Notes app ++ [GitJournal](https://gitjournal.io/) is a mobile first Markdown notes app integrated with Git, for Android and iOS, that can work with any Git hosting provider (via SSH). + [data-diff](https://github.com/datafold/data-diff) is an open-source command-line tool and Python library @@ -304,7 +304,7 @@ __Git tools and sites__ restores the entire Git repository, including data from stash. + [Build your own X](https://github.com/codecrafters-io/build-your-own-x) is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch, - including [Build your own `Git`](https://github.com/codecrafters-io/build-your-own-x#build-your-own-git). + including [Build your own Git](https://github.com/codecrafters-io/build-your-own-x#build-your-own-git). > What I cannot create, I do not understand — Richard Feynman. From 8dc926e737a6618cb11baf534052ecdb90846405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 28 Jul 2022 13:12:12 +0200 Subject: [PATCH 0343/1248] rn-89: Move a link to a better place --- rev_news/drafts/edition-89.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index cf01fa6550..1904695abd 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -271,10 +271,6 @@ __Easy watching__ + [It's Impossible to Know If You're a Good Programmer](https://www.youtube.com/watch?v=Ax4EfY9LrF4): The impostor syndrome and irrelevant code challenges. __Git tools and sites__ -+ [Please remove that `.git` folder](https://dev.to/jmau111/please-remove-that-git-folder-3i9a) - from directory browsing on the web server to avoid information leaks. - Don't deploy the `.git/` folder or, at least, forbid access. - By Julien Maury (jmau111) on DEV\.to and on [own blog](https://blog.julien-maury.dev/en/snippet/practical-git-security/). + [Git Signing](https://wilsonmar.github.io/git-signing/): All the details for signing commits and tags (for non-repudiation) in GitHub using GPG, Vault, Yubikey, Keybase! + [Git-Story](https://initialcommit.com/tools/git-story): Animate the story of your Git project, by creating video animations (.mp4) of your commit history directly from your Git repo. @@ -302,6 +298,11 @@ __Git tools and sites__ + [GitHacker](https://github.com/WangYihang/GitHacker) is a multithreaded tool to detect whether a site has the `.git/` folder leakage vulnerability, and if so restores the entire Git repository, including data from stash. + + See also [Please remove that `.git` folder](https://dev.to/jmau111/please-remove-that-git-folder-3i9a) + from directory browsing on the web server to avoid information leaks. + Don't deploy the `.git/` folder or, at least, forbid access. + By Julien Maury (jmau111) on DEV\.to and on his + [own blog](https://blog.julien-maury.dev/en/snippet/practical-git-security/). + [Build your own X](https://github.com/codecrafters-io/build-your-own-x) is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch, including [Build your own Git](https://github.com/codecrafters-io/build-your-own-x#build-your-own-git). From 48fb3d3986c860ecd3b91dc2120c1250985ed0c2 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 28 Jul 2022 21:42:48 +0200 Subject: [PATCH 0344/1248] rn-89: add releases --- rev_news/drafts/edition-89.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 1904695abd..d38778f4f4 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -215,6 +215,27 @@ This edition covers what happened during the month of July 2022. ## Releases ++ Git [2.37.1 and others](https://public-inbox.org/git/xmqqv8s2fefi.fsf@gitster.g/) ++ Git for Windows [2.37.1(1)](https://github.com/git-for-windows/git/releases/tag/v2.37.1.windows.1) ++ libgit2 [1.5.0](https://github.com/libgit2/libgit2/releases/tag/v1.5.0), +[1.4.4](https://github.com/libgit2/libgit2/releases/tag/v1.4.4) ++ GitHub Enterprise [3.6.0](https://help.github.com/enterprise-server@3.6/admin/release-notes#3.6.0), +[3.5.3](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.3), +[3.4.6](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.6), +[3.3.11](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.11), +[3.2.16](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.16), +[3.5.2](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.2), +[3.4.5](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.5), +[3.3.10](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.10), +[3.2.15](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.15) ++ GitLab [15.2.1, 15.1.4, and 15.0.5](https://about.gitlab.com/releases/2022/07/28/security-release-gitlab-15-2-1-released/) +[15.2](https://about.gitlab.com/releases/2022/07/22/gitlab-15-2-released/), +[15.1.3](https://about.gitlab.com/releases/2022/07/19/gitlab-15-1-3-released/), +[15.1.2](https://about.gitlab.com/releases/2022/07/04/gitlab-15-1-2-released/), +[15.1.1](https://about.gitlab.com/releases/2022/06/30/critical-security-release-gitlab-15-1-1-released/) ++ GitHub Desktop [3.0.5](https://desktop.github.com/release-notes/), +[3.0.4](https://desktop.github.com/release-notes/) ++ Sourcetree [4.1.9](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.1.9.html) ## Other News From 78079c48b30f564c5afc5eda2b5103ab02e4d097 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 28 Jul 2022 14:46:58 -0700 Subject: [PATCH 0345/1248] rn-89: minor copy-editing of gitster interview --- rev_news/drafts/edition-89.md | 40 +++++++++++++++++------------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index d38778f4f4..1fe81d1917 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -46,9 +46,9 @@ This edition covers what happened during the month of July 2022. * How does your work as the maintainer of the Git project look like? - Unlike earlier days, I no longer have to be in the driving seat to - design or implement a big feature anymore, and luckily there are - multiple groups of people who do excellent job dreaming up and new + Unlike earlier days, I no longer have to be in the driver's seat to + design or implement a big feature, and luckily there are + multiple groups of people who do excellent job dreaming up new ways to use Git and make it a reality. My best days start by getting greeted by a surprisingly good proposal of a new feature or optimization of an existing feature, and the entire day is spent on @@ -56,7 +56,7 @@ This edition covers what happened during the month of July 2022. occasionally. On my normal days, I scan the mailing list for patches and - discussions, and my goal is to at least open every one of incoming + discussions. My goal is to at least open every one of incoming messages, and read carefully at least half of the patches I pick up to queue on the 'seen' branch, which means that I may be queuing the other half without carefully reading, trusting the reviews already @@ -65,9 +65,9 @@ This edition covers what happened during the month of July 2022. I aim to finish picking up new topics, replacing existing topics, and generally interacting with the mailing list, by around 2pm. Then I rebuild the 'seen' topic, rewrite the latest draft of "What's - cooking" report (which is used as the guide to choose which topics + cooking" report (which is the guide to choose which topics will go to the 'next' branch), and push out the first integration - result of the day by 4pm. After that, I'd merge the topics that + result of the day by 4pm. After that, I merge the topics that have cooked long enough in 'next' to 'master', and the topics that have been adequately reviewed to 'next'. The 'seen' and 'next' branches are rebuilt, the "What's cooking" report is rewritten, and @@ -88,10 +88,10 @@ This edition covers what happened during the month of July 2022. There are too many to list in the design and implementation of the internals, but in the end, I think what mattered to the project most - was that I was consistently there available to help guide the + was that I was consistently there, available to help guide the project. - It may not be "important contribution", but my most favorite + While it may not be a particularly "important contribution", my most favorite creation is "git rerere". It was fun to design, work on, and (most importantly) name it. @@ -100,8 +100,8 @@ This edition covers what happened during the month of July 2022. something in Git for a full year, what would it be? The interoperability between SHA-1 and SHA-256 repositories first - comes to mind. The ingredients are almost all there, so is rough - design. + comes to mind. The ingredients are almost all there, so are rough + designs. * If you could remove something from Git without worrying about @@ -136,10 +136,10 @@ This edition covers what happened during the month of July 2022. doing to your favorite feature may be a great way to learn them, too. Either way, while identifying and scratching their "itch", I'd - recommend them to lurk on the mailing list for at least a few weeks, + recommend they lurk on the mailing list for at least a few weeks, and starting early is good. Learn by reading others' patches being discussed, the kind of things the reviewers are interested in, and - how the development process works. See who are active and how the + how the development process works. See who is active and how the discussion goes. These social conventions, how our developers work with others, are just as important as, if not more than, technical details. The "MyFirstContribution" document may also be a good place to @@ -190,22 +190,22 @@ This edition covers what happened during the month of July 2022. developers, what would it be? It is very easy to be too strongly married to your initial solution - to become blind to the merits of other approaches suggested in the - discussion, or accept a possible reframing of the original problem - to solve a wider problem. + and become blind to the merits of other approaches suggested in the + discussion by others, or accept a possible reframing of the original + problem to solve a wider problem. In the very early days of Git, before Linus passed the project's maintainership to me, I also had a "competitive" manner in a bad way. There were plenty of problems to be solved, and it felt as if people competed to be the first to offer a solution to each of them. When I had an idea to solve a problem that others were also - interested to see solved, sometimes it felt like I had to "beat" - them, which meant that I had to send out patches that weren't well + interested in, sometimes it felt like I had to "beat" + them, which meant that I had to send out patches even before they are well reasoned and well explained enough. Luckily, being maintainer means - I do not have to compete with the others. Instead I can set the pace of + I no longer have to compete with others. Instead I can set the pace of the project. After having lived in such a "competitive" way for a - few months and saw its downside, I learned to give contributors time - to think things through and wait long enough for counter-proposals. + few months and saw its downsides, I learned to give contributors time + to think things through and wait for counter-proposals. So, one "tip" is to take things slowly. Be ready to step back, take a deep breath and take time to rethink the problem, together with From 5763d84485d560849dff8ae3a808629b31f95291 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 29 Jul 2022 08:08:06 +0200 Subject: [PATCH 0346/1248] rn-89: add Contributor Summit info link --- rev_news/drafts/edition-89.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 1fe81d1917..ff91f32bec 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -240,6 +240,7 @@ This edition covers what happened during the month of July 2022. ## Other News __Various__ ++ [Contributor's Summit Registration details](https://public-inbox.org/git/YtRqU5rAOsLw5s03@nand.local/) have been posted by Taylor Blau. As usual the Summit will happen the day before the main conference day of the [Git Merge](https://git-merge.com/) and very close to it. + [GitLive 15.0: Offline merge conflict detection across all branches for any Git repository and more](https://blog.git.live/gitlive-15.0-offline-merge-conflict-detection-across-all-branches-for-any-git-repository) by Agnieszka Stec. + Iterative\.AI, authors of the [DVC](https://dvc.org/) Data Version Control tool From 186a7834c13bd076b1e32d80b458997310cc007b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 29 Jul 2022 23:12:43 +0200 Subject: [PATCH 0347/1248] rn-89: add 'git show --no-patch' article --- rev_news/drafts/edition-89.md | 98 ++++++++++++++++++++++++++++++++++- 1 file changed, 96 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index ff91f32bec..7aeffbb546 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -25,9 +25,103 @@ This edition covers what happened during the month of July 2022. ### Reviews --> - + +* [[BUG?] Major performance issue with some commands on our repo's master branch](https://public-inbox.org/git/87h750q1b9.fsf@gnu.org/) + + Tassilo Horn sent a long email to the mailing list saying that while + writing the email he found a solution to his problem, and that he + tells about that solution at the end of the email. + + He then explained that he works on a quite big repo where usual + commands are all quick, but some plumbing commands invoked by + [Magit](https://magit.vc/) are "extremely slow for no obvious + reasons". + + He found that: + + `git show --no-patch --format="%h %s" "master^{commit}" --` + + takes around 13 seconds, while: + + `git show --no-patch --format="%h %s" "SHD_ECORO_3_9_7^{commit}" --` + + takes around 23 milliseconds. + + So there is almost a factor of 1000 difference when the same command + is launched on the master branch or on the last release branch. + + He suspected that the difference might have something to do with the + fact that there have been a lot of merges recently in master. + + The solution he found while writing the email is to comment out the + `diff.renameLimit = 10000` he had in his `~/.gitconfig` file. This + reduced the time for the first command above from 13 seconds to 150 + milliseconds. + + Tassilo wondered though why `diff.renameLimit` had such an + influence, as, when `--no-patch` is provided, no diff should be + generated. + + Tao Klerks replied to Tassilo that he used to use `git show` to get + metadata from a big repo as the command allows specifying an + arbitrary list of commits in one call which can save process + overhead on Windows. He stopped using `git show` though, when it was + reported to be slow. Instead he switched to `git log` and accepted + process overhead, as it solved his problem. + + He found that large commits and merge commits when there were a + number of changes on any side were slow despite using + `--no-patch`. And Tassilo's email made him suspect that it could be + linked to rename-detection. + + Tassilo replied to Tao that using `git log` also + [solved his problem](https://github.com/magit/magit/commit/d0efb5ffff0b1d4e681f08ff64afbf1ab3257230) + but that someone might want to do something to fix `git show` when + no diff is generated. + + Tao replied that he found that adding `--diff-merges=off` to the + `git show --no-patch ...` command made it perform as fast as + `git log`. So he could now combine the performance of `git log` + with passing an arbitrary list of commits that `git show` allowed. + + Peff, alias Jeff King, also replied to Tassilo that `git show` might + in some cases need underlying diffs even if `--no-patch` is + requested, while `git log` might need them too, but not when looking + at merges. Peff wondered if the code could be changed to detect when + underlying diffs aren't needed, but thought that it could make the + code "a bit brittle". + + Kyle Meyer then asked Peff if making `--no-patch` imply + `--diff-merges=off` as Tao suggested was safe, and showed benchmarks + on the git.git repo where it was nearly 15 times faster with + `--diff-merges=off`. + + Peff replied that he wasn't sure it would be safe and gave an + example `git show` command using `--diff-filter=D` where the output + changes when diff merges are suppressed as the commit isn't showed + then. He suggested a mode skipping the diff when it's not shown but + always showing the commit. He said that it would require someone + verifying it does the right thing in all cases though. + + Junio Hamano, the Git maintainer, chimed in to agree with Peff that + making `--no-patch` imply `--diff-merges=off` would cause a + regression and mentioned other `git show` options where the output + could be affected. + + Junio also elaborated on Peff's idea of a mode skipping the diff + when it's not shown but always showing the commit. He suggested an + explicit `git show --log-only` option and mentioned a few ways to + make it work regarding other options. + + Peff and Junio discussed the idea a bit more, but it doesn't look + like something will be implemented soon. + + Tassilo and Peff also discussed a bit the `diff.renameLimit` + option. It looks like Tassilo would like to set it to a high value + only in some contexts, though the current config might not be + sufficient to express that. ## Developer Spotlight: Junio C Hamano From 65098a07194c4a91f0a11a39589995aec488627a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 29 Jul 2022 23:22:30 +0200 Subject: [PATCH 0348/1248] rn-89: change publication date to 2022-07-31 --- rev_news/drafts/edition-89.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 7aeffbb546..4e32434979 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 89 (July 27th, 2022) +title: Git Rev News Edition 89 (July 31st, 2022) layout: default -date: 2022-07-27 12:06:51 +0100 +date: 2022-07-31 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 89 (July 27th, 2022) +## Git Rev News: Edition 89 (July 31st, 2022) 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 From bb59be93b76019e6b5443290c670982a33b066c5 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 31 Jul 2022 01:27:14 +0200 Subject: [PATCH 0349/1248] Some phrasing fixes, part 2 of 2. Feel free to revise them. --- rev_news/drafts/edition-89.md | 38 +++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/rev_news/drafts/edition-89.md b/rev_news/drafts/edition-89.md index 4e32434979..14bc89f8f0 100644 --- a/rev_news/drafts/edition-89.md +++ b/rev_news/drafts/edition-89.md @@ -35,27 +35,27 @@ This edition covers what happened during the month of July 2022. tells about that solution at the end of the email. He then explained that he works on a quite big repo where usual - commands are all quick, but some plumbing commands invoked by - [Magit](https://magit.vc/) are "extremely slow for no obvious + commands were all quick, but some plumbing commands invoked by + [Magit](https://magit.vc/) were "extremely slow for no obvious reasons". He found that: `git show --no-patch --format="%h %s" "master^{commit}" --` - takes around 13 seconds, while: + took around 13 seconds, while: `git show --no-patch --format="%h %s" "SHD_ECORO_3_9_7^{commit}" --` - takes around 23 milliseconds. + took around 23 milliseconds. - So there is almost a factor of 1000 difference when the same command - is launched on the master branch or on the last release branch. + So there was almost a factor of 1000 difference when the same command + was launched on the master branch or on the last release branch. - He suspected that the difference might have something to do with the - fact that there have been a lot of merges recently in master. + He suspected that the difference could have something to do with the + fact that there had been a lot of merges recently in master. - The solution he found while writing the email is to comment out the + The solution he found while writing the email was to comment out the `diff.renameLimit = 10000` he had in his `~/.gitconfig` file. This reduced the time for the first command above from 13 seconds to 150 milliseconds. @@ -67,19 +67,19 @@ This edition covers what happened during the month of July 2022. Tao Klerks replied to Tassilo that he used to use `git show` to get metadata from a big repo as the command allows specifying an arbitrary list of commits in one call which can save process - overhead on Windows. He stopped using `git show` though, when it was + overhead on Windows. He stopped using `git show` though after it had been reported to be slow. Instead he switched to `git log` and accepted - process overhead, as it solved his problem. + some process overhead, as it solved his problem. - He found that large commits and merge commits when there were a + He found that large commits and merge commits with a number of changes on any side were slow despite using `--no-patch`. And Tassilo's email made him suspect that it could be - linked to rename-detection. + linked to rename detection. Tassilo replied to Tao that using `git log` also [solved his problem](https://github.com/magit/magit/commit/d0efb5ffff0b1d4e681f08ff64afbf1ab3257230) but that someone might want to do something to fix `git show` when - no diff is generated. + no diff was generated. Tao replied that he found that adding `--diff-merges=off` to the `git show --no-patch ...` command made it perform as fast as @@ -94,12 +94,12 @@ This edition covers what happened during the month of July 2022. code "a bit brittle". Kyle Meyer then asked Peff if making `--no-patch` imply - `--diff-merges=off` as Tao suggested was safe, and showed benchmarks + `--diff-merges=off` was safe, as Tao suggested, and showed benchmarks on the git.git repo where it was nearly 15 times faster with `--diff-merges=off`. Peff replied that he wasn't sure it would be safe and gave an - example `git show` command using `--diff-filter=D` where the output + example of a `git show` command using `--diff-filter=D` where the output changes when diff merges are suppressed as the commit isn't showed then. He suggested a mode skipping the diff when it's not shown but always showing the commit. He said that it would require someone @@ -107,7 +107,7 @@ This edition covers what happened during the month of July 2022. Junio Hamano, the Git maintainer, chimed in to agree with Peff that making `--no-patch` imply `--diff-merges=off` would cause a - regression and mentioned other `git show` options where the output + regression, and mentioned other `git show` options where the output could be affected. Junio also elaborated on Peff's idea of a mode skipping the diff @@ -118,8 +118,8 @@ This edition covers what happened during the month of July 2022. Peff and Junio discussed the idea a bit more, but it doesn't look like something will be implemented soon. - Tassilo and Peff also discussed a bit the `diff.renameLimit` - option. It looks like Tassilo would like to set it to a high value + Tassilo and Peff also discussed the `diff.renameLimit` option a bit. + It looks like Tassilo would like to set it to a high value only in some contexts, though the current config might not be sufficient to express that. From ab8c109d14b47a35e37259076a32ca024acd6999 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 31 Jul 2022 22:25:27 +0200 Subject: [PATCH 0350/1248] Publish rn-89 in _posts/ --- .../drafts/edition-89.md => _posts/2022-07-31-edition-89.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-89.md => _posts/2022-07-31-edition-89.markdown (100%) diff --git a/rev_news/drafts/edition-89.md b/_posts/2022-07-31-edition-89.markdown similarity index 100% rename from rev_news/drafts/edition-89.md rename to _posts/2022-07-31-edition-89.markdown From ec07083986c875757a5dd8794dd0e46dcb6056cd Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 31 Jul 2022 22:25:27 +0200 Subject: [PATCH 0351/1248] Add draft for rn-90 --- rev_news/drafts/edition-90.md | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-90.md diff --git a/rev_news/drafts/edition-90.md b/rev_news/drafts/edition-90.md new file mode 100644 index 0000000000..1a045b901a --- /dev/null +++ b/rev_news/drafts/edition-90.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 90 (August 31st, 2022) +layout: default +date: 2022-08-31 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 90 (August 31st, 2022) + +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). + +This edition covers what happened during the month of July 2022. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From cf6d303f96e9400bfd52d10605f77c30656dbe00 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 4 Aug 2022 01:04:52 +0200 Subject: [PATCH 0352/1248] Fixed yet another formatting glitch in edition 89. --- _posts/2022-07-31-edition-89.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2022-07-31-edition-89.markdown b/_posts/2022-07-31-edition-89.markdown index 14bc89f8f0..964d74a118 100644 --- a/_posts/2022-07-31-edition-89.markdown +++ b/_posts/2022-07-31-edition-89.markdown @@ -186,7 +186,7 @@ This edition covers what happened during the month of July 2022. project. While it may not be a particularly "important contribution", my most favorite - creation is "git rerere". It was fun to design, work on, and (most + creation is `git rerere`. It was fun to design, work on, and (most importantly) name it. From bba5ca1735b39fd03b5a53abc4c52b4e83282197 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sat, 27 Aug 2022 23:19:50 +0200 Subject: [PATCH 0353/1248] Added gem webrick to Gemfile. Needed to run Jekyll ("bundle exec jekyll serve") under Ruby 3. --- Gemfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Gemfile b/Gemfile index a7bf33a1b8..7d8bf5df60 100644 --- a/Gemfile +++ b/Gemfile @@ -2,3 +2,6 @@ source 'https://rubygems.org' # Because https://help.github.com/articles/using-jekyll-with-pages/ gem 'github-pages', group: :jekyll_plugins + +# gem "webrick", "~> 1.7" # N.B. we may not want to fix this Gemfile to Ruby 3 +gem "webrick" From 00ba649ca97ef9ed64abb6dae09e07738e523ef5 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 29 Aug 2022 20:50:24 +0200 Subject: [PATCH 0354/1248] rn-90: add releases --- rev_news/drafts/edition-90.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rev_news/drafts/edition-90.md b/rev_news/drafts/edition-90.md index 1a045b901a..953e3c312b 100644 --- a/rev_news/drafts/edition-90.md +++ b/rev_news/drafts/edition-90.md @@ -35,6 +35,18 @@ This edition covers what happened during the month of July 2022. ## Releases ++ Git [2.37.2](https://public-inbox.org/git/xmqqedxmfyhe.fsf@gitster.g/) ++ Git for Windows [2.37.2(2)](https://github.com/git-for-windows/git/releases/tag/v2.37.2.windows.2), +[2.37.2(1)](https://github.com/git-for-windows/git/releases/tag/v2.37.2.windows.1) ++ GitLab [15.3.1](https://about.gitlab.com/releases/2022/08/22/critical-security-release-gitlab-15-3-1-released/) +[15.3](https://about.gitlab.com/releases/2022/08/22/gitlab-15-3-released/), +[15.2.2](https://about.gitlab.com/releases/2022/08/01/gitlab-15-2-2-released/) ++ Bitbucket Server [8.3](https://confluence.atlassian.com/bitbucketserver/bitbucket-server-release-notes-872139866.html) ++ GitHub Enterprise [3.5.4](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.4), +[3.4.7](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.7), +[3.3.12](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.12), +[3.2.17](https://help.github.com/enterprise-server@3.2/admin/release-notes#3.2.17) ++ GitHub Desktop [3.0.6](https://desktop.github.com/release-notes/) ## Other News From 34ef66f1cad63ef29e1288e3b5a3014b7e810591 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 30 Aug 2022 20:49:33 +0530 Subject: [PATCH 0355/1248] rn-90: add interview with Glen Choo --- rev_news/drafts/edition-90.md | 123 +++++++++++++++++++++++++++++++++- 1 file changed, 120 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-90.md b/rev_news/drafts/edition-90.md index 953e3c312b..6456bddd6f 100644 --- a/rev_news/drafts/edition-90.md +++ b/rev_news/drafts/edition-90.md @@ -29,9 +29,126 @@ This edition covers what happened during the month of July 2022. ### Support --> - + +## Developer Spotlight: Glen Choo + +* Who are you and what do you do? + + I'm a Software Engineer at Google on a team that works on Git. My prior + experience is comprised solely of different flavours of proprietary web + apps, so I'm constantly grateful for the opportunity to work on the + polar opposite of that :) + + The only interesting thing I do outside of work is rock climbing. + Sometimes, I wish I spent as much time rock climbing as I do working, + which probably means that I should figure out how to do both + simultaneously. + +* What would you name your most important contribution to Git? + + Hm, I've only been contributing for a short while, so it's hard for me + to call any of them important per se. The most user-visible one is + safe.bareRepository, but I don't think many users will use it in its + current form. If I had more time, I'd expand it into a safer default for + everyone. + +* What are you doing on the Git project these days, and why? + + Most of my work has been focused on getting submodules to work with + branches as well as general submodule cleanup work. I get a kick out of + searching "git submodule bad", nodding my head at every single complaint + and dreaming about the day I get accurate search results for "git + submodule good". + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + I'd probably find a different way to structure the test suite so that we + can share far less state between tests, or maybe come up with a way to + visualize the setup for each test case. It would be nice to be able to + read just a single test case to understand what's happening. + + If I had 5 teams of experts and 10 years I'd lib-ify all of Git's + internals and have the Git CLI call the Git library in the same way + everyone else calls libgit2. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + I'd remove nearly all of the CLI flags and replace them with more + consistent, mnemonic flags. It's fun to be able to throw Git CLI trivia + at friends, but at some point, maybe it would be better for them to + be able to remember it themselves. + +* What is your favorite Git-related tool/library, outside of Git itself? + + I owe almost everything I know about Git to [Magit](https://magit.vc/) + (the Emacs plugin). When I was much much newer to Git, it was a safer, + friendlier, more discoverable entry point than the Git CLI. These days, it's + still an essential part of my toolbox since it vastly reduces the number of + keystrokes (I'm a really bad typist) and it gives an amazing interface + for modifying and applying diffs (I still have not touched "git add -p" + and at this point, I think it's too late to start). + + Honourable mention goes to [git-branchless](https://github.com/arxanas/git-branchless). + It does so many amazing things that I've grown to rely on, like + anonymous branches, obsolescence tracking, history manipulation. + +* Do you happen to have any memorable experience w.r.t contributing to + the Git project? If yes, could you share it with us? + + Jeff King, one of the most prolific contributors, took a break from the + Git project last year. I was probably one of the first people to realise + when he came back from the break because his first email on the mailing + list was a bug report comment on a bug that I created :') + +* Could you describe your Git development toolbox? + + For reading email, I've configured an email folder for the mailing list, + which gets pulled down by [offlineimap](http://www.offlineimap.org/) + [notmuch](https://notmuchmail.org/). + I read email using notmuch-emacs, which claims to be a frontend to + notmuch, but is actually also a full-fledged MUA (just like how Emacs + claims to be a text editor, but is actually an OS). + + For reviewing patches, I apply the patches to a dedicated worktree using + [b4](https://github.com/mricon/b4). "b4 shazam" is as close to painless + as I can imagine. + + For sending patches, I wrote a bunch of scripts around "git + format-patch" and "git send-email" and organised my branches so that I + could keep track of each version I sent out. Then one day I tried + GitGitGadget, realised that it does nearly all of those things for me + for free, and those scripts have remained virtually unused since :) I + will probably never use them again once GGG learns how to base + topics on topics. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + The best place to start is to get acquainted with the mailing list and + the community. Reading the mailing list and sending a low-stakes patch + (like a doc fix or usage string fix) are pretty good ways to do this. + Folks on the mailing list tend to communicate in a distinctive style - + it's often direct, and silence can have a different meaning from what + you're used to. I'm guessing that for most people, learning how to + communicate effectively on the mailing list is harder than the actual + technical aspects of Git development. + + I'd also recommend that newcomers fight the urge to make their v1 + patches absolutely perfect. The community is pretty accommodating to new + contributors, so once you're convinced that the codebase is better off + with your change than without, it's fine to send it out! Far more often + than not, it will lead to a positive interaction. + +* If there's one tip you would like to share with other Git developers, + what would it be? + + Assume good intent from the people you interact with. I think the + mailing list can be intimidating at times (especially to newcomers), but + if you assume good intent, then everyone suddenly seems friendlier and + feedback becomes easier to receive. And of course, remember to pay it + forward by acting with good intent. + ## Releases From dff65d2ee614eb01da45d919e8b1d4405c09729a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 31 Aug 2022 17:16:12 +0200 Subject: [PATCH 0356/1248] rn-90: add doc and help improvement article --- rev_news/drafts/edition-90.md | 205 +++++++++++++++++++++++++++++++++- 1 file changed, 203 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-90.md b/rev_news/drafts/edition-90.md index 6456bddd6f..757371505d 100644 --- a/rev_news/drafts/edition-90.md +++ b/rev_news/drafts/edition-90.md @@ -21,9 +21,210 @@ This edition covers what happened during the month of July 2022. ### General --> - + +* [[PATCH 0/2] git(1) doc + "git help": split-out user & git format docs](https://lore.kernel.org/git/cover-0.2-00000000000-20211015T020351Z-avarab@gmail.com/) + + Last October, Ævar Arnfjörð Bjarmason sent a patch series containing + only 2 patches. The first one created a new "User-facing file + formats" section in the main Git manual page by spliting it off from + the existing "Guides" section. The reason for this was that it was a + stretch to have manual pages like "gitignore(5)" in a section called + "Guides" which otherwise contained pages like "gitcore-tutorial(7)". + + The second patch in the series created a new "Git file and wire + formats" section in the main Git manual page. Contrary to the + section created by the first patch, this one was only for internal + file and wire formats, that users were not supposed to touch, like + "gitformat-bundle(5)". + + The goal was to make the existing technical documentation, which was + in "Documentation/technical/" and available only in the HTML format, + more accessible and discoverable by moving it over into the new man + page sections and adding the corresponding `--user-formats` and + `--git-formats` option to the `git help` command. + + The documentation had to be converted when moved over as the man + page format was different from the previous technical documentation + format, but the second patch only converted "bundle-format.txt" to a + new gitformat-bundle(5) man page. The plan was to convert and move + over more of them later. + + Last December Ævar sent + [a version 2](https://lore.kernel.org/git/cover-v2-0.5-00000000000-20211212T194047Z-avarab@gmail.com/) + of his patch series which now contained 5 patches instead of 2 and + converted and moved over more documentation to the new man page + sections. + + The cover letter of this patch series contained the following + examples of what the new `git help` options would show: + + ``` + $ git help --user-formats + + The user-facing file formats are: + gitattributes Defining attributes per path + githooks Hooks used by Git + gitignore Specifies intentionally untracked files to ignore + gitmailmap Map author/committer names and/or E-Mail addresses + gitmodules Defining submodule properties + gitrepository-layout Git Repository Layout + + $ git help --git-formats + + Git's internal file and network formats are: + gitformat-bitmap The bitmap file format + gitformat-bundle The bundle file format + gitformat-chunk Chunk-based file formats + gitformat-commit-graph Git commit graph format + gitformat-index Git index format + gitformat-pack-protocol How packs are transferred over-the-wire + gitformat-protocol-capabilities Protocol v0 and v1 capabilities + gitformat-protocol-common Things common to various protocols + gitformat-protocol-v2 Git Wire Protocol, Version 2 + gitformat-signature Git cryptographic signature formats + ``` + + As well as for the first patch series, there were no comment on this + patch series except for one from Eric Sunshine about a possible + typo. Ævar replied to Eric agreeing to fix some wordings. + + [A version 3](https://lore.kernel.org/git/cover-v3-0.7-00000000000-20220712T195419Z-avarab@gmail.com/) + of his patch series appeared only last July on the mailing list. + Containing 7 patches, it converted and moved over even more + documentation to the new man page sections. + + Ævar soon spotted that gcc's `-fanalyzer` option complained about + some code in his patch series though. The issue was that the `git + help` code, which was matching a user requested topic with a man + page, assumed that the name of man page files started with "git" and + then droped this prefix. This was justified as all Git man page + filenames have always started with "git", but the `-fanalyzer` + detected that things could go wrong if that was not the case. + + So a few days later Ævar sent + [a version 4](https://lore.kernel.org/git/cover-v4-0.8-00000000000-20220718T132911Z-avarab@gmail.com/) + of his patch series with only minor changes. One of them was fixing + the `-fanalyzer` complaint by adding a new patch at the beginning of + the series which would abort the current command using the BUG() + macro in case the man page name didn't start with "git". + + Junio Hamano, the Git maintainer, replied to Ævar suggesting a + slightly different fix for the complaint. Junio also thought that + githooks(5) didn't really belong into a category named + "user-formats", as a hook can be written in any language, so there + is no "format" for users to follow. Instead he would have liked a + better name for a category that could contain both "gitignore" and + "githook" related pages. + + Junio also suggested not distinguishing between '' and + '' arguments in the `git help` documentation as when we will + have enough man pages in different sections, we will be able to use + '' for everything that us not related to a specific command. + + About the "user-formats" category name, Ævar replied that he + couldn't find a better word than "format". He thought about "layout" + as there is "gitrepository-layout(5)", but found it odd. + + He also proposed using '' instead of '' or '' in + the `git help` documentation. Junio replied that he prefered '' + instead of '' though. + + Ævar and Junio also discussed interactions of the patch series with + patches that were worked on by others at the same time. + + A few days later Ævar then sent + [a version 5](https://lore.kernel.org/git/cover-v5-0.9-00000000000-20220721T160721Z-avarab@gmail.com/) + of his patch series which mainly renamed "user formats" and + "developer formats" to "user interfaces" and "developer interfaces". + + This changes allowed the new "user interfaces" section to also + contain the "gitcli", "gitrevisions" as well as "githook" man pages, + while the "developer interfaces" had pages called "protocol-*" + instead of only "format-*": + + ``` + $ ./git help --user-interfaces + User-facing repository, command and file interfaces: + attributes Defining attributes per path + cli Git command-line interface and conventions + hooks Hooks used by Git + ignore Specifies intentionally untracked files to ignore + mailmap Map author/committer names and/or E-Mail addresses + modules Defining submodule properties + repository-layout Git Repository Layout + revisions Specifying revisions and ranges for Git + + $ ./git help --developer-interfaces + File formats, protocols and other developer interfaces: + format-bundle The bundle file format + format-chunk Chunk-based file formats + format-commit-graph Git commit graph format + format-index Git index format + format-multi-pack-index The multi-pack-index file format + format-pack Git pack format + format-pack-cruft The cruft pack file format + format-signature Git cryptographic signature formats + protocol-capabilities Protocol v0 and v1 capabilities + protocol-common Things common to various protocols + protocol-http Git HTTP-based protocols + protocol-pack How packs are transferred over-the-wire + protocol-v2 Git Wire Protocol, Version 2 + ``` + + Along with other small fixes, in the `git help` documentation, the + new version also didn't distinguish between '' and '' + arguments anymore. + + The only comment on this version was from Eric who found a trivial + typo in a commit message. + + Anyway a few days later Ævar sent + [a version 6](https://lore.kernel.org/git/cover-v6-0.9-00000000000-20220728T164243Z-avarab@gmail.com/) + of his patch series fixing the trivial typo. + + Junio commented that the first patch in this series, which had been + added in version 4 of the patch series to fix the `-fanalyzer` + complaint, wasn't really needed. What wasn't actually needed was the + BUG() macro aborting everything in case the name of the man page + didn't start with "git", as it could be an unnecessary roadblock if + we ever wanted to add such man pages. + + After some further discussion, Ævar sent + [a version 7](https://lore.kernel.org/git/cover-v7-00.10-00000000000-20220802T125258Z-avarab@gmail.com/) + of his patch series. + + This series mostly removed the BUG() macro that had been added + previously, but still refactored in the first patch the code + dropping the "git" prefix when a user requested topic must be + matched with a man page. + + Junio commented about this first patch that he wasn't sure the + commit message properly described what the code was doing in case + the man page name started with something like "git-git". + + He then spotted an issue with how some changes were split into + different patches, and suggested that a man page should be split + into different pages for different topics, while two other man pages + about similar topic should be merged into one. He also mentioned + some "leftoverbits" that could be done later. + + Ævar sent + [a version 8](https://lore.kernel.org/git/cover-v8-00.12-00000000000-20220804T162138Z-avarab@gmail.com/) + of his patch series taking account Junio's suggestions, except for + one documentation page that he decided could be converted later if + needed. So he just removed the changes converting it from the patch + series. + + Junio reviewed the series again and liked what it was doing. He + discussed further changes a bit with Ævar, but they agreed that they + could be done later in another patch series. + + Since then, version 8 of the patch series has been merged into the + master branch, so we should have a significantly improved + documentation and help system in the next Git feature release + (v2.38.0) that should be out in the first weeks of October. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 8e6cac22c3a2b23fec415fe4127d757bcce2ff93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 3 Sep 2022 10:14:02 +0200 Subject: [PATCH 0367/1248] rn-91: Add links to news, articles and tools, part 1 --- rev_news/drafts/edition-91.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/rev_news/drafts/edition-91.md b/rev_news/drafts/edition-91.md index 584ded2e4d..1126e65fc0 100644 --- a/rev_news/drafts/edition-91.md +++ b/rev_news/drafts/edition-91.md @@ -40,15 +40,42 @@ This edition covers what happened during the month of September 2022. __Various__ ++ [SSH commit verification now supported](https://github.blog/changelog/2022-08-23-ssh-commit-verification-now-supported/) + in GitHub. ++ [New options for controlling the default commit message when merging a pull request](https://github.blog/changelog/2022-08-23-new-options-for-controlling-the-default-commit-message-when-merging-a-pull-request/) + via web interface in GitHub. + __Light reading__ ++ [Enable Gitsign Today and Start Signing your Commits](https://dev.to/erikaheidi/enable-gitsign-today-and-start-signing-your-commits-2gda) + with so called _keyless signing_, that is signing that relies on ephemeral keys. + Article by Erika Heidi on DEV\.to. ++ [Switching git back to GPG signing](https://sethmlarson.dev/blog/switching-git-back-to-gpg-signing) + from SSH key signing, by Seth Michael Larson on his own blog. + + See also [Signing Git Commits with SSH Keys](https://blog.dbrgn.ch/2021/11/16/git-ssh-signatures/), + mentioned in [Git Rev News Edition #83](https://git.github.io/rev_news/2022/01/31/edition-83/x). ++ [Merging two GitHub repositories without losing commit history](https://hacks.mozilla.org/2022/08/merging-two-github-repositories-without-losing-commit-history/) + by Schalk Neethling on Mozilla Hacks blog; a simpler solution might be to use `git subtree`, + or use `subtree` merge strategy, or `ort` merge strategy with `subtree[=]` strategy option. ++ [.gitignore File – How to Ignore Files and Folders in Git](https://www.freecodecamp.org/news/gitignore-file-how-to-ignore-files-and-folders-in-git/) + by Dionysia Lemonaki o freeCodeCamp. ++ [SSH Tips and Tricks](https://carlosbecker.com/posts/ssh-tips-and-tricks/) + by Carlos Alexandro Becker, including how to avoid having to touch Yubikey. + __Git tools and sites__ ++ [Gitsign](https://github.com/sigstore/gitsign): Keyless Git signing with + [Sigstore](https://www.sigstore.dev/), with your own GitHub / OIDC identity. + Written in Go. ++ [`ghq`](https://github.com/x-motemen/ghq) provides a way to organize remote repository clones, + like `go get` does; for example when cloning it makes a directory under a specific root directory. + Written in Go. + ## Credits From e4a964d58d5e171100cbf610ede5f36652ba17ca Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Mon, 5 Sep 2022 00:19:16 +0200 Subject: [PATCH 0368/1248] Removed the empty Light Reading chapter from edition 90. --- _posts/2022-08-31-edition-90.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_posts/2022-08-31-edition-90.markdown b/_posts/2022-08-31-edition-90.markdown index 88cd125b4f..f88aaf775c 100644 --- a/_posts/2022-08-31-edition-90.markdown +++ b/_posts/2022-08-31-edition-90.markdown @@ -385,7 +385,9 @@ __Various__ + [The full lineup for Git Merge 2022](https://github.blog/2022-08-23-the-full-lineup-for-git-merge-2022-revealed/) has been revealed by Lee Reilly. + ## Releases - ++ Tower for Mac [9.0](https://www.git-tower.com/release-notes/mac) ([What’s New in Tower 9 video](https://youtu.be/CuCCGSlBkis)) ++ Tower for Windows [3.4](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) ## Other News @@ -62,6 +63,10 @@ __Light reading__ by Dionysia Lemonaki o freeCodeCamp. + [SSH Tips and Tricks](https://carlosbecker.com/posts/ssh-tips-and-tricks/) by Carlos Alexandro Becker, including how to avoid having to touch Yubikey. ++ [Kaleidoscope + Tower: the perfect Git setup](https://blog.kaleidoscope.app/2022/08/03/kaleidoscope-and-tower/) by Florian Albrecht. ++ [How we built Tower 3 for Windows](https://www.git-tower.com/blog/how-we-built-tower-3-for-windows/) by Kristian Lumme on Tower’s blog. ++ [Mastering Google (for Developers)](https://www.git-tower.com/blog/mastering-google-developers/) by Bruno Brito on Tower's blog. ++ [10 Useful Git Commands You Should Know](https://www.git-tower.com/blog/10-useful-git-commands/) by Bruno Brito on Tower's blog. - +## Developer Spotlight: Jeff King (alias Peff) + +* Who are you and what do you do? + + My given name is Jeff, but most people call me Peff. Even in real life. + I've been working on Git since early 2006. For a while it was for fun + and to scratch my own itches (and maybe to avoid doing my school work), + but I joined GitHub in 2011, where my job was mostly about improving + Git. I stopped being a full-time employee earlier this year, but I'm + still working a few hours a week on Git. + +* How has your journey been as a long-time Git contributor? Do you + happen to have any memorable experience w.r.t contributing to the + Git project? + + One thing I've found with contributing to Git is that it sneaks up on + you over time. + + I still remember one moment in 2008 or 2009. In my mind, Git was + something I did to procrastinate on "real" work. Shawn Pearce was + organizing an in-person meeting of developers, and emailed me + specifically to say that I was one of the core developers and should + consider coming. I was really confused. Wasn't this just a thing I did + in my spare time? But running `git shortlog` showed that I was one of + the top few contributors. That really changed my mindset; I realized I + was part of a larger community, and that it was something I did care + about. + + And I have that same sense looking at how far Git has come. Day to day + (and especially when you're fixing a bug in code from 2005) it can seem + like nothing changes. But when I look back over the span of 10 or 15 + years, I'm amazed at the progress. Not just in terms of features in Git, + but at the overall development process. The way we work and communicate + has matured so much in that time. Some of that is from technical tools + (new Git features, new internal APIs and data structures to avoid whole + classes of bugs) but some of it is in what the people do. In my opinion, + our standards for testing and commit messages have gone up considerably + over the years. + +* Git Merge got over a few days ago. Any takeaways from the conference + that you would like to share? + + To me, the most important part of Git Merge is making connections + between developers. I'm not convinced that sticking 30 people in a room + is the best way to have a technical discussion, and the real work later + happens solo, or on the list. But I think seeing people in person, and + especially chatting with them over lunch, etc, is so helpful to that + later work. We all know intellectually that there's another person on + the end of every email, but I think having met them face to face helps + us emphathize at a more gut level. + + Of course, there were some talks, too. I tend to prefer the more + technical ones, but being so involved in Git development, there doesn't + tend to be anything too surprising for me there. I thought the talks + from Taylor and Elijah were nice dives into new technical material + (though they both also have great blog posts that go even deeper!). + Martin's Jujutsu talk gave a lot of food for thought on different ways + for people to interact with Git. + +* Could you share a few words regarding your experience while you were + a member of the Git PLC? + + I was the person who led the initial effort in 2010 to join Software + Freedom Conservancy. We had gotten some money for the project as part of + Google's Summer of Code program. It was being passed around like a hot + potato (between countries, even!) as somebody took responsiblity for + handling GSoC each year. I don't even want to think of what we were + _supposed_ to do with it, tax-wise, but we knew it would be better with + some actual structure. So that led to us joining, which led to the PLC + as committee in control of the project as an entity (and the money), and + that led to handling more assets (the git-scm.com domain, donated + hosting agreements from various places, the trademark). + + Since the Conservancy entity isn't directly related to code development, + being on the PLC is long periods of nothing, punctuated by big threads + full of boring non-coding stuff. Some of it is fun-ish, like handing out + travel funds so people can come to Git Merge. Some of it I found very + tedious, like discussing trademark enforcement, or code of conduct + issues. I was happy to serve on the PLC for many years, but I'm also + happy that other people are doing that work now. + +* What would you name your most important contribution to Git? + + I think my biggest contribution is not any one thing, but rather being + there for all of the things. There's hardly a C file in the repository + that I haven't touched at some point, and when fixing a bug I'd often + try to find solutions we could apply to the whole code base (e.g., + improving an API to be less error-prone and using it consistently in + other callers). + + I do sometimes work on bigger features. One of the earliest things I did + after starting at GitHub was overhaul our HTTP authentication and + introduce the credential-helper protocol. I occasionally see other tools + using a similar protocol, proving that it was either a great idea, or a + seductively bad one! + +* What are you doing on the Git project these days, and why? + + One of my favorite things in Git is to wake up, read an email on the + list that says "why does Git do X when I say Y?", dig it down to some + bug or missing feature, and end up with a nice, tidy patch by lunchtime. + Of course it doesn't always go that way, but I do often enjoy these + little fixes. It's like solving a puzzle. + + I also have a backlog of half-finished ideas. Some of them are garbage + that I'll probably throw away, but many of them just need a little + polishing. One of them is more tunable knobs for repacking (which has + been in use on GitHub's servers for a few years already!), and another + is handling negative commit timestamps (so we can finally import + pre-1970 Apollo code). + +* 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? + + Arguably I had that already, so maybe past work speaks for itself. Or + maybe I squandered it. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + Trees should be sorted in order strictly by name, rather than + directories sorting as if "/" was appended. It's a little thing, I know, + but it's one of the few things that's really impossible to fix because + it's baked so deep into Git's logical model. + +* What is your favorite Git-related tool/library, outside of Git + itself? + + Definitely [`tig`](https://jonas.github.io/tig/). Its "blame" functionality, + and especially the "re-blame from parent" feature, are so useful. I almost + never run a bare `git blame`. + +* What is your toolbox for interacting with the mailing list and + for developing Git itself? + + I read the mailing list via mutt. I keep a local archive which I index + with notmuch. I used to actually subscribe to the list, but these days I + just pull the archive every few minutes from lore.kernel.org's + public-inbox Git repository. + + I do all of my development with a fairly vanilla vim setup. I have a few + niceties, like terminal hotkeys to cut and paste object hashes, and a + vim function to inline output from a Git command (like converting hashes + into `--format=reference`). + + I try to share my scripts when they're not too gross or specific to my + workflows. An example there is [`contrib/git-jump`](https://github.com/git/git/tree/master/contrib/git-jump). + I keep some other Git-specific scripts in the [meta branch](https://github.com/peff/git/tree/meta) + which I check out as the directory `Meta` inside my Git repository (I + stole the name from Junio, who has a similar tree of scripts). I use it + to rebase my topics and make my daily-driver build of Git. There's + probably not much of use there for most people, but some of it has led + to useful features (e.g., our test suite's `--stress` option started as + a script there, though SZEDER Gábor did all the heavy lifting to + integrate it). + +* What is your advice for people who want to start Git development? + Where and how should they start? + + There are a lot of ways to get involved in open source, but I think the + best one is scratching your own itch. Pick something you want the tool + to do, and work on it. That's probably harder with Git these days than + it was when I started, just because the system is larger and more + complex, and so much of the low-hanging fruit has already been picked. + + A similar way is just reading the list and looking for bug reports. Once + you learn about a problem, then it becomes your itch. + + Of course it's fine to start work on a much larger project if you like. + But following my "sneaks up on you" philosophy from above, if you work + on enough small things, you will eventually find yourself quite + comfortable with the code base, and able to work on larger things. + +* If there's one tip you would like to share with other Git + developers, what would it be? + + Re-read your emails before sending! Obviously it's nice to catch typos + and other simple proofreading errors. But it's also a final chance to + make sure you are saying what you want clearly and concisely, and that + you understand what the other person is saying. + + I can't count the number of times that I've almost sent out a very + confused explanation in a commit message, and upon re-reading realized + that not only was there a better way to explain it, but a better way to + write the code. It's also one of the reasons I like writing verbose + commit messages. Trying to justify the decisions you've made in writing + a patch is often the moment you realize that your arguments are weak. + + Likewise, there have been many times when I'm about to respond to + somebody along the lines of "I think you're wrong, and here's why". And + upon re-reading I realize that I did not understand their point in the + first place. Of course if everybody remains polite, then hopefully the + error works its way to a shared understanding eventually. But besides + saving everybody time, catching a misunderstanding before sending means + you're wrong on the Internet one less time! + + Of course, ending the interview with this tip gives an almost certain + probability that I have a typo somewhere above. So maybe one more tip: + be humble. And remember to have fun. Oops, that's two tips. + ## Releases + Tower for Mac [9.0](https://www.git-tower.com/release-notes/mac) ([What’s New in Tower 9 video](https://youtu.be/CuCCGSlBkis)) From 7cacc81f9045ac895a70a20732974bbd23523362 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 27 Sep 2022 23:32:14 +0200 Subject: [PATCH 0371/1248] rn-91: Add links to news, articles and tools, part 2 --- rev_news/drafts/edition-91.md | 72 ++++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 5 deletions(-) diff --git a/rev_news/drafts/edition-91.md b/rev_news/drafts/edition-91.md index 9f57eab50c..37861f6596 100644 --- a/rev_news/drafts/edition-91.md +++ b/rev_news/drafts/edition-91.md @@ -43,30 +43,80 @@ __Various__ + [SSH commit verification now supported](https://github.blog/changelog/2022-08-23-ssh-commit-verification-now-supported/) in GitHub. ++ [1Password now allows you to set up and use SSH keys to sign Git commits](https://blog.1password.com/git-commit-signing/). + + See also [SSH and Git, meet 1Password](https://blog.1password.com/1password-ssh-agent/), + mentioned in [Git Rev News Edition #85](https://git.github.io/rev_news/2022/03/31/edition-85/). + [New options for controlling the default commit message when merging a pull request](https://github.blog/changelog/2022-08-23-new-options-for-controlling-the-default-commit-message-when-merging-a-pull-request/) via web interface in GitHub. ++ [Merge commits now created using the merge-ort strategy](https://github.blog/changelog/2022-09-12-merge-commits-now-created-using-the-merge-ort-strategy/) + on GitHub. ++ [35,000 code repos not hacked—but clones flood GitHub to serve malware](https://www.bleepingcomputer.com/news/security/35-000-code-repos-not-hacked-but-clones-flood-github-to-serve-malware/), + and [GitHub blighted by “researcher” who created thousands of malicious projects](https://nakedsecurity.sophos.com/2022/08/04/github-blighted-by-researcher-who-created-thousands-of-malicious-projects/). __Light reading__ ++ [Scaling Git's garbage collection](https://github.blog/2022-09-13-scaling-gits-garbage-collection/) + by Taylor Blau on GitHub Blog: a tour of recent work to re-engineer Git's garbage collection process + to scale to GitHub's largest and most active repositories. ++ [A primer on Roaring bitmaps: what they are and how they work](https://vikramoberoi.com/a-primer-on-roaring-bitmaps-what-they-are-and-how-they-work/) + by Vikram Oberoi. + + Adding support for [Roaring Bitmaps](https://roaringbitmap.org/) to Git was a part of + [Reachability bitmap improvements](https://summerofcode.withgoogle.com/programs/2022/projects/UPtA6qdf) + Google Summer of Code 2022 project by Abhradeep Chakraborty, see for example their + [GSoC Final Report](https://medium.com/@abhra303/gsoc-final-report-feaaacfae737) on their Medium blog. + [Enable Gitsign Today and Start Signing your Commits](https://dev.to/erikaheidi/enable-gitsign-today-and-start-signing-your-commits-2gda) with so called _keyless signing_, that is signing that relies on ephemeral keys. Article by Erika Heidi on DEV\.to. + [Switching git back to GPG signing](https://sethmlarson.dev/blog/switching-git-back-to-gpg-signing) from SSH key signing, by Seth Michael Larson on his own blog. + See also [Signing Git Commits with SSH Keys](https://blog.dbrgn.ch/2021/11/16/git-ssh-signatures/), - mentioned in [Git Rev News Edition #83](https://git.github.io/rev_news/2022/01/31/edition-83/x). + mentioned in [Git Rev News Edition #83](https://git.github.io/rev_news/2022/01/31/edition-83/). ++ [Git signatures with SSH certificates](https://mjg59.dreamwidth.org/60916.html) + by Matthew Garrett on his Dreamwidth journal. + [Merging two GitHub repositories without losing commit history](https://hacks.mozilla.org/2022/08/merging-two-github-repositories-without-losing-commit-history/) - by Schalk Neethling on Mozilla Hacks blog; a simpler solution might be to use `git subtree`, - or use `subtree` merge strategy, or `ort` merge strategy with `subtree[=]` strategy option. + by Schalk Neethling on Mozilla Hacks blog; a simpler solution might be to use the `git subtree` command, + or use the `subtree` merge strategy, or the `ort` merge strategy with `subtree[=]` strategy option. + [.gitignore File – How to Ignore Files and Folders in Git](https://www.freecodecamp.org/news/gitignore-file-how-to-ignore-files-and-folders-in-git/) - by Dionysia Lemonaki o freeCodeCamp. + by Dionysia Lemonaki on freeCodeCamp. + [SSH Tips and Tricks](https://carlosbecker.com/posts/ssh-tips-and-tricks/) by Carlos Alexandro Becker, including how to avoid having to touch Yubikey. ++ [Do (not) Self-Host your repos](https://weblog.masukomi.org/2022/09/24/do-and-dont-self-host-your-repos/) + by Kay Rhodes (@masukomi), explaining pros and cons of self hosting, with a simple suggestion on what to do. ++ [The Git Commands I Use Every Day](https://dev.to/wadecodez/the-git-commands-i-use-every-day-5g17) + by Wade Zimmerman on DEV\.to, + originally [published at devmap.org](https://devmap.org/the-git-commands-i-use-every-day-5277f90ab743), a Medium blog. ++ [Git Best Practices – How to Write Meaningful Commits, Effective Pull Requests, and Code Reviews](https://www.freecodecamp.org/news/git-best-practices-commits-and-code-reviews/) + by Grant Weatherston on freeCodeCamp. ++ [Error: src refspec master does not match any – How to Fix in Git](https://www.freecodecamp.org/news/error-src-refspec-master-does-not-match-any-how-to-fix-in-git/) + by Dillion Megida on freeCodeCamp. ++ [Rewrite your git history in 4 friendly commands](https://whitep4nth3r.com/blog/rewrite-git-history/), + making the git history of a demo project to start (again) with an _"Initial commit"_. + By Salma Alam-Naylor on whitep4nth3r.com (also [on DEV\.to](https://dev.to/whitep4nth3r/rewrite-your-git-history-in-4-friendly-commands-an9)). ++ [Fixing Some Bugs in My GitHub Profile Generator](https://blog.urth.org/2022/08/14/fixing-some-bugs-in-my-github-profile-generator/) + by Dave Rolsky on his House Absolute(ly Pointless) blog, + among others on how to use [`linguist-generated` gitattribute](https://github.com/github/linguist/blob/master/docs/overrides.md) + to exclude generated files from languages statistics. ++ [Things I wish everyone knew about Git (Part I)](https://blog.plover.com/prog/git/tips.html) + and [(Part II)](https://blog.plover.com/prog/git/tips-2.html) + by Mark Dominus (陶敏修) on The Universe of Discourse blog. ++ [Why We Built an Open Source ML (Machine Learning) Model Registry with git](https://thenewstack.io/why-we-built-an-open-source-ml-model-registry-with-git/) + by Dmitry Petrov of [Iterative.AI](https://iterative.ai/) (authors of DVC, CML and MLEM) + on The New Stack. + + See [Git-backed Machine Learning Model Registry to bring order to chaos](https://iterative.ai/blog/iterative-studio-model-registry), + mentioned in [Git Rev News Edition #89](https://git.github.io/rev_news/2022/07/31/edition-89/). ++ [Git – Comparing Visual Studio 2022 with MeGit/EGit and SourceTree](https://www.codeproject.com/Articles/5338960/Git-Comparing-Visual-Studio-2022-with-MeGit-EGit-a) + by Mark Pelf on CodeProject. + [Kaleidoscope + Tower: the perfect Git setup](https://blog.kaleidoscope.app/2022/08/03/kaleidoscope-and-tower/) by Florian Albrecht. + [How we built Tower 3 for Windows](https://www.git-tower.com/blog/how-we-built-tower-3-for-windows/) by Kristian Lumme on Tower’s blog. + [Mastering Google (for Developers)](https://www.git-tower.com/blog/mastering-google-developers/) by Bruno Brito on Tower's blog. + [10 Useful Git Commands You Should Know](https://www.git-tower.com/blog/10-useful-git-commands/) by Bruno Brito on Tower's blog. ++ [Git Interview Questions - The essential list, including answers](https://www.git-tower.com/learn/git/faq/git-interview-questions), + a part of Git Tower's [Git FAQ](https://www.git-tower.com/learn/git/faq) + (with tips for the Tower Git client). ++ [Semantic Diff for SQL](https://github.com/tobymao/sqlglot/blob/main/posts/sql_diff.md) by Iaroslav Zeigerman; + implementation discussed in this post is now a part of the [SQLGlot](https://github.com/tobymao/sqlglot/) library. + + +* [Git Merge conference](https://git-merge.com/) and Contributor's Summit + + The Git Merge conference happened + [on September 14th and 15th](https://git-merge.com/#schedule). + On the afternoon of first day there were optional workshops and the + Git Contributor's Summit, while the main conference happened on the + second day. + + As usual [the topics](https://docs.google.com/spreadsheets/d/1QhkUkYvqtGJtN7ViiTmrfcP3s0cXgqyAIACRD5Q24Mg/edit) + that were discussed during the Contributor's Summit were proposed + and voted on before the the Summit started. The discussions started + from the most voted on topics and + [some notes were taken](https://docs.google.com/document/d/1gVGZtkCLF3CWPt3xQnIJUy8XP702zGSxvOPk1r-6_8s/edit). + + Hopefully these notes will be split according to the different + topics and an email containing them will be sent for each topic to + the mailing list. - + +* [rev-parse: -- is sometimes a flag and sometimes an arg?](https://lore.kernel.org/git/CAO_RewbD+BJd1hPKCmCNM8wYBSUmZ2TuOoy6t1up1CT-rbn4DA@mail.gmail.com/) + + Tim Hockin sent an email to the mailing list containing a series of + `git rev-parse` commands with some arguments that he ran on the + command line, along with their results, and his comments. + + First he ran `git rev-parse unknown-tag` which errored out, after + printing `unknown-tag`. The error message said that `unknown-tag` is + an ambiguous argument and suggested to use `--` to separate paths + from revisions. + + So he tried `git rev-parse unknown-tag --` which just errored saying + that `unknown-tag` is a bad revision as expected. + + Unfortunately when he then tried `git rev-parse HEAD --`, there was + no error as expected, but instead of outputting only the SHA1 hash + corresponding to HEAD, the command also printed `--` on its own line + after the SHA1 hash. + + This made Tim wonder why `--` was treated as a regular argument. He + looked at Git source code and said that it seemed intentional to + treat it that way, but he didn't understand the reason. + + Junio Hamano, the Git maintainer, replied that `git rev-parse` was + mostly a "plumber" command designed to be used by higher level + "porcelain" commands. By default, it should be able to "parse" + command line arguments, and then dump them all to its output after + translating "revs" into raw object names (SHA1 hashes). + + As `--` is a valid option for "porcelain" commands or scripts that + would use `git rev-parse` to parse their command line arguments, it + makes sense for `git rev-parse` to just pass `--` along. + + Tim then asked if there was "a more friendly way" to do what he + wanted to do. But Junio replied that it wasn't clear what Tim + actually wanted to do. + + Tim replied that his goal was to convert a string that could contain + a tag name, a branch name, or a SHA1 hash (abbreviated or not) into + a canonical SHA1. + + Junio suggested using `git rev-parse --verify `, as it would + either convert `` into an object ID (a SHA1 hash by + default), or it would error out. Junio also mentioned that + [the "EXAMPLES" section](https://git-scm.com/docs/git-rev-parse#_examples) + has more elaborate examples. + + brian m. carlson chimed in to say that `git rev-parse --verify ` + would print a full object ID whether it exists in the repo or not, if + `` already contains one (for example, the all-zeros object ID). + He suggested using `git rev-parse --verify ^{object}` if Tim + wanted to also verify that the object exists. + + Tim thanked brian and Junio saying that their answer helps a lot. ## Developer Spotlight: Jeff King (alias Peff) From e862a553ccb0f338a70172061467e141bc186f5f Mon Sep 17 00:00:00 2001 From: Luca Milanesio Date: Thu, 29 Sep 2022 17:56:13 +0100 Subject: [PATCH 0377/1248] Update the Git rev news with the Gerrit events Add the news on the Gerrit events happening in October / November and announce the return of the face-to-face Gerrit User Summit with also includes JGit talks and discussions. --- rev_news/drafts/edition-91.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rev_news/drafts/edition-91.md b/rev_news/drafts/edition-91.md index ee879a4600..fad0ec015a 100644 --- a/rev_news/drafts/edition-91.md +++ b/rev_news/drafts/edition-91.md @@ -38,6 +38,18 @@ This edition covers what happened during the month of September 2022. topics and an email containing them will be sent for each topic to the mailing list. +* [Gerrit User Summit](https://www.eventbrite.com/e/gerrit-user-summit-2022-tickets-424995963367) 2022 + + Gerrit User Summit is the event that brings together Gerrit and JGit + maintainers, contributors and users together, network face-to-face and + share news and experiences. It is now back on the 10-11 November 2022 + in hybrid mode with a physical venue in [London at CodeNode](https://g.page/codenodeuk?share) + and online. + + The summit is going to be recorded and published on the [GerritForge YouTube](https://tv.gerritforge.com) + channel, together with roundtables and discussions between the community + members. + @@ -344,6 +356,7 @@ __Various__ on GitHub. + [35,000 code repos not hacked—but clones flood GitHub to serve malware](https://www.bleepingcomputer.com/news/security/35-000-code-repos-not-hacked-but-clones-flood-github-to-serve-malware/), and [GitHub blighted by “researcher” who created thousands of malicious projects](https://nakedsecurity.sophos.com/2022/08/04/github-blighted-by-researcher-who-created-thousands-of-malicious-projects/). ++ [Gerrit Code Review v3.7.0 release plan](https://www.gerritcodereview.com/2022-09-29-gerrit-3.7-release-plan.html) has been published. __Light reading__ From d819ca9417fcc750b3d5c4f07e088be8b5522a64 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Sep 2022 14:34:01 +0200 Subject: [PATCH 0378/1248] rn-91: improve Git Merge article --- rev_news/drafts/edition-91.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/rev_news/drafts/edition-91.md b/rev_news/drafts/edition-91.md index ee879a4600..88e306db8f 100644 --- a/rev_news/drafts/edition-91.md +++ b/rev_news/drafts/edition-91.md @@ -24,19 +24,18 @@ This edition covers what happened during the month of September 2022. The Git Merge conference happened [on September 14th and 15th](https://git-merge.com/#schedule). - On the afternoon of first day there were optional workshops and the - Git Contributor's Summit, while the main conference happened on the - second day. + On the afternoon of the first day there were optional workshops and + the Git Contributor's Summit, while the main conference happened on + the second day. - As usual [the topics](https://docs.google.com/spreadsheets/d/1QhkUkYvqtGJtN7ViiTmrfcP3s0cXgqyAIACRD5Q24Mg/edit) + As usual [the topics](https://docs.google.com/spreadsheets/d/1QhkUkYvqtGJtN7ViiTmrfcP3s0cXgqyAIACRD5Q24Mg) that were discussed during the Contributor's Summit were proposed and voted on before the the Summit started. The discussions started - from the most voted on topics and - [some notes were taken](https://docs.google.com/document/d/1gVGZtkCLF3CWPt3xQnIJUy8XP702zGSxvOPk1r-6_8s/edit). + from the most voted on topics. - Hopefully these notes will be split according to the different - topics and an email containing them will be sent for each topic to - the mailing list. + Taylor Blau sent [an email](https://lore.kernel.org/git/YzXvMRc6X60kjVeY@nand.local/). + summarizing what happened and asking for feedback, followed by the + broken-out notes for each topic that was discussed in an email thread. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From d27d73dd783a08d7ec9a309971a7fd8596938166 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 3 Oct 2022 09:28:08 +0530 Subject: [PATCH 0385/1248] rn-91: remove a redundant article --- _posts/2022-10-01-edition-91.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2022-10-01-edition-91.markdown b/_posts/2022-10-01-edition-91.markdown index c00c88894c..428e1f0249 100644 --- a/_posts/2022-10-01-edition-91.markdown +++ b/_posts/2022-10-01-edition-91.markdown @@ -30,7 +30,7 @@ This edition covers what happened during the month of September 2022. As usual [the topics](https://docs.google.com/spreadsheets/d/1QhkUkYvqtGJtN7ViiTmrfcP3s0cXgqyAIACRD5Q24Mg) that were discussed during the Contributor's Summit were proposed - and voted on before the the summit started. The discussions started + and voted on before the summit started. The discussions started with the topics with the most votes. Taylor Blau sent [an email](https://lore.kernel.org/git/YzXvMRc6X60kjVeY@nand.local/) From 14bc1ef06700b442ff2e358d26ff8f79bcd0b2af Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 12 Oct 2022 22:21:58 +0200 Subject: [PATCH 0386/1248] Microproject Info: add section about conventions --- General-Microproject-Information.md | 74 +++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 3709211b45..fdc507b662 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -349,3 +349,77 @@ tried, what you expected and what didn't work as you expected. Something like "I couldn't find a good micro-project for me", for example, doesn't tell us much, and doesn't give us any idea about how we could help you. + +## Some conventions + +It can be intimidating to introduce yourself or send your first patch +to the mailing list, but we hope that the following conventions will +help you get properly started. + +### Start your own email thread + +When you introduce yourself to the Git mailing list, please start your +own email thread instead of replying to a thread where someone else +introduced themself, or worse a completely unrelated thread. + +### Use a tag, like [GSoC], [Outreachy], etc, in your subject + +Yeah, we insist on this because many applicants don't do it despite +the fact that it helps everyone, especially themself. + +### Reply inline + +Many people these days use the "top posting" posting style, but we +usually reply inline instead, which is also called the "interleaved +posting" posting style. See +https://en.wikipedia.org/wiki/Posting_style for more information about +these styles. + +So please don't just reply on top of the email you are replying +to. Instead, just expand the email you are replying to and put your +comments in it. + +### Put ALL the co-mentors in To: or Cc: + +When emailing about something related to your program (GSoC or +Outreachy or ...) and when you know who are your possible +(co-)mentors, put them all in To: or Cc:. If you email or reply and +forget to put one of your (possible) co-mentors in the loop, it can +only create confusion or additional useless synchronization work for +your mentors and ultimately make it harder for them to help you. + +If you have something personal to say to only one of your mentors, +it's Ok to not put others in To: or Cc:, but otherwise, please, make +it a habit to put them all in the loop when you contact them. + +Tip: just use "Reply-all" when you reply to an email. + +### Don't be formal + +We are used to not using titles, like "Sir", "Mr", etc, and not being +formal. Yeah, it can be difficult, as in some areas or countries, +people are supposed to be formal with mentors, professors or people +older or more experienced than themself. But please try to be as +informal as us. + +### Tell us your first name or how you want to be called + +Most people on the mailing list like to call each other and to be +called using their first name, or sometimes a nickname. So that's how +we would like to call you. So let us know your firstname or how you +want to be called. + +Yeah, sometimes it seems obvious, but sometimes it's really not, as +for example in some countries people commonly have 4 different names, +in others they usually mention their first name after their last name +(instead of before), in yet others, first names are usually +abbreviated in non obvious ways, etc. + +So please make it clear. + +### Tell us the pronouns we should use + +Again, yeah, it's often obvious, but often it's not. So please tell us +if we should use "He/him/his", "She/her/her(s)", "They/them/their(s)", +or another pronoun to talk about you. + From 8bbcefcf0d8373db584d723179b8d701d524741b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 12 Oct 2022 22:41:05 +0200 Subject: [PATCH 0387/1248] Microproject Info: add sub section about requirements --- General-Microproject-Information.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index fdc507b662..f54928fea4 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -423,3 +423,11 @@ Again, yeah, it's often obvious, but often it's not. So please tell us if we should use "He/him/his", "She/her/her(s)", "They/them/their(s)", or another pronoun to talk about you. +### Confirm that you pass the requirements + +Programs like Outreachy or GSoC usually have requirements for +applicants. Sometimes applicants have to be accepted by the program +after they have shown they satisfy the requirements. + +In any case it's interesting for us to know soon how you currently +stand regarding the requirements and maybe the acceptance process. \ No newline at end of file From 20da29bbdf0749c5f58ccbf8b3ceaf28012aa513 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 12 Oct 2022 22:43:32 +0200 Subject: [PATCH 0388/1248] Microproject Info: add new line at end of file --- General-Microproject-Information.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index f54928fea4..f0351266d8 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -430,4 +430,4 @@ applicants. Sometimes applicants have to be accepted by the program after they have shown they satisfy the requirements. In any case it's interesting for us to know soon how you currently -stand regarding the requirements and maybe the acceptance process. \ No newline at end of file +stand regarding the requirements and maybe the acceptance process. From 306ae017be530c6ebf029cf535cbdd464d2ea27e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 13 Oct 2022 12:30:34 +0200 Subject: [PATCH 0389/1248] Microproject Info: add section about steps taken --- General-Microproject-Information.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index f0351266d8..31780f6de3 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -350,11 +350,11 @@ expected. Something like "I couldn't find a good micro-project for me", for example, doesn't tell us much, and doesn't give us any idea about how we could help you. -## Some conventions +## Some conventions and tips It can be intimidating to introduce yourself or send your first patch -to the mailing list, but we hope that the following conventions will -help you get properly started. +to the mailing list, but we hope that the following conventions and +tips will help you get properly started. ### Start your own email thread @@ -431,3 +431,17 @@ after they have shown they satisfy the requirements. In any case it's interesting for us to know soon how you currently stand regarding the requirements and maybe the acceptance process. + +### Tell us what steps you have already taken + +We can better help you and suggest the next steps for you to take if +we know what steps you have already taken. + +So if you have read this documentation, tell us. If you have already +started or finished a Git tutorial, tell us too. If you have only +built Git from source, tell us. If you have already sent patches on +the Git mailing list to improve Git, tell us. + +We don't need to know about the computer science knowledge or C or +shell language programming experience you have, but telling us where +you are regarding developing Git is definitively helpful. From c3820ad0c3d1380cc011d5817fed301c1ad9bb90 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Wed, 19 Oct 2022 08:31:57 +0200 Subject: [PATCH 0390/1248] RevNews: add a link to the recorded GitMerge '22 talks Signed-off-by: Johannes Schindelin --- README.md | 1 - rev_news/drafts/edition-92.md | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 120000 README.md diff --git a/README.md b/README.md deleted file mode 120000 index 555cdc1cb5..0000000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -_includes/README.md \ No newline at end of file diff --git a/rev_news/drafts/edition-92.md b/rev_news/drafts/edition-92.md index 998697f820..af7cd92e7a 100644 --- a/rev_news/drafts/edition-92.md +++ b/rev_news/drafts/edition-92.md @@ -40,6 +40,7 @@ This edition covers what happened during the month of October 2022. __Various__ ++ The recorded talks of GitMerge 2022 [are now live](https://www.youtube.com/playlist?list=PL0lo9MOBetEGEAs1D28ExRQONnX-uZ3Wf). __Light reading__ From 3e1a17f0bcbb36bea07a70b29d0089150dd12907 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 19 Oct 2022 14:25:10 +0200 Subject: [PATCH 0391/1248] rn-92: add Dscho among the helpers --- rev_news/drafts/edition-92.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-92.md b/rev_news/drafts/edition-92.md index af7cd92e7a..1871d2a293 100644 --- a/rev_news/drafts/edition-92.md +++ b/rev_news/drafts/edition-92.md @@ -58,4 +58,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Johannes Schindelin. From 20d0d98b1853147d994f0de4b8b369106f14a736 Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena <94545831+utkarsh006@users.noreply.github.com> Date: Thu, 20 Oct 2022 00:27:40 +0530 Subject: [PATCH 0392/1248] Create README.md --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000000..009beedf9a --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +## git.github.io + +- This Repo contains Soc and Outreachy projects of past years. + +
    + +![Github Repo Size](https://img.shields.io/github/repo-size/git/git.github.io?style=for-the-badge&color=yellow) + +
    + +## Contributors + + + + From 421c3d265552a19d2de8bc58b0321cffb1e3a7cb Mon Sep 17 00:00:00 2001 From: Utkarsh Saxena <94545831+utkarsh006@users.noreply.github.com> Date: Thu, 20 Oct 2022 15:17:43 +0530 Subject: [PATCH 0393/1248] Update README.md --- README.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 009beedf9a..ae4fecf457 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,15 @@ -## git.github.io +## Git Developer Pages + +- This is a website for information on Git development. If you stumbled into this by mistake, you may want: + - Information on running Git and links to download the latest version from [HERE](https://git-scm.com/) + - Wiki that has historically contained developer information from [HERE](https://git.wiki.kernel.org/index.php/Main_Page) + +- These pages are intended to collect information useful to Git developers. This is also the web home of: + - [Git Rev News newsletter](https://git.github.io/rev_news/) + - the [involvement of the Git project in mentoring programs](https://git.github.io/General-Application-Information/) like [Outreachy](https://www.outreachy.org/) and the [GSoC (Google Summer of Code)](https://summerofcode.withgoogle.com/) + +- These pages are intended to be edited collaboratively (i.e., it is an alternative to us having a wiki, but one that is edited entirely via Git pushes). -- This Repo contains Soc and Outreachy projects of past years.
    @@ -8,8 +17,10 @@
    -## Contributors +

    See our Contributors 😄

    + +
    From 2d11d0166fb52bba1659b1c7e420c49fd4a7cf4c Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Thu, 20 Oct 2022 11:48:54 +0100 Subject: [PATCH 0394/1248] rn-92: Add new Tower release and Light Reading --- rev_news/drafts/edition-92.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rev_news/drafts/edition-92.md b/rev_news/drafts/edition-92.md index 1871d2a293..dba0e67c96 100644 --- a/rev_news/drafts/edition-92.md +++ b/rev_news/drafts/edition-92.md @@ -35,6 +35,7 @@ This edition covers what happened during the month of October 2022. ## Releases ++ Tower for Windows [4.0](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) ([blog post](https://www.git-tower.com/blog/tower-windows-4/)) ## Other News @@ -44,6 +45,9 @@ __Various__ __Light reading__ ++ [Setting Up GPG on Windows (The Easy Way)](https://www.git-tower.com/blog/setting-up-gpg-windows/) by Bruno Brito on Tower’s blog. ++ [Our Favorite Tower Features](https://blog.kaleidoscope.app/2022/10/18/our-l33t-tower-features/) by Florian Albrecht on Kaleidoscope's blog. + From f962fec13636dc268f81b56d6114b40ef5dd5ece Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Tue, 25 Oct 2022 20:55:38 +0200 Subject: [PATCH 0395/1248] rn-92: Add links to various news, articles, services, and tools --- rev_news/drafts/edition-92.md | 56 ++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-92.md b/rev_news/drafts/edition-92.md index dba0e67c96..4bf793422f 100644 --- a/rev_news/drafts/edition-92.md +++ b/rev_news/drafts/edition-92.md @@ -37,16 +37,46 @@ This edition covers what happened during the month of October 2022. + Tower for Windows [4.0](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) ([blog post](https://www.git-tower.com/blog/tower-windows-4/)) + ## Other News -__Various__ +__Events__ + The recorded talks of GitMerge 2022 [are now live](https://www.youtube.com/playlist?list=PL0lo9MOBetEGEAs1D28ExRQONnX-uZ3Wf). ++ The summary of GitMerge 2022 can be found in the + [Git Merge 2022 – that’s a wrap!](https://github.blog/2022-10-21-git-merge-2022-mission-report/) + blog post by Lee Reilly on the GitHub Blog. + + +__Various__ + ++ [Git security vulnerabilities announced](https://github.blog/2022-10-18-git-security-vulnerabilities-announced/) + (CVE-2022-39253, and CVE-2022-39260) that affect Git's [`--local` clone optimization](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---local) + (important when cloning with `--recurse-submodules` from untrusted repositories) + and [`git shell`'s interactive command mode](https://git-scm.com/docs/git-shell#_interactive_useA). + Fixed in Git 2.38.1. ++ [Highlights from Git 2.38](https://github.blog/2022-10-03-highlights-from-git-2-38/) + by Taylor Blau on GitHub Blog.
    + See also [Git 2.38 Adds Microsoft's "Scalar" Repository Management Tool](https://www.phoronix.com/news/Git-2.38-Released) + by Michael Larabel on Phoronix. ++ [Cybernews research team discovered millions of `.git` folders exposed to public](https://cybernews.com/security/millions-git-folders-exposed/). + __Light reading__ + [Setting Up GPG on Windows (The Easy Way)](https://www.git-tower.com/blog/setting-up-gpg-windows/) by Bruno Brito on Tower’s blog. + [Our Favorite Tower Features](https://blog.kaleidoscope.app/2022/10/18/our-l33t-tower-features/) by Florian Albrecht on Kaleidoscope's blog. ++ [The Story of Scalar](https://github.blog/2022-10-13-the-story-of-scalar/) + by Derrick Stolee and Victoria Dye on GitHub Blog. ++ Literally the smallest changeset possible created: + [Fix: remove a ZERO WIDTH NO-BREAK SPACE in front of an inline literal](https://github.com/spyder-ide/spyder-docs/pull/332). ++ [VS Code "Timeline" feature — Your local version control system](https://www.amitmerchant.com/vs-code-timeline-your-local-version-control-system/) + by Amit Merchant. ++ [Turn around your Git mistakes in 17 ways](https://dev.to/smitterhane/turn-around-your-git-mistakes-in-17-ways-2mn1) + by Smitter hane on DEV\.to. ++ [GitHub's Missing Merge Option](https://tylercipriani.com/blog/2022/09/30/githubs-missing-merge-option/) + by Tyler Cipriani, and the conflict between + team “git log should be clean” vs. team “git log should have an accurate history.” + +* [Git participated in GSoC (Google Summer of Code) 2022](https://summerofcode.withgoogle.com/programs/2022/organizations/git) + + The following contributors have successfully passed their final + evaluation and published a final report: + + - Shaoxuan Yuan worked on the + [More Sparse Index Integrations project](https://ffyuanda.github.io/blog/GSoC-final-blog/) + project. He was co-mentored by Derrick Stolee and Victoria Dye. + + - Abhradeep Chakraborty worked on the + [Reachability bitmap improvements](https://medium.com/@abhra303/gsoc-final-report-feaaacfae737) + project. He was co-mentored by Kaartic Sivaraam and Taylor Blau. + + Also Siddharth Asthana successfully participated in GSoC 2022 for + GitLab (instead of Git) and contributed to Git as part of his work on the + [Add Support for Mailmap](https://gitlab.com/groups/gitlab-org/-/epics/8765) + project. He was co-mentored by John Cai and Christian Couder. + + Congratulations to these contributors and their mentors! + + +* [[PATCH] fuzz: add basic fuzz testing for git command](https://lore.kernel.org/git/pull.1351.git.1663078962231.gitgitgadget@gmail.com/) + + Arthur Chan sent a patch to add basic fuzz testing to Git. The patch + added a set of helper functions in some `fuzz-cmd-base.{h,c}` files + and an demonstration entry point (called fuzzing target) for + [LibFuzzer](https://llvm.org/docs/LibFuzzer.html) or similar tools + to inject fuzzed data into `git status` in a `fuzz-cmd-status.c` + file. + + Ævar Arnfjörð Bjarmason replied to Arthur. He suggested coding style + improvements to better match our style as well as taking a look at + the infrastructure code we already have for fuzzing. He also + suggested moving all the new infrastructure in the `t/` directory + where we have our tests and where we use shell scripts, so that the + infrastructure code could perhaps avoid using system(3) calls to + launch shell commands. + + Arthur replied that he couldn't find existing infrastructure code + for fuzzing and that he was confused about avoiding the system(3) + calls as they were needed to reset the state of the repo after each + round of fuzzing. + + Junio Hamano, the Git maintainer, also replied to Arthur saying + that, before adding new fuzzing infrastructure, existing one should + be moved into a new `fuzz/` directory. Junio also suggested some + coding style improvements and commented on possible performance and + correctness issues. + + Arthur replied to Junio that he implemented the suggested changes in + a version 2 of the patch that he was preparing, and then sent this + [version 2](https://lore.kernel.org/git/pull.1351.v2.git.1663349383852.gitgitgadget@gmail.com/) + to the mailing list. + + This version of this patch indeed moved some existing + `fuzz-commit-graph.c`, `fuzz-pack-headers.c` and `fuzz-pack-idx.c` + files into a new `oss-fuzz` directory. The patch still added the new + fuzzing infrastructure that was in the previous version, though a lot + of the issues that had been pointed out were fixed. + + Junio replied that it was better to have the "cleaning up of + existing stuff" and "addition of new stuff" into two separate + patches instead of everything in the same one. + + Arthur agreed to split the moving of the existing fuzzing + infrastructure into + [a separate preparatory patch](https://lore.kernel.org/git/pull.1353.git.1663355009333.gitgitgadget@gmail.com/) + called "fuzz: reorganise the path for existing oss-fuzz fuzzers" + that he later sent to the mailing list. + + Junio reviewed the preparatory patch and found that some changes to + the `.gitignore` file were likely missing. He also asked how the + fuzzing should be launched. + + Arthur replied agreed that changing the `.gitignore` file was needed + and said that he got privately in touch with people from + [oss-fuzz targeting Git](https://github.com/google/oss-fuzz/tree/master/projects/git) + who had implemented the existing fuzzing. He also said that a + dockerfile and build script prepared for Git would launch the + fuzzing. + + Arthur then sent a + [version 2 of the preparatory patch](https://lore.kernel.org/git/pull.1353.v2.git.1663457311149.gitgitgadget@gmail.com/) + with a few small fixes and the `.gitignore` changes that Junio + suggested. Soon after he sent a + [version 3](https://lore.kernel.org/git/pull.1353.v3.git.1663542495094.gitgitgadget@gmail.com/) + with very changes compared to the version 2. + + Ævar replied to this new version suggesting some commit message + improvements to better explain the patch purpose as well as creating + `oss-fuzz/.gitignore` instead of changing the `.gitignore` file at + the root of the repository. + + Arthur sent a + [version 4](https://lore.kernel.org/git/pull.1353.v4.git.1663598215154.gitgitgadget@gmail.com/) + with the suggested changes. + + Junio commented a bit on how to make sure people get Cc'ed in the + emails sent by [GitGitGadget](https://gitgitgadget.github.io/) but + was happy with the patch itself which has since been merged into the + `master` branch. + + We are looking forward to even more fuzzing infrastructure + improvements in the near future. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From c7ce9281148fa267e1c090a645d3875e07569dd6 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Thu, 3 Nov 2022 23:36:33 +0100 Subject: [PATCH 0408/1248] Fixed a micro-tiny formatting style issue before sending out the mail. --- _posts/2022-10-31-edition-92.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2022-10-31-edition-92.markdown b/_posts/2022-10-31-edition-92.markdown index 5f2e6a08fb..f5225a7ada 100644 --- a/_posts/2022-10-31-edition-92.markdown +++ b/_posts/2022-10-31-edition-92.markdown @@ -178,9 +178,9 @@ __Various__ and [`git shell`'s interactive command mode](https://git-scm.com/docs/git-shell#_interactive_useA). Fixed in Git 2.38.1. + [Highlights from Git 2.38](https://github.blog/2022-10-03-highlights-from-git-2-38/) - by Taylor Blau on the GitHub Blog.
    - See also [Git 2.38 Adds Microsoft's "Scalar" Repository Management Tool](https://www.phoronix.com/news/Git-2.38-Released) - by Michael Larabel on Phoronix. + by Taylor Blau on the GitHub Blog. + + See also [Git 2.38 Adds Microsoft's "Scalar" Repository Management Tool](https://www.phoronix.com/news/Git-2.38-Released) + by Michael Larabel on Phoronix. + [Cybernews research team discovered millions of `.git` folders exposed to public](https://cybernews.com/security/millions-git-folders-exposed/). + A [Code Review Handbook](https://www.sledgeworx.io/code-review-handbook/) published by Sledgeworx Software. From b75d497c4c6a988371a6fc1bb00aabc5ec45ad0b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 12 Nov 2022 10:54:27 +0100 Subject: [PATCH 0409/1248] Hacking-Git: add news and events info --- Hacking-Git.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Hacking-Git.md b/Hacking-Git.md index 943d537500..0c8258e348 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -72,11 +72,19 @@ suggest improvements. Thanks! * [git-related](https://github.com/felipec/git-related) finds people who might be interested in a patch. -## Development status +## Development status, news and events * [Junio's "What's cooking in git.git" emails](https://lore.kernel.org/git/?q=s%3A%22What%27s+cooking+in+git.git%22) list the status of various development topics. -* [Git's release calendar](https://tinyurl.com/gitCal) shows the planned release cycles, and the maintainer's planned offline time. +* [Git's release calendar](https://tinyurl.com/gitCal) shows the planned release cycles, the maintainer's planned offline time, the Review Club meetings and possibly other events. + +* [Git Rev News](https://git.github.io/rev_news/archive/) newsletter. + +* [Git Merge conference](https://git-merge.com/). + +* [Review Club announces and discussions on the list](https://lore.kernel.org/git/?q=s%3A%22Review+Club%22). + +* [Discussions about Contributor(s) Summits on the list](https://lore.kernel.org/git/?q=s%3AContributor*+Summit) ## Branching workflow From acb979d532f36fb0a3c1c8c873ae60efcd3b25db Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 12 Nov 2022 11:08:10 +0100 Subject: [PATCH 0410/1248] index: add Hacking Git info --- index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/index.md b/index.md index d2311980a4..4e98867f36 100644 --- a/index.md +++ b/index.md @@ -18,6 +18,7 @@ stumbled into this by mistake, you may want: These pages are intended to collect information useful to Git developers. This is also the web home of: + - the [Hacking Git](https://git.github.io/Hacking-Git/) page, - the [Git Rev News newsletter](https://git.github.io/rev_news/), - the [involvement of the Git project in mentoring programs](https://git.github.io/General-Application-Information/) like [Outreachy](https://www.outreachy.org/) and the From 75bdfef85f43caf67f582933d5ce46e79aa35361 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 12 Nov 2022 11:08:38 +0100 Subject: [PATCH 0411/1248] README: add Hacking Git info --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ae4fecf457..1ea95e5396 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ - Wiki that has historically contained developer information from [HERE](https://git.wiki.kernel.org/index.php/Main_Page) - These pages are intended to collect information useful to Git developers. This is also the web home of: - - [Git Rev News newsletter](https://git.github.io/rev_news/) + - the [Hacking Git](https://git.github.io/Hacking-Git/) page, + - the [Git Rev News newsletter](https://git.github.io/rev_news/), - the [involvement of the Git project in mentoring programs](https://git.github.io/General-Application-Information/) like [Outreachy](https://www.outreachy.org/) and the [GSoC (Google Summer of Code)](https://summerofcode.withgoogle.com/) - These pages are intended to be edited collaboratively (i.e., it is an alternative to us having a wiki, but one that is edited entirely via Git pushes). From 66ff368f3ae71b0306d76d9865e9c957634d4a02 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 12 Nov 2022 11:25:28 +0100 Subject: [PATCH 0412/1248] Hacking-Git: add Review Club notes link --- Hacking-Git.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index 0c8258e348..d8fe547873 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -84,6 +84,8 @@ suggest improvements. Thanks! * [Review Club announces and discussions on the list](https://lore.kernel.org/git/?q=s%3A%22Review+Club%22). +* [Review Club meeting notes](https://docs.google.com/document/d/14L8BAumGTpsXpjDY8VzZ4rRtpAjuGrFSRqn3stCuS_w) Google doc. + * [Discussions about Contributor(s) Summits on the list](https://lore.kernel.org/git/?q=s%3AContributor*+Summit) ## Branching workflow From 193d0f9b47ccc712626eba0b80fa297beb21e2f9 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 22 Nov 2022 00:03:54 +0530 Subject: [PATCH 0413/1248] rn-93: add interview with Bagas Sanjaya --- rev_news/drafts/edition-93.md | 91 +++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-93.md b/rev_news/drafts/edition-93.md index 96c0bb2dfe..ae5e0acbea 100644 --- a/rev_news/drafts/edition-93.md +++ b/rev_news/drafts/edition-93.md @@ -29,9 +29,94 @@ This edition covers what happened during the month of October 2022. ### Support --> - +## Developer Spotlight: Bagas Sanjaya + +* Who are you and what do you do? + + I'm Bagas Sanjaya. I'm currently unemployed (due to my autistic condition + that makes working formally isn't the nice option for me). + +* What would you name your most important contribution to Git? + + Adding `INSTALL_STRIP` variable when installing Git from source (with + help from other Git developers due to lack of coding experience). + +* For the benefit of the readers, is it possible for you to elaborate a + bit on what the `INSTALL_STRIP` variable would help them with ? + + Typically users install Git from binary package provided by the + distribution. For those who wish to install from source, they can + install build-time dependencies first, then simply do `make && make install`. + However, it will install Git binaries with debugging info, which + can take a lot of space. In addition, many Unix systems have `install(1)` + that have option to automatically strip debugging info during + installion. That's why `INSTALL_STRIP` is introduced; if supported, + users can run `make INSTALL_STRIP=-s install` to install + stripped binaries. + +* What are you doing on the Git project these days, and why? + + I'm mostly translating po strings in recent days. Otherwise I'm hacking + on Linux kernel documentation. + +* 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? + + As an autistic man, I'd like to meet developers who can accomodate my + special needs (often different from neurotypical people) so that I + can thrive my living. + +* _It is good to know that you would like to meet compassionate developers. + Is it possible for you expand a bit on what you would like to change / + enhance in Git when you get a team of such developers for a year ?_ + + I think more on communication. Sure, communicating with email make life + easier for autistic developers (less physical interaction). However, + autistic people have different ways of communicating. For me, I need + a lot of time to process the information from mailing list and formulate + the wording (which is due to ADHD comorbid). Thus, the community + expectation should have been adapted to individual needs, e.g. by being + more explicit on explanation of code of conduct when a new developer + is contributing. If he/she doesn't understand the CoC, he/she can + proactively ask the community about points that don't understand. + + In summary, besides adaptation from the community, there must be + initiatives from developers themselves. + +* What is your favorite Git-related tool/library, outside of Git + itself? + + Gitea. I deployed the server application to the LXD instance on my + laptop as repository mirror when I push my favorite repos there. + +* You have experience translating for Git. Is there something that + could be done differently to aid with the translation effort? + + I think we need something like self-hosted Weblate when anyone + with translation skill can easily submit translated strings. But honestly + deploying one is tricky; I tried to deploy Weblate but couldn't get strings + from Git source code to be available for translating on the interface. + +* How does your mailing list workflow look like? + + Simplicistic. After configuring `git send-email` to send through outgoing + relay of your mail provider and your email clients to send plain text + email, unaltered (no line wrapping, intact tabs and spaces), you can + contribute by sending patches with the former and reviewing with the + latter. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + You need to find a joy in application development. If it doesn't makes + you enjoy, you may need to take a break or find something else. + +* If there's one tip you would like to share with other Git + developers, what would it be? + + As autistic, special interest fascinates me. You need to find one + in this project, while staying up-to-date with general picture. + ## Releases From 7f98d06130391cb97135034b2e1836b62c1e7391 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 22 Nov 2022 00:06:02 +0530 Subject: [PATCH 0414/1248] rn-93: remove inconsistent italics in question --- rev_news/drafts/edition-93.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-93.md b/rev_news/drafts/edition-93.md index ae5e0acbea..bee71e61e2 100644 --- a/rev_news/drafts/edition-93.md +++ b/rev_news/drafts/edition-93.md @@ -66,9 +66,9 @@ This edition covers what happened during the month of October 2022. special needs (often different from neurotypical people) so that I can thrive my living. -* _It is good to know that you would like to meet compassionate developers. +* It is good to know that you would like to meet compassionate developers. Is it possible for you expand a bit on what you would like to change / - enhance in Git when you get a team of such developers for a year ?_ + enhance in Git when you get a team of such developers for a year ? I think more on communication. Sure, communicating with email make life easier for autistic developers (less physical interaction). However, From 33bcf1c33521101a5ed31da8784ff320e581ced1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 23 Nov 2022 00:44:24 +0100 Subject: [PATCH 0415/1248] rn-93: Add links to various articles and tools --- rev_news/drafts/edition-93.md | 81 +++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/rev_news/drafts/edition-93.md b/rev_news/drafts/edition-93.md index bee71e61e2..8c7dd00c89 100644 --- a/rev_news/drafts/edition-93.md +++ b/rev_news/drafts/edition-93.md @@ -128,12 +128,93 @@ __Various__ __Light reading__ ++ [Working with stacked branches in Git is easier with `--update-refs`](https://andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs/) + (an option which was included in Git 2.38, in October 2022), + by Andrew Lock on his blog, .NET Escapades. ++ [Bringing revsets to Git](https://blog.waleedkhan.name/bringing-revsets-to-git/) + by Waleed Khan (@arxanas), describes how one can use + [git-branchless](https://github.com/arxanas/git-branchless) suite of tools + (mentioned in [Git Rev News Edition #76](https://git.github.io/rev_news/2021/06/27/edition-76/) + and [#90](https://git.github.io/rev_news/2021/10/30/edition-80/)) + and [Mercurial's revset notation](https://www.mercurial-scm.org/repo/hg/help/revsets) + to form complex queries about repo, and to display their results (for example in a graph view), + how to rebase changes using "patch-stack" workflow, and how to help with testing. ++ [Sapling: Source control that’s user-friendly and scalable](https://engineering.fb.com/2022/11/15/open-source/sapling-source-control-scalable/) + by Durham Goode on Engineering at Meta (Facebook) blog. + At this point, only the client side of the system has been released.
    + You can find some comments about it at: + + [Meta's Sapling source-code management system [LWN.net]](https://lwn.net/Articles/915104/) + + [Sapling: A new source control system with Git-compatible client | Hacker News](https://news.ycombinator.com/item?id=33612410&utm_term=comment) ++ [Git evolve: tracking changes to changes](https://lwn.net/Articles/914041/) + by Jonathan Corbet on LWN.net. ++ [Using gitStream for 'Continuous Merge': automatically approving safe PRs, + assigning reviewers, estimating review time, and more](https://blog.jakelee.co.uk/using-gitstream-to-improve-pr-workflow/) + by Jake Lee on his blog. + ++ [My favorite Git tools](https://opensource.com/article/22/11/git-tools) + by Dwayne McDaniel on Opensource\.com. ++ [Git concepts in less than 10 minutes](https://opensource.com/article/22/11/git-concepts) + by Dwayne McDaniel on Opensource\.com. ++ [#gitPanic - Interactive Rebase](https://dev.to/abbeyperini/gitpanic-interactive-rebase-48fe) + by Abbey Perini on DEV\.to (part of [gitPanic series](https://dev.to/abbeyperini/series/20421)). ++ [Top 12 Advanced Git Commands To Know](https://blog.openreplay.com/top-dozen-advanced-git-commands-to-know/) + by El-Glory Oriabure on OpenReplay blog, with admittedly some pretty basic commands + in there. ++ [Light Git repository checkout](https://github.polettix.it/ETOOBUSY/2022/10/26/light-git-pwc/) + with [`git sparse-checkout`](https://www.git-scm.com/docs/git-sparse-checkout) + by Flavio Poletti (@polletix) on his ETOOBUSY blog. ++ [The Perfect Commit](https://simonwillison.net/2022/Oct/29/the-perfect-commit/) + by Simon Willison on his Weblog. ++ [New git guidelines: We have switched to Conventional Commits](https://happy-coding.visuellverstehen.de/posts/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c) + by Malte Riechmann for visuellverstehen on Happy Coding blog + (post is also available on [DEV.to](https://dev.to/visuellverstehen/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c)). + [Conventional Commits](https://www.conventionalcommits.org/) specification + was first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). + ++ Jakub Kozłowski [tweeted](https://twitter.com/kubukoz/status/1590135952886075393) + that git conflict markers are parsed as valid Scala code, though you need to add some + appropriate [definitions](https://gist.github.com/kubukoz/894b049b5c1747f17c1e052754640b32), + now available as a [scala-git-markers library](https://github.com/polyvariant/scala-git-markers), + for it to run ;-). Explained in more detail in his [video on YouTube](https://www.youtube.com/watch?v=rSk_mea4U1E). + __Git tools and sites__ ++ [Sapling SCM](https://sapling-scm.com/) is a scalable, user-friendly + source control system that supports cloning and interacting with Git repositories, + and can be used by individual developers to work with GitHub + and other Git hosting services. ++ [Stacked Git](https://stacked-git.github.io/), **StGit** for short, + is an application for managing Git commits as a stack of patches + (with first release in 2005, it is almost as old as Git itself). + StGit was mentioned by Yann Dirson in [Git Rev News Edition #74](https://git.github.io/rev_news/2021/04/30/edition-74/) + developer spotlight. ++ [Mergify](https://github.com/brooksdavis/mergify) is a tool + to merge changes from a branch one commit at a time, + most useful when merging changes to a highly diverged fork of a project. + + Note that there is also [Mergify.com](https://mergify.com/), mentioned in + [Git Rev News Edition #87](https://git.github.io/rev_news/2022/05/26/edition-87/), + is free for open-source projects web service for automatizing pull requests + and securing the code merge using a merge queue. ++ [git-mergify-rebase](https://github.com/CTSRD-CHERI/git-mergify-rebase) + is a replacement for mergify, written using `git rebase` for better performance, + supporting most of features of the original. ++ [Nx](https://nx.dev/) is next generation build system for Node\.js, + with first class monorepo support and various integrations. + Listed in the tools section of [Monorepo.tools](https://monorepo.tools/) + (which site was mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [gitStream](https://gitstream.cm/) by LinearB, is a GitHub app + that aims to improve the pull request review process. + ++ [tweets](https://github.com/diracdeltas/tweets) + is @bcrypt's janky twitter "replacement", + using Git commit messages and GitHub for "microblogging"; + see the [announcement on Twitter](https://twitter.com/bcrypt/status/1588416861552582657) ;-). + Written as set of Bash scripts and a Makefile. + ## Credits From 801f4823479914b533a416fa8bdfa160ba5c7184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 24 Nov 2022 12:52:01 +0100 Subject: [PATCH 0416/1248] rn-93: Add free preview link for LWN.net article This was added so one doesn't need to be LWN.net subscriber, or wait out the embargo until Dec 1, 2022. --- rev_news/drafts/edition-93.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-93.md b/rev_news/drafts/edition-93.md index 8c7dd00c89..862a99325c 100644 --- a/rev_news/drafts/edition-93.md +++ b/rev_news/drafts/edition-93.md @@ -146,6 +146,7 @@ __Light reading__ + [Meta's Sapling source-code management system [LWN.net]](https://lwn.net/Articles/915104/) + [Sapling: A new source control system with Git-compatible client | Hacker News](https://news.ycombinator.com/item?id=33612410&utm_term=comment) + [Git evolve: tracking changes to changes](https://lwn.net/Articles/914041/) + ([free preview link](https://lwn.net/SubscriberLink/914041/fcffc20089b907b0/)) by Jonathan Corbet on LWN.net. + [Using gitStream for 'Continuous Merge': automatically approving safe PRs, assigning reviewers, estimating review time, and more](https://blog.jakelee.co.uk/using-gitstream-to-improve-pr-workflow/) From ee375e9abb723771a7fe1572b10982d5b0a7911f Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Fri, 25 Nov 2022 12:40:37 +0000 Subject: [PATCH 0417/1248] Add some light reading suggestions and Tower 9.1 --- rev_news/drafts/edition-93.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-93.md b/rev_news/drafts/edition-93.md index 862a99325c..be0541ea4d 100644 --- a/rev_news/drafts/edition-93.md +++ b/rev_news/drafts/edition-93.md @@ -119,7 +119,7 @@ This edition covers what happened during the month of October 2022. ## Releases - ++ Tower for Mac [9.1](https://www.git-tower.com/release-notes/mac?show_tab=release-notes) ## Other News @@ -177,6 +177,9 @@ __Light reading__ appropriate [definitions](https://gist.github.com/kubukoz/894b049b5c1747f17c1e052754640b32), now available as a [scala-git-markers library](https://github.com/polyvariant/scala-git-markers), for it to run ;-). Explained in more detail in his [video on YouTube](https://www.youtube.com/watch?v=rSk_mea4U1E). + ++ [How to Write the Perfect Commit Message](https://www.git-tower.com/blog/how-to-write-the-perfect-commit-message/) by Bruno Brito on Tower’s blog. ++ [Why You Should Use a Git Client](https://dev.to/brunobrito/why-you-should-use-a-git-client-2dpe) by Bruno Brito on dev.to. @@ -249,4 +249,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bagas Sanjaya. +with help from Bagas Sanjaya and Bruno Brito. From 331fb76f5b65d1ab264e3fb0f9398d2433346037 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Mon, 28 Nov 2022 17:01:25 +0100 Subject: [PATCH 0421/1248] rn-93: add Shaoxuan Yuan's internship wanted --- rev_news/drafts/edition-93.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rev_news/drafts/edition-93.md b/rev_news/drafts/edition-93.md index 3746f1231b..7f81c0c02b 100644 --- a/rev_news/drafts/edition-93.md +++ b/rev_news/drafts/edition-93.md @@ -147,6 +147,12 @@ This edition covers what happened during the month of October 2022. __Various__ ++ Shaoxuan Yuan, + [who participated in the GSoC 2022](https://ffyuanda.github.io/blog/GSoC-final-blog/), + is looking for a full time internship from mid-June 2023 to October + 2023 or a part-time one starting now. See + [his resume](https://github.com/git/git.github.io/files/9995808/Resume_Shaoxuan_Yuan.pdf) + for more information. __Light reading__ From 28e1576e23cd423c33233abef63c29b1cfb3748c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 29 Nov 2022 20:29:19 +0100 Subject: [PATCH 0422/1248] rn-93: add archive submodules article --- rev_news/drafts/edition-93.md | 55 +++++++++++++++++++++++++++++++++-- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-93.md b/rev_news/drafts/edition-93.md index 7f81c0c02b..7e5ad40ad7 100644 --- a/rev_news/drafts/edition-93.md +++ b/rev_news/drafts/edition-93.md @@ -21,9 +21,60 @@ This edition covers what happened during the month of October 2022. ### General --> - + +* [[PATCH] archive: add --recurse-submodules to git-archive command](https://lore.kernel.org/git/pull.1359.git.git.1665597148042.gitgitgadget@gmail.com/) + + Last October Heather Lapointe sent a patch to the mailing list that + enabled `git archive` to also include submodule contents in the + archives it produces. + + She said she was inspired by + [a GitHub issue more than 160 upvotes](https://github.com/dear-github/dear-github/issues/214) + and thought the implementation wouldn't be too difficult as most of + the plumbing was already in place. + + One of the trickier parts was changing the read_tree() function to + support other repos than the current one by not using the + `the_repository` global variable. + + Heather soon sent + [a version 2 patch series](https://lore.kernel.org/git/pull.1359.v2.git.git.1665660960.gitgitgadget@gmail.com/). + This patch series contained only 2 patches. The first one was + identical to the one previously sent, while the second one fixed a + submodule traversal bug in read_tree() introduced by the first + patch. + + René Scharfe replied to Heather, noticing that the cover letter of + the patch series had a TODO list with a number of items, most of + which seemingly already addressed. As the stats in the cover letter + showed 16 files changed, 269 insertions, 96 deletions, he said it + was a bit much for a few patches, and suggested to split them. + + Heather replied to René that the TODO list came from GitGitGadget. + And René found that this tool was using an + [html-to-text converter](https://github.com/html-to-text/node-html-to-text) + that [doesn't handle checkboxes nicely by default](https://github.com/html-to-text/node-html-to-text/issues/260). + René and Heather then discussed how to split the patches, and a bit + how the first patch was implemented. + + Heather then sent + [a version 3 of her patch series](https://lore.kernel.org/git/pull.1359.v3.git.git.1665973401.gitgitgadget@gmail.com/) + that split her previous patch series into 8 patches. + + Junio Hamano, the Git maintainer, along with Glen Choo, Jonathan + Tan, Phillip Wood and Ævar Arnfjörð Bjarmason all commented on some + of the patches in this series and suggested small improvements. + + The Review Club [selected this patch series](https://lore.kernel.org/git/kl6l35bbsubq.fsf@chooglen-macbookpro.roam.corp.google.com/) + to be reviewed by participants on Wednesday October 26, and + participants generally agreed that "this is a really well-structured + and easy-to-follow series :) and that "as far as new contributions go, + this is really good". + + Unfortunately it looks like Heather has been swamped with her own + work and didn't have time to send a new version yet. Hopefully + though we will get this very request feature soon. @@ -89,19 +91,19 @@ This edition covers what happened during the month of October 2022. * What would you name your most important contribution to Git? - Adding `INSTALL_STRIP` variable when installing Git from source (with + Adding the `INSTALL_STRIP` variable when installing Git from source (with help from other Git developers due to lack of coding experience). * For the benefit of the readers, is it possible for you to elaborate a - bit on what the `INSTALL_STRIP` variable would help them with ? + bit on what the `INSTALL_STRIP` variable would help them with? Typically users install Git from binary package provided by the distribution. For those who wish to install from source, they can install build-time dependencies first, then simply do `make && make install`. However, it will install Git binaries with debugging info, which can take a lot of space. In addition, many Unix systems have `install(1)` - that have option to automatically strip debugging info during - installion. That's why `INSTALL_STRIP` is introduced; if supported, + that has an option to automatically strip debugging info during + installation. That's why `INSTALL_STRIP` is introduced; if supported, users can run `make INSTALL_STRIP=-s install` to install stripped binaries. @@ -113,23 +115,23 @@ This edition covers what happened during the month of October 2022. * 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? - As an autistic man, I'd like to meet developers who can accomodate my + As an autistic man, I'd like to meet developers who can accommodate my special needs (often different from neurotypical people) so that I can thrive my living. * It is good to know that you would like to meet compassionate developers. Is it possible for you expand a bit on what you would like to change / - enhance in Git when you get a team of such developers for a year ? + enhance in Git when you get a team of such developers for a year? - I think more on communication. Sure, communicating with email make life + I think more on communication. Sure, communicating with email makes life easier for autistic developers (less physical interaction). However, autistic people have different ways of communicating. For me, I need - a lot of time to process the information from mailing list and formulate - the wording (which is due to ADHD comorbid). Thus, the community + a lot of time to process the information from a mailing list and formulate + the wording (which is due to comorbid ADHD). Thus, the community expectation should have been adapted to individual needs, e.g. by being more explicit on explanation of code of conduct when a new developer is contributing. If he/she doesn't understand the CoC, he/she can - proactively ask the community about points that don't understand. + proactively ask the community about points that he/she doesn't understand. In summary, besides adaptation from the community, there must be initiatives from developers themselves. @@ -143,10 +145,10 @@ This edition covers what happened during the month of October 2022. * You have experience translating for Git. Is there something that could be done differently to aid with the translation effort? - I think we need something like self-hosted Weblate when anyone - with translation skill can easily submit translated strings. But honestly + I think we need something like self-hosted Weblate to enable anyone + with translation skills to easily submit translated strings. But honestly deploying one is tricky; I tried to deploy Weblate but couldn't get strings - from Git source code to be available for translating on the interface. + from Git source code to be available for translation on the interface. * How does your mailing list workflow look like? @@ -166,7 +168,7 @@ This edition covers what happened during the month of October 2022. developers, what would it be? As autistic, special interest fascinates me. You need to find one - in this project, while staying up-to-date with general picture. + in this project, while staying up-to-date with the general picture. ## Releases @@ -208,35 +210,34 @@ __Various__ __Light reading__ + [Working with stacked branches in Git is easier with `--update-refs`](https://andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs/) - (an option which was included in Git 2.38, in October 2022), - by Andrew Lock on his blog, .NET Escapades. + (an option which was included in Git 2.38, in October 2022) + by Andrew Lock on his blog, \.NET Escapades. + [Bringing revsets to Git](https://blog.waleedkhan.name/bringing-revsets-to-git/) - by Waleed Khan (@arxanas), describes how one can use + by Waleed Khan (@arxanas) describes how one can use the [git-branchless](https://github.com/arxanas/git-branchless) suite of tools (mentioned in [Git Rev News Edition #76](https://git.github.io/rev_news/2021/06/27/edition-76/) and [#90](https://git.github.io/rev_news/2022/08/31/edition-90/)) and [Mercurial's revset notation](https://www.mercurial-scm.org/repo/hg/help/revsets) - to form complex queries about repo, and to display their results (for example in a graph view), - how to rebase changes using "patch-stack" workflow, and how to help with testing. + to form complex queries about a repo, display their results (for example in a graph view), + rebase changes using "patch-stack" workflow, and improve testing. + [Sapling: Source control that’s user-friendly and scalable](https://engineering.fb.com/2022/11/15/open-source/sapling-source-control-scalable/) by Durham Goode on Engineering at Meta (Facebook) blog. At this point, only the client side of the system has been released.
    You can find some comments about it at: - + [Meta's Sapling source-code management system [LWN.net]](https://lwn.net/Articles/915104/) - + [Sapling: A new source control system with Git-compatible client | Hacker News](https://news.ycombinator.com/item?id=33612410&utm_term=comment) + + [Meta's Sapling source-code management system](https://lwn.net/Articles/915104/) on LWN.net. + + [Sapling: A new source control system with Git-compatible client](https://news.ycombinator.com/item?id=33612410&utm_term=comment) on Hacker News. + [Git evolve: tracking changes to changes](https://lwn.net/Articles/914041/) ([free preview link](https://lwn.net/SubscriberLink/914041/fcffc20089b907b0/)) by Jonathan Corbet on LWN.net. + [Using gitStream for 'Continuous Merge': automatically approving safe PRs, assigning reviewers, estimating review time, and more](https://blog.jakelee.co.uk/using-gitstream-to-improve-pr-workflow/) by Jake Lee on his blog. - + [My favorite Git tools](https://opensource.com/article/22/11/git-tools) by Dwayne McDaniel on Opensource\.com. + [Git concepts in less than 10 minutes](https://opensource.com/article/22/11/git-concepts) by Dwayne McDaniel on Opensource\.com. + [#gitPanic - Interactive Rebase](https://dev.to/abbeyperini/gitpanic-interactive-rebase-48fe) - by Abbey Perini on DEV\.to (part of [gitPanic series](https://dev.to/abbeyperini/series/20421)). + by Abbey Perini on DEV\.to (part of the [gitPanic series](https://dev.to/abbeyperini/series/20421)). + [Top 12 Advanced Git Commands To Know](https://blog.openreplay.com/top-dozen-advanced-git-commands-to-know/) by El-Glory Oriabure on OpenReplay blog, with admittedly some pretty basic commands in there. @@ -245,17 +246,15 @@ __Light reading__ by Flavio Poletti (@polletix) on his ETOOBUSY blog. + [The Perfect Commit](https://simonwillison.net/2022/Oct/29/the-perfect-commit/) by Simon Willison on his Weblog. -+ [New git guidelines: We have switched to Conventional Commits](https://happy-coding.visuellverstehen.de/posts/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c) - by Malte Riechmann for visuellverstehen on Happy Coding blog ++ [New Git guidelines: We have switched to Conventional Commits](https://happy-coding.visuellverstehen.de/posts/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c) + by Malte Riechmann for visuellverstehen on the Happy Coding blog. (post is also available on [DEV.to](https://dev.to/visuellverstehen/new-git-guidelines-we-have-switched-to-conventional-commits-1p0c)). - [Conventional Commits](https://www.conventionalcommits.org/) specification + The [Conventional Commits](https://www.conventionalcommits.org/) specification was first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). - + [How to Write the Perfect Commit Message](https://www.git-tower.com/blog/how-to-write-the-perfect-commit-message/) by Bruno Brito on Tower’s blog. + [Why You Should Use a Git Client](https://dev.to/brunobrito/why-you-should-use-a-git-client-2dpe) by Bruno Brito on dev.to. - + Jakub Kozłowski [tweeted](https://twitter.com/kubukoz/status/1590135952886075393) - that git conflict markers are parsed as valid Scala code, though you need to add some + that Git conflict markers are parsed as valid Scala code, though you need to add some appropriate [definitions](https://gist.github.com/kubukoz/894b049b5c1747f17c1e052754640b32), now available as a [scala-git-markers library](https://github.com/polyvariant/scala-git-markers), for it to run ;-). Explained in more detail in his [video on YouTube](https://www.youtube.com/watch?v=rSk_mea4U1E). @@ -272,26 +271,25 @@ __Git tools and sites__ and other Git hosting services. + [Stacked Git](https://stacked-git.github.io/), **StGit** for short, is an application for managing Git commits as a stack of patches - (with first release in 2005, it is almost as old as Git itself). - StGit was mentioned by Yann Dirson in [Git Rev News Edition #74](https://git.github.io/rev_news/2021/04/30/edition-74/) + (with its first release in 2005, it is almost as old as Git itself). + StGit was mentioned by Yann Dirson in the [Git Rev News Edition #74](https://git.github.io/rev_news/2021/04/30/edition-74/) developer spotlight. + [Mergify](https://github.com/brooksdavis/mergify) is a tool to merge changes from a branch one commit at a time, most useful when merging changes to a highly diverged fork of a project. + Note that there is also [Mergify.com](https://mergify.com/), mentioned in [Git Rev News Edition #87](https://git.github.io/rev_news/2022/05/26/edition-87/), - is free for open-source projects web service for automatizing pull requests + a web service free for open-source projects for automatizing pull requests and securing the code merge using a merge queue. + [git-mergify-rebase](https://github.com/CTSRD-CHERI/git-mergify-rebase) is a replacement for mergify, written using `git rebase` for better performance, supporting most of features of the original. -+ [Nx](https://nx.dev/) is next generation build system for Node\.js, ++ [Nx](https://nx.dev/) is a next generation build system for Node\.js, with first class monorepo support and various integrations. - Listed in the tools section of [Monorepo.tools](https://monorepo.tools/) - (which site was mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). -+ [gitStream](https://gitstream.cm/) by LinearB, is a GitHub app + Listed in the tools section of [monorepo.tools](https://monorepo.tools/), + a site mentioned in [Git Rev News Edition #84](https://git.github.io/rev_news/2022/02/28/edition-84/). ++ [gitStream](https://gitstream.cm/) by LinearB is a GitHub app that aims to improve the pull request review process. - + [tweets](https://github.com/diracdeltas/tweets) is @bcrypt's janky twitter "replacement", using Git commit messages and GitHub for "microblogging"; @@ -306,4 +304,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Bagas Sanjaya and Bruno Brito. +with help from Bagas Sanjaya, Bruno Brito, Glen Choo and René Scharfe. From bfe84121db9ff6c7555bd3b1f3aa284609710ae6 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 1 Dec 2022 16:54:46 +0100 Subject: [PATCH 0426/1248] Publish rn-93 in _posts/ --- .../drafts/edition-93.md => _posts/2022-12-01-edition-93.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-93.md => _posts/2022-12-01-edition-93.markdown (100%) diff --git a/rev_news/drafts/edition-93.md b/_posts/2022-12-01-edition-93.markdown similarity index 100% rename from rev_news/drafts/edition-93.md rename to _posts/2022-12-01-edition-93.markdown From 8367adda376e566dfeca56492267ca604a803f82 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 1 Dec 2022 16:54:46 +0100 Subject: [PATCH 0427/1248] Add draft for rn-94 --- rev_news/drafts/edition-94.md | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-94.md diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md new file mode 100644 index 0000000000..795948895e --- /dev/null +++ b/rev_news/drafts/edition-94.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 94 (December 28th, 2022) +layout: default +date: 2022-12-28 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 94 (December 28th, 2022) + +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). + +This edition covers what happened during the month of December 2022. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From ef08bad9f3d408f399737d855d7f84382b77050d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 1 Dec 2022 16:58:06 +0100 Subject: [PATCH 0428/1248] rn-93: change publication date to November 30th --- ...1-edition-93.markdown => 2022-11-30-edition-93.markdown} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename _posts/{2022-12-01-edition-93.markdown => 2022-11-30-edition-93.markdown} (99%) diff --git a/_posts/2022-12-01-edition-93.markdown b/_posts/2022-11-30-edition-93.markdown similarity index 99% rename from _posts/2022-12-01-edition-93.markdown rename to _posts/2022-11-30-edition-93.markdown index 05154b67b1..7005970557 100644 --- a/_posts/2022-12-01-edition-93.markdown +++ b/_posts/2022-11-30-edition-93.markdown @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 93 (November 23rd, 2022) +title: Git Rev News Edition 93 (November 30th, 2022) layout: default -date: 2022-11-23 12:06:51 +0100 +date: 2022-11-30 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 93 (November 23rd, 2022) +## Git Rev News: Edition 93 (November 30th, 2022) 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 From 37f63c762612925381b3b7d9c994ee79bb537b15 Mon Sep 17 00:00:00 2001 From: M Hickford Date: Thu, 1 Dec 2022 17:51:19 +0000 Subject: [PATCH 0429/1248] rn-94: tool git-credential-oauth --- rev_news/drafts/edition-94.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index 795948895e..e20fae1325 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -49,6 +49,7 @@ __Easy watching__ __Git tools and sites__ +* [git-credential-oauth](https://github.com/hickford/git-credential-oauth) is a Git credential helper that securely authenticates to GitHub, GitLab, BitBucket and other forges using OAuth. ## Credits From a97427d96290d4f879e25733e553958888bb0209 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 2 Dec 2022 17:20:07 +0100 Subject: [PATCH 0430/1248] rn-94: add Mirth Hickford among the helpers --- rev_news/drafts/edition-94.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index e20fae1325..a428b0c591 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -49,7 +49,9 @@ __Easy watching__ __Git tools and sites__ -* [git-credential-oauth](https://github.com/hickford/git-credential-oauth) is a Git credential helper that securely authenticates to GitHub, GitLab, BitBucket and other forges using OAuth. +* [git-credential-oauth](https://github.com/hickford/git-credential-oauth) + is a Git credential helper that securely authenticates to GitHub, + GitLab, BitBucket and other forges using OAuth. ## Credits @@ -58,4 +60,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Mirth Hickford. From 8f8c0a0293d7e108bc817c92b2943ecdcfcd8ae0 Mon Sep 17 00:00:00 2001 From: Philip Oakley Date: Thu, 1 Dec 2022 15:26:22 +0000 Subject: [PATCH 0431/1248] rn-94: add A Git Flow visualisation link Add it to the Easy watching section. An interesting use of a DAG based visualisation tool to show the Git Flow method. Signed-off-by: Philip Oakley --- _posts/2022-11-30-edition-93.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_posts/2022-11-30-edition-93.markdown b/_posts/2022-11-30-edition-93.markdown index 7005970557..9693619325 100644 --- a/_posts/2022-11-30-edition-93.markdown +++ b/_posts/2022-11-30-edition-93.markdown @@ -259,9 +259,8 @@ __Light reading__ now available as a [scala-git-markers library](https://github.com/polyvariant/scala-git-markers), for it to run ;-). Explained in more detail in his [video on YouTube](https://www.youtube.com/watch?v=rSk_mea4U1E). - ++ [Understanding Git Flow](https://www.youtube.com/watch?v=HrA_BbWUKRk): A look at the operations of Git Flow through the Flying Logic visualisation of the branches and release process. The channel also has Git visualisations of Collaboration, merge and rebase, detached HEAD, and 'What's a DAG'. __Git tools and sites__ From 6cf7fd5e9c84bebc673187e9b511e8e7a940039b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Thu, 8 Dec 2022 18:10:38 +0100 Subject: [PATCH 0432/1248] rn-94: make it cover both November and December --- rev_news/drafts/edition-94.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index a428b0c591..0619042ea0 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -13,7 +13,7 @@ Welcome to the 94th edition of [Git Rev News](https://git.github.io/rev_news/rev a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). -This edition covers what happened during the month of December 2022. +This edition covers what happened during the months of November 2022 and December 2022. ## Discussions From f8ef0930448672edce36b1ad4f04e84afc4e66f5 Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 27 Dec 2022 00:01:00 +0530 Subject: [PATCH 0433/1248] rn-94: add interview with ZheNing Hu --- rev_news/drafts/edition-94.md | 85 +++++++++++++++++++++++++++++++++-- 1 file changed, 82 insertions(+), 3 deletions(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index 0619042ea0..cf6ec297eb 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -29,9 +29,88 @@ This edition covers what happened during the months of November 2022 and Decembe ### Support --> - +## Developer Spotlight: ZheNing Hu + +* Who are you and what do you do? + + My name is ZheNing Hu, and I am a participant in the GSOC 2021 + Git community. Currently I am interning at Alibaba (China). + +* What would you name your most important contribution to Git? + + When I used `git shortlog --author="ZheNing Hu"` to look at the patches + I contributed, I was ashamed to find that my patches are quite small and + simple, because I'm more of a Git learner right now 😄 + + If I had to pick one, I'd say it's adding the `--trailer` option to git commit. + It is very convenient to add something like "Signed-off-by", "Reviewed-by" + at the end of the commit message. + +* What are you doing on the Git project these days, and why? + + Recently I've been working on [implementing a `--scope` option for `git diff`](https://lore.kernel.org/git/pull.1398.v3.git.1669723221.gitgitgadget@gmail.com/) + and other Git commands. It tries to limit the scope of the file path to the + [sparse specification](https://github.com/git/git/blob/7c2ef319c52c4997256f5807564523dfd4acdfc7/Documentation/technical/sparse-checkout.txt#L73). + + The reason I wanted to implement this feature is that I was researching + how monorepo collaborates and discovered that `git pull` might download + Git objects outside of the sparse specification. Meanwhile, Elijah Newren + is contributing [technical documentation of git-sparse-checkout](https://git-scm.com/docs/sparse-checkout) + [source](https://github.com/git/git/blob/7c2ef319c52c4997256f5807564523dfd4acdfc7/Documentation/technical/sparse-checkout.txt), + the article details how other Git commands should properly recognize + sparse-checkout, and suggests implementing the `--scope` option, which + I think will solve the problem I encountered above, so I hope to implement it. + + This patch was put on hold by me for a while, as no one seemed to review it. + +* If you could get a team of expert developers to work full time on + something in Git for a full year, what would it be? + + I'd like to have a well-developed concurrency model on the Git server side. + See ["Question: How to execute git-gc correctly on the git server"](https://lore.kernel.org/git/CAOLTT8Tt3jW2yvm6BRU3yG+EvW1WG9wWFq6PuOcaHNNLQAaGjg@mail.gmail.com/) + for more details. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + `git checkout`. It can be used to switch branches or restore working tree files, + I think two functions are somewhat coupled. I don't know if `git switch` and + `git restore` would be perfect replacements for it. + +* What is your favorite Git-related tool/library, outside of + Git itself? + + [scalar](https://git-scm.com/docs/scalar). Now I really like to use scalar to + download Git repositories to save time. + +* Do you happen to have any memorable experience w.r.t contributing to + the Git project? If yes, could you share it with us? + + Mainly during GSOC, my mentor Christian Couder and many people in the Git + community helped me and I learned how to participate in open source for the + first time. It was a great experience to be brave and discuss technology with + people from all over the world. + +* What is your toolbox for interacting with the mailing list and for + development of Git? + + GitGitGadget. It has a clean commit process, and it runs GitHub action to + help me find out if my patch is buggy before committing to the community. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + 1. First become its user + 2. Understand its principles through the documentation + 3. Read the source code to understand the general structure of the project + 4. Understand some sub-modules of the project by solving some problems + 5. Learn from others with an open mind + +* If there's one tip you would like to share with other Git + developers, what would it be? + + Stay curious about technology. + ## Releases From 5df034e01af17a80558060dec5971ea459feafad Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Tue, 27 Dec 2022 00:02:16 +0530 Subject: [PATCH 0434/1248] rn-94: distinguish source file separately --- rev_news/drafts/edition-94.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index cf6ec297eb..a74d664bde 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -56,7 +56,7 @@ This edition covers what happened during the months of November 2022 and Decembe how monorepo collaborates and discovered that `git pull` might download Git objects outside of the sparse specification. Meanwhile, Elijah Newren is contributing [technical documentation of git-sparse-checkout](https://git-scm.com/docs/sparse-checkout) - [source](https://github.com/git/git/blob/7c2ef319c52c4997256f5807564523dfd4acdfc7/Documentation/technical/sparse-checkout.txt), + [ [source](https://github.com/git/git/blob/7c2ef319c52c4997256f5807564523dfd4acdfc7/Documentation/technical/sparse-checkout.txt) ], the article details how other Git commands should properly recognize sparse-checkout, and suggests implementing the `--scope` option, which I think will solve the problem I encountered above, so I hope to implement it. From c0fbb949a17500d9479047e9ed2acb1cf2a2048a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 27 Dec 2022 20:05:26 +0100 Subject: [PATCH 0435/1248] rn-94: add ZheNing Hu among the helpers --- rev_news/drafts/edition-94.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index a74d664bde..db75951a05 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -139,4 +139,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from Mirth Hickford. +with help from ZheNing Hu and Mirth Hickford. From 518222bd292da27b204d6297812aae8af12ea2c0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 27 Dec 2022 22:18:17 +0100 Subject: [PATCH 0436/1248] rn-94: add releases --- rev_news/drafts/edition-94.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index db75951a05..fed4a0aff2 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -114,6 +114,26 @@ This edition covers what happened during the months of November 2022 and Decembe ## Releases ++ Git [2.39.0](https://public-inbox.org/git/xmqqlencspnl.fsf@gitster.g/), +[2.38.2](https://public-inbox.org/git/xmqqv8miv7qj.fsf@gitster.g/), +[2.39.0-rc2](https://public-inbox.org/git/xmqq7cz59o6y.fsf@gitster.g/), +[2.39.0-rc1](https://public-inbox.org/git/xmqqedtlynq8.fsf@gitster.g/) ++ Git for Windows [2.39.0(2)](https://github.com/git-for-windows/git/releases/tag/v2.39.0.windows.2), +[2.39.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.39.0.windows.1), +[2.39.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.39.0-rc2.windows.1), +[2.39.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.39.0-rc1.windows.1) ++ GitHub Enterprise [3.7.2](https://help.github.com/enterprise-server@3.7/admin/release-notes#3.7.2), +[3.6.5](https://help.github.com/enterprise-server@3.6/admin/release-notes#3.6.5), +[3.5.9](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.9), +[3.4.12](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.12), +[3.3.17](https://help.github.com/enterprise-server@3.3/admin/release-notes#3.3.17) ++ GitLab [15.7](https://about.gitlab.com/releases/2022/12/22/gitlab-15-7-released/) +[15.6.3](https://about.gitlab.com/releases/2022/12/16/gitlab-15-6-3-released/), +[15.5.6](https://about.gitlab.com/releases/2022/12/08/gitlab-15-5-6-released/), +[15.6.2](https://about.gitlab.com/releases/2022/12/02/gitlab-15-6-2-released/), +[15.6.1, 15.5.5 and 15.4.6](https://about.gitlab.com/releases/2022/11/30/security-release-gitlab-15-6-1-released/) ++ GitKraken [9.0.0](https://help.gitkraken.com/gitkraken-client/current/) ++ Sourcetree [4.2.1](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.1.html) ## Other News From 28460d2577121559c72b3ad39ba13e39a8e21bab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 29 Dec 2022 02:28:10 +0100 Subject: [PATCH 0437/1248] rn-94: Add links to various news, articles, sites, and tools --- rev_news/drafts/edition-94.md | 129 ++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index fed4a0aff2..e51db09589 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -139,9 +139,100 @@ This edition covers what happened during the months of November 2022 and Decembe __Various__ +* [Highlights from Git 2.39](https://github.blog/2022-12-12-highlights-from-git-2-39/) + by Taylor Blau on GitHub Blog. +* [Andrew Morton's first pull request](https://lwn.net/Articles/895689/) + by Jonathan Corbet on LWN\.net (from May 2022). + * [Git Rev News: Edition 14 (April 20th, 2016)](https://git.github.io/rev_news/2016/04/20/edition-14/) + mentions, when describing discussions at the Git Contributor Summit + (part 1, about big repos and big files), that Andrew Morton uses (used?) + [quilt](https://savannah.nongnu.org/projects/quilt) + to maintain his "-mm" kernels, and that he sent patches by email. + __Light reading__ +* [Billions of unnecessary files in GitHub](https://dev.to/szabgab/billions-of-unnecessary-files-in-github-i85) + and Git repositories in general, due to missing or lacking + [`.gitignore`](https://git-scm.com/docs/gitignore) + files. Article by Gabor Szabo on DEV\.to (also known as The Practical Dev). + There is also some good information in comments. +* [What are your git aliases?](https://dev.to/imjoseangel/what-are-your-git-aliases-43om) + by Jose Angel Munoz on DEV\.to. +* [How to Close a Pull Request - Merge Commit vs Squash vs Rebase on GitHub](https://leonardomontini.dev/close-pr-strategy-merge-commit-squash-rebase/) + by Leonardo Montini. +* [What is GitOps?](https://about.gitlab.com/topics/gitops/) on GitLab. + * The topic of GitOps was mentioned in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/), + [#43](https://git.github.io/rev_news/2018/09/19/edition-43/), + [#61](https://git.github.io/rev_news/2020/03/25/edition-61/), + [#62](https://git.github.io/rev_news/2020/04/23/edition-62/), + and [#89](https://git.github.io/rev_news/2022/07/31/edition-89/) +* [GitOps viewed as part of the Ops evolution](https://about.gitlab.com/blog/2021/07/12/gitops-as-the-evolution-of-operations/) + by Viktor Nagy o GitLab Blog (2021). +* [A meta talk about Git strategies](https://dev.to/mortenolsen/deployment-confidence-with-git-4b0b) + for deployment (GitOps-like), by Morten Olsen on DEV\.to. +* [Rebases in Git and why you shouldn't be afraid of them](https://how-to.dev/rebases-in-git-and-why-you-shouldnt-be-afraid-of-them) + by Marcin Wosinek for [How to dev](https://how-to.dev/) + (also [reposted on DEV\.to](https://dev.to/how-to-dev/rebases-in-git-and-why-you-shouldnt-be-afraid-of-them-1fb5)). +* [Take advantage of Git rebase](https://about.gitlab.com/blog/2022/10/06/take-advantage-of-git-rebase/) + by Christian Couder on GitLab Blog. +* [Split a commit into 2 commits with `git rebase`](https://dev.to/thelarkinn/split-a-commit-into-2-commits-with-git-rebase-31ee) + by Sean Larkin on DEV\.to. +* [Minimum Viable Git for Trunk-based Development](https://blog.trunk.io/minimum-viable-git-for-trunk-based-development-81a5da7a77a7) + by Eli Schleifer on [trunk.io](https://trunk.io/) blog (a Medium-based blog). + * [Trunk Based Development](https://trunkbaseddevelopment.com/) + was mentioned directly in [Git Rev News Edition #24](https://git.github.io/rev_news/2017/02/22/edition-24/) + and [#73](https://git.github.io/rev_news/2021/03/27/edition-73/). + * [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html) + by Martin Fowler, mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/), + describes Trunk-Based Development in the section + [Looking at some branching policies](https://martinfowler.com/articles/branching-patterns.html#LookingAtSomeBranchingPolicies). +* [Benefits of Using Pull Requests for Collaboration and Code Review](https://developer.nvidia.com/blog/benefits-of-using-pull-requests-for-collaboration-and-code-review/) + by Fatos Morina on NVIDIA Developer Technical Blog. +* [How to revert a merge commit then merge again](https://dev.indooroutdoor.io/how-to-revert-a-merge-commit-and-then-merge-again) + by Jb Rocher on his blog + ([also on DEV\.to](https://dev.to/jbrocher/how-to-revert-a-merge-commit-then-merge-again-hoo)). +* [Git worktree](https://github.polettix.it/ETOOBUSY/2022/11/22/git-worktree/) + by Flavio Poletti (@polettix) on his ETOOBUSY blog. +* [Git Notes: Git's Coolest, Most Unloved Feature](https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/) + by Tyler Cipriani on his blog. + * You can find various uses of _git notes_ feature mentioned in Git Rev News: + [marking test suite successes](http://who-t.blogspot.de/2015/07/using-git-notes-for-marking-test-suite.html) + in [#6](https://git.github.io/rev_news/2015/08/05/edition-6/), + and [maintaining a high quality change log](https://harrow.io/blog/effortlessly-maintain-a-high-quality-change-log-with-little-known-git-tricks/) + in [#34](https://git.github.io/rev_news/2017/12/20/edition-34/). + * [git-appraise](https://github.com/google/git-appraise), + a distributed code review system for Git repos using git notes + was mentioned in [Git Rev News Edition #11](https://git.github.io/rev_news/2016/01/13/edition-11/). +* [Learn Git: 3 commands to level up your skill](https://opensource.com/article/22/11/advanced-git-commands) + by Dwayne McDaniel on Opensource\.com. +* [Code version best practices with clean commit formats](https://blogs.halodoc.io/code-version-best-practices-with-clean-commit-formats/), + following [angular commit convention guidelines](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit), + by Chaitanya S. on Halodoc blog. + * [Conventional Commit specification](https://www.conventionalcommits.org/) + was first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). + * [commitlint](https://commitlint.js.org/#/) was first mentioned + in [Git Rev News Edition #81](https://git.github.io/rev_news/2021/11/29/edition-81/), + [Commitizen](http://commitizen.github.io/cz-cli/) + in [#72](https://git.github.io/rev_news/2021/02/27/edition-72/), + [Husky](https://github.com/typicode/husky) + in [#63](https://git.github.io/rev_news/2020/05/28/edition-63/), + and [conventional-changelog](https://github.com/conventional-changelog/conventional-changelog) + in [#81](https://git.github.io/rev_news/2021/11/29/edition-81/). +* [Resolving Merge Conflicts with Visual Studio Code](https://leonardomontini.dev/merge-conflict-vscode/) + by Leonardo Montini (also [on This is Learning DEV\.to blog](https://dev.to/this-is-learning/resolving-merge-conflicts-with-visual-studio-code-1mn1)). + +* [Extremely Linear Git History](https://westling.dev/b/extremely-linear-git), + where first commit in a repo hash a hash that starts with `0000000`, + the second commit is `0000001`, the third is `0000002`, and so on + is possible with [extremely-linear](https://github.com/zegl/extremely-linear) + (aka `git linearize`) tool. Article and tool by Gustav Westling. ☺ + * [Git Rev News Edition #24](https://git.github.io/rev_news/2017/02/22/edition-24/) + mentions in passing the [git-sham](https://bitbucket.org/tpettersen/git-sham) tool, + with which you can make it so that subsequent commits have SHA-1 identifiers + beginning with subsequent numbers - but the tool no longer exists at provided URL. + + @@ -151,6 +242,44 @@ __Git tools and sites__ * [git-credential-oauth](https://github.com/hickford/git-credential-oauth) is a Git credential helper that securely authenticates to GitHub, GitLab, BitBucket and other forges using OAuth. +* [semantic-release](https://github.com/semantic-release/semantic-release) + ([documentation](https://semantic-release.gitbook.io/semantic-release/)) + is a fully automated version management and package publishing Node\.js tool. +* [Release Please](https://github.com/googleapis/release-please) is a Node\.js too that + automates CHANGELOG generation, the creation of GitHub releases, + and version bumps for your projects; it does so by parsing your git history, + and looking for [Conventional Commit](https://www.conventionalcommits.org/) messages +* [gitignore.io](https://www.toptal.com/developers/gitignore/) by Toptal + is a service that creates useful `.gitignore` files for your project. + * [github/gitignore](https://github.com/github/gitignore) + is GitHub's collection of `.gitignore` file templates. + * Atlassian's Bitbucket has [`.gitignore` Tutorial](https://www.atlassian.com/git/tutorials/saving-changes/gitignor) + * GitLab provides [.gitignore API](https://docs.gitlab.com/ee/api/templates/gitignores.html) + for all tiers. + * [gig](https://github.com/hackrslab/gig), + a Node\.js command-line tool for quickly setting up `.gitignore` files, + which uses GitHub's gitignore repository for gitignore templates, + was mentioned in [Git Rev News Edition #6](https://git.github.io/rev_news/2015/08/05/edition-6/). + * [.gitignore Generator](https://marketplace.visualstudio.com/items?itemName=piotrpalarz.vscode-gitignore-generator) + extension for _Visual Studio Code_, which uses the gitignore.io API, + was mentioned in [Git Rev News Edition #57](https://git.github.io/rev_news/2019/11/20/edition-57/). +* [Diffchecker.com](https://www.diffchecker.com/) is an online service that + will compare text to find the difference between two text files; there is also + an option for comparing [images](https://www.diffchecker.com/image-compare/), + [PDFs](https://www.diffchecker.com/pdf-compare/), + and [spreadsheets](https://www.diffchecker.com/excel-compare/) in xls/xlsx/xlsm/xlsb, csv, txt, dif, ods formats. + There is also paid Diffchecker Pro and Diffchecker Desktop app. +* [OpenGitOps](https://opengitops.dev/) is a set of open-source standards, + best practices, and community-focused education to help organizations + adopt a structured, standardized approach to implementing GitOps. + * [GitOps.tech](https://www.gitops.tech/), a similar site that aggregates the essence of GitOps + (and includes free [GitOps: Cloud-native Continuous Deployment](https://leanpub.com/gitops) + e-book, published via Leanpub), was mentioned in passing in + [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/). +* [Semantic Versioning Specification (SemVer)](https://semver.org/) + is a simple set of rules and requirements that dictate + how version numbers are assigned and incremented. + ## Credits From 6e4e5e0db0e57305187f9f33a09e3f15e99ce58e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 29 Dec 2022 02:32:34 +0100 Subject: [PATCH 0438/1248] rn-94: Add git-assembler release 1.3 Suggested-by: Christian Couder (@chriscool) --- rev_news/drafts/edition-94.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index e51db09589..4fb7e4e215 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -134,6 +134,8 @@ This edition covers what happened during the months of November 2022 and Decembe [15.6.1, 15.5.5 and 15.4.6](https://about.gitlab.com/releases/2022/11/30/security-release-gitlab-15-6-1-released/) + GitKraken [9.0.0](https://help.gitkraken.com/gitkraken-client/current/) + Sourcetree [4.2.1](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.1.html) ++ git-assembler [1.3](https://lore.kernel.org/git/87tu2927yt.fsf@wavexx.thregr.org/) + ## Other News From 6db920d231bc9ef0e7cab592f91a0a302f8ed613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 29 Dec 2022 02:35:39 +0100 Subject: [PATCH 0439/1248] rn-94: Add link to article about GitLab CLI Suggested-by: Christian Couder (@chriscool) --- rev_news/drafts/edition-94.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index 4fb7e4e215..562e36b7f8 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -143,6 +143,8 @@ __Various__ * [Highlights from Git 2.39](https://github.blog/2022-12-12-highlights-from-git-2-39/) by Taylor Blau on GitHub Blog. +* [Put `glab` at your fingertips with the GitLab CLI](https://about.gitlab.com/blog/2022/12/07/introducing-the-gitlab-cli/) + by Kai Armstrong on GitLab Blog. * [Andrew Morton's first pull request](https://lwn.net/Articles/895689/) by Jonathan Corbet on LWN\.net (from May 2022). * [Git Rev News: Edition 14 (April 20th, 2016)](https://git.github.io/rev_news/2016/04/20/edition-14/) From 37a7d80dd5f8eab81c6f84a74d468bb7fb7df88f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Thu, 29 Dec 2022 02:38:51 +0100 Subject: [PATCH 0440/1248] rn-94: Add link to article about Git Interview Questions Suggested-by: Philip Oakley (@PhilipOakley) --- rev_news/drafts/edition-94.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index 562e36b7f8..bc6ebd8287 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -225,6 +225,8 @@ __Light reading__ in [#81](https://git.github.io/rev_news/2021/11/29/edition-81/). * [Resolving Merge Conflicts with Visual Studio Code](https://leonardomontini.dev/merge-conflict-vscode/) by Leonardo Montini (also [on This is Learning DEV\.to blog](https://dev.to/this-is-learning/resolving-merge-conflicts-with-visual-studio-code-1mn1)). +* [30+ Commonly Asked Git Interview Questions](https://www.interviewbit.com/git-interview-questions/) + on InterviewBit. * [Extremely Linear Git History](https://westling.dev/b/extremely-linear-git), where first commit in a repo hash a hash that starts with `0000000`, From 7dbaa0a803bf5b7d8b4cf09320fd845e4871927d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Dec 2022 20:41:09 +0100 Subject: [PATCH 0441/1248] rn-94: add article about git tag crash --- rev_news/drafts/edition-94.md | 91 ++++++++++++++++++++++++++++++++++- 1 file changed, 89 insertions(+), 2 deletions(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index bc6ebd8287..2552071347 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -25,9 +25,96 @@ This edition covers what happened during the months of November 2022 and Decembe ### Reviews --> - + +* [Git Bug Report: out of memory using git tag](https://lore.kernel.org/git/CABYbkvP=fMmaFUD3bQbeQ-XKiMSP6g-u0p7Vq1Qt_K5=D5WJ+A@mail.gmail.com/) + + Martin Englund sent a bug report to the Git mailing list saying that + after creating a signed tag using a ssh-agent key, he ran the + following command that should have shown the body part of the tag + contents: + + `git tag -l --format '%(contents:body)' v0.6.1` + + But instead of displaying anything, the command crashed with: + + `fatal: Out of memory, malloc failed (tried to allocate 18446744073709551266 bytes)` + + Peff, alias Jeff King, thanked Martin for the report and said he had + found the function where the crash happened and the reason why it + happened. He also provided minimal reproduction instruction as well + as the commit that introduced the bug, and he put the author of that + commit in CC of his email. + + Philippe Blain, the author of that commit, thanked Peff for the + information and said he would try to find a fix for the bug. + + Peff replied to Philippe that after sleeping on the issue, he fully + understood what happened. He said there were actually two closely + related bugs and he was sending 2 patches to fix them both. + + The [first patch](https://lore.kernel.org/git/Y2IfT0UFJ7H%2FmHMz@coredump.intra.peff.net/) + was a fix for cases where there was no blank line between the + subject of a tag and the signature in it, and when the signature + also contained no blank line. Such signatures could be generated by + ssh. + + In such cases the code wasn't properly detecting the start of the + signature and was instead using the end of the commit. When + computing the signature length, this would give a negative value, + which was then converted to a huge value as the variable for the + signature length used an unsigned type. In turn when allocating + memory for the signature, this would lead to the crash as it wasn't + possible to allocate a huge amount of memory for it. + + The [second patch](https://lore.kernel.org/git/Y2IfwL96Ku%2FdGuJR@coredump.intra.peff.net/) + fix a similar bug that happened when there is a blank line in the + signature but not before it, and this blank line ends with both the + CR (Carriage Return) and LF (Line Feed) characters instead of only + the latter. + + In that case too, the start of the signature wasn't properly + detected, so a negative value was assigned to the variable for the + signature length, which led to a crash when allocating memory for + the signature. + + Both patches are very well explained in long commit messages. This + prompted Elijah Newren to reply to Peff joking about the fact that + Peff's patches didn't set new records for the ratio of commit + message lines to changed code, as a previous patch from Elijah + contained 96 lines of explanation to describe a one-line fix. + + In the same spirit, Peff replied to Elijah providing a script to + find the commit with the highest ratio between lines of explanations + in the commit message and the lines in the patch. He said that the + script would show "a few in the 100's". + + Ævar Arnfjörð Bjarmason then replied to Peff contesting the method + used in Peff's scripts and suggesting computing "the levenshtein + distance of the pre- and post-image", and then using that distance + to commit message length instead of the previous ratio, which would + find other winners. + + Elijah ended this subthread of discussion about the biggest comment + to code ratio in a commit in the Git repo with: + + "Hehe, my offhand joke started a contest over the whimsical question of + who's the most long-winded. I think my work here is done. :-)" + + Eric Sunshine, after reviewing Peff's patches, commented that they + were well explained and that he found no suggestion to improve on + them. + + Philippe agreed with Eric that the patches were very well explained + and asked Peff about the case where there would be both no blank + line and lines terminated with both CR and LF in the tag. Peff then + confirmed that this would be properly handled by his first patch. + + Taylor Blau, who was handling the maintainer's role in the project + at that time, as Junio Hamano was having a vacation, also agreed + that the patches were very well explained, and agreed to take + them. The patches were then merged and part of the Git v2.39.0 + feature release. ## Developer Spotlight: ZheNing Hu From ad5b452371e503ea53f3e394b6561dcf60dfc3d1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Dec 2022 20:57:05 +0100 Subject: [PATCH 0442/1248] rn-94: add Philip Oakley among the helpers --- rev_news/drafts/edition-94.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index 2552071347..231a0f0221 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -381,4 +381,5 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from ZheNing Hu and Mirth Hickford. +with help from ZheNing Hu, Philip Oakley and +Mirth Hickford. From a8c708c4bdc05e0e5614a363cbb35198b9fc911c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Fri, 30 Dec 2022 21:21:26 +0100 Subject: [PATCH 0443/1248] rn-94: add Siddharth's internship request --- rev_news/drafts/edition-94.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index 231a0f0221..98aa60e722 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -228,6 +228,12 @@ This edition covers what happened during the months of November 2022 and Decembe __Various__ +* Siddharth Asthana, + [who worked on Git during his GSoC 2022 for GitLab](https://summerofcode.withgoogle.com/archive/2022/projects/yaKP2iJK), + is looking for a 6-month Engineering internship, either full-time + starting from mid-July 2023 or part time starting now. See + [his resume](https://github.com/git/git.github.io/files/10180136/Siddharth_Asthana_Resume.pdf) + for more information. * [Highlights from Git 2.39](https://github.blog/2022-12-12-highlights-from-git-2-39/) by Taylor Blau on GitHub Blog. * [Put `glab` at your fingertips with the GitLab CLI](https://about.gitlab.com/blog/2022/12/07/introducing-the-gitlab-cli/) @@ -240,7 +246,6 @@ __Various__ [quilt](https://savannah.nongnu.org/projects/quilt) to maintain his "-mm" kernels, and that he sent patches by email. - __Light reading__ * [Billions of unnecessary files in GitHub](https://dev.to/szabgab/billions-of-unnecessary-files-in-github-i85) From d8781f71f72a6fd1e990cc55e75c2fa8b1088bc8 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sat, 31 Dec 2022 12:31:53 +0100 Subject: [PATCH 0444/1248] Supplied the usual tiny corrections and rephrasings - please scrutinize. --- rev_news/drafts/edition-94.md | 60 +++++++++++++++++------------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/rev_news/drafts/edition-94.md b/rev_news/drafts/edition-94.md index 98aa60e722..a8fd4d2ff7 100644 --- a/rev_news/drafts/edition-94.md +++ b/rev_news/drafts/edition-94.md @@ -27,7 +27,7 @@ This edition covers what happened during the months of November 2022 and Decembe ### Support -* [Git Bug Report: out of memory using git tag](https://lore.kernel.org/git/CABYbkvP=fMmaFUD3bQbeQ-XKiMSP6g-u0p7Vq1Qt_K5=D5WJ+A@mail.gmail.com/) +* [Git Bug Report: out of memory using `git tag`](https://lore.kernel.org/git/CABYbkvP=fMmaFUD3bQbeQ-XKiMSP6g-u0p7Vq1Qt_K5=D5WJ+A@mail.gmail.com/) Martin Englund sent a bug report to the Git mailing list saying that after creating a signed tag using a ssh-agent key, he ran the @@ -42,11 +42,11 @@ This edition covers what happened during the months of November 2022 and Decembe Peff, alias Jeff King, thanked Martin for the report and said he had found the function where the crash happened and the reason why it - happened. He also provided minimal reproduction instruction as well + happened. He also provided minimal reproduction instructions as well as the commit that introduced the bug, and he put the author of that commit in CC of his email. - Philippe Blain, the author of that commit, thanked Peff for the + Philippe Blain, the author of the commit, thanked Peff for the information and said he would try to find a fix for the bug. Peff replied to Philippe that after sleeping on the issue, he fully @@ -65,15 +65,15 @@ This edition covers what happened during the months of November 2022 and Decembe which was then converted to a huge value as the variable for the signature length used an unsigned type. In turn when allocating memory for the signature, this would lead to the crash as it wasn't - possible to allocate a huge amount of memory for it. + possible to allocate the requested amount of memory for it. The [second patch](https://lore.kernel.org/git/Y2IfwL96Ku%2FdGuJR@coredump.intra.peff.net/) - fix a similar bug that happened when there is a blank line in the - signature but not before it, and this blank line ends with both the + fixed a similar bug that occurred when there was a blank line in the + signature but not before it, and this blank line ended with both the CR (Carriage Return) and LF (Line Feed) characters instead of only the latter. - In that case too, the start of the signature wasn't properly + In that case, the start of the signature was also not properly detected, so a negative value was assigned to the variable for the signature length, which led to a crash when allocating memory for the signature. @@ -90,7 +90,7 @@ This edition covers what happened during the months of November 2022 and Decembe script would show "a few in the 100's". Ævar Arnfjörð Bjarmason then replied to Peff contesting the method - used in Peff's scripts and suggesting computing "the levenshtein + used in Peff's scripts and suggesting computing "the Levenshtein distance of the pre- and post-image", and then using that distance to commit message length instead of the previous ratio, which would find other winners. @@ -111,7 +111,7 @@ This edition covers what happened during the months of November 2022 and Decembe confirmed that this would be properly handled by his first patch. Taylor Blau, who was handling the maintainer's role in the project - at that time, as Junio Hamano was having a vacation, also agreed + at that time, as Junio Hamano was having vacation, also agreed that the patches were very well explained, and agreed to take them. The patches were then merged and part of the Git v2.39.0 feature release. @@ -127,9 +127,9 @@ This edition covers what happened during the months of November 2022 and Decembe When I used `git shortlog --author="ZheNing Hu"` to look at the patches I contributed, I was ashamed to find that my patches are quite small and - simple, because I'm more of a Git learner right now 😄 + simple, because I'm more of a Git learner right now 😄. - If I had to pick one, I'd say it's adding the `--trailer` option to git commit. + If I had to pick one, I'd say it's adding the `--trailer` option to `git commit`. It is very convenient to add something like "Signed-off-by", "Reviewed-by" at the end of the commit message. @@ -140,9 +140,9 @@ This edition covers what happened during the months of November 2022 and Decembe [sparse specification](https://github.com/git/git/blob/7c2ef319c52c4997256f5807564523dfd4acdfc7/Documentation/technical/sparse-checkout.txt#L73). The reason I wanted to implement this feature is that I was researching - how monorepo collaborates and discovered that `git pull` might download + how monorepo users collaborate and discovered that `git pull` might download Git objects outside of the sparse specification. Meanwhile, Elijah Newren - is contributing [technical documentation of git-sparse-checkout](https://git-scm.com/docs/sparse-checkout) + is contributing the [technical documentation of git-sparse-checkout](https://git-scm.com/docs/sparse-checkout) [ [source](https://github.com/git/git/blob/7c2ef319c52c4997256f5807564523dfd4acdfc7/Documentation/technical/sparse-checkout.txt) ], the article details how other Git commands should properly recognize sparse-checkout, and suggests implementing the `--scope` option, which @@ -161,7 +161,7 @@ This edition covers what happened during the months of November 2022 and Decembe backwards compatibility, what would it be? `git checkout`. It can be used to switch branches or restore working tree files, - I think two functions are somewhat coupled. I don't know if `git switch` and + I think these two functions are somewhat coupled. I don't know if `git switch` and `git restore` would be perfect replacements for it. * What is your favorite Git-related tool/library, outside of @@ -170,11 +170,11 @@ This edition covers what happened during the months of November 2022 and Decembe [scalar](https://git-scm.com/docs/scalar). Now I really like to use scalar to download Git repositories to save time. -* Do you happen to have any memorable experience w.r.t contributing to +* Do you happen to have any memorable experience w.r.t. contributing to the Git project? If yes, could you share it with us? Mainly during GSOC, my mentor Christian Couder and many people in the Git - community helped me and I learned how to participate in open source for the + community helped me, and I learned how to participate in open source for the first time. It was a great experience to be brave and discuss technology with people from all over the world. @@ -240,8 +240,8 @@ __Various__ by Kai Armstrong on GitLab Blog. * [Andrew Morton's first pull request](https://lwn.net/Articles/895689/) by Jonathan Corbet on LWN\.net (from May 2022). - * [Git Rev News: Edition 14 (April 20th, 2016)](https://git.github.io/rev_news/2016/04/20/edition-14/) - mentions, when describing discussions at the Git Contributor Summit + * [Git Rev News Edition 14 (April 20th, 2016)](https://git.github.io/rev_news/2016/04/20/edition-14/) + mentioned, when describing discussions at the Git Contributor Summit (part 1, about big repos and big files), that Andrew Morton uses (used?) [quilt](https://savannah.nongnu.org/projects/quilt) to maintain his "-mm" kernels, and that he sent patches by email. @@ -252,7 +252,7 @@ __Light reading__ and Git repositories in general, due to missing or lacking [`.gitignore`](https://git-scm.com/docs/gitignore) files. Article by Gabor Szabo on DEV\.to (also known as The Practical Dev). - There is also some good information in comments. + There is also some good information in the comments. * [What are your git aliases?](https://dev.to/imjoseangel/what-are-your-git-aliases-43om) by Jose Angel Munoz on DEV\.to. * [How to Close a Pull Request - Merge Commit vs Squash vs Rebase on GitHub](https://leonardomontini.dev/close-pr-strategy-merge-commit-squash-rebase/) @@ -292,7 +292,7 @@ __Light reading__ by Flavio Poletti (@polettix) on his ETOOBUSY blog. * [Git Notes: Git's Coolest, Most Unloved Feature](https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/) by Tyler Cipriani on his blog. - * You can find various uses of _git notes_ feature mentioned in Git Rev News: + * You can find various uses of the _Git notes_ feature mentioned in Git Rev News: [marking test suite successes](http://who-t.blogspot.de/2015/07/using-git-notes-for-marking-test-suite.html) in [#6](https://git.github.io/rev_news/2015/08/05/edition-6/), and [maintaining a high quality change log](https://harrow.io/blog/effortlessly-maintain-a-high-quality-change-log-with-little-known-git-tricks/) @@ -303,7 +303,7 @@ __Light reading__ * [Learn Git: 3 commands to level up your skill](https://opensource.com/article/22/11/advanced-git-commands) by Dwayne McDaniel on Opensource\.com. * [Code version best practices with clean commit formats](https://blogs.halodoc.io/code-version-best-practices-with-clean-commit-formats/), - following [angular commit convention guidelines](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit), + following [Angular commit convention guidelines](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit), by Chaitanya S. on Halodoc blog. * [Conventional Commit specification](https://www.conventionalcommits.org/) was first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). @@ -327,8 +327,8 @@ __Light reading__ (aka `git linearize`) tool. Article and tool by Gustav Westling. ☺ * [Git Rev News Edition #24](https://git.github.io/rev_news/2017/02/22/edition-24/) mentions in passing the [git-sham](https://bitbucket.org/tpettersen/git-sham) tool, - with which you can make it so that subsequent commits have SHA-1 identifiers - beginning with subsequent numbers - but the tool no longer exists at provided URL. + which can be used to produce subsequent commits with SHA-1 identifiers + beginning with subsequent numbers - but the tool doesn't seem to exist anymore at its original URL. + +* [What's cooking in git.git (Nov 2022, #05; Tue, 22)](https://lore.kernel.org/git/xmqqfseargo4.fsf@gitster.g/) + + Junio Hamano, the Git maintainer, sent one of his usual "What's + cooking in git.git" emails to the mailing list. At the beginning of + the email though he thanked everybody for "successfully concluding + the 'bus factor' exercise". + + It was indeed the first time in a few years that he temporarily + handed over the maintainership of the project to someone else, in + this case Taylor Blau, as he was having a vacation. It's called a + 'bus factor' exercise as it's supposed to make a transition smoother + in case the current maintainer would be "hit by a bus". + + The [previous "What's cooking in git.git" email](https://lore.kernel.org/git/Y3g95OYdwzq2OP3z@nand.local/) + had been sent a few days before by Taylor, who also thanked + everyone, as he saw that Junio was back online again. + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 0fae82117340f2d86ba97fb7a8f268eecc5f3144 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sun, 1 Jan 2023 21:30:38 +0100 Subject: [PATCH 0450/1248] rn-94: fix publication date --- _posts/2022-12-31-edition-94.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2022-12-31-edition-94.markdown b/_posts/2022-12-31-edition-94.markdown index 8a099b1162..5b124348f6 100644 --- a/_posts/2022-12-31-edition-94.markdown +++ b/_posts/2022-12-31-edition-94.markdown @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 94 (December 28th, 2022) +title: Git Rev News Edition 94 (December 31st, 2022) layout: default -date: 2022-12-28 12:06:51 +0100 +date: 2022-12-31 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 94 (December 28th, 2022) +## Git Rev News: Edition 94 (December 31st, 2022) 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 From bd71e172578b96ec0a07ebc0623d17fda48f13ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Mon, 2 Jan 2023 00:00:18 +0100 Subject: [PATCH 0451/1248] rn-94: Minor fixes --- _posts/2022-12-31-edition-94.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2022-12-31-edition-94.markdown b/_posts/2022-12-31-edition-94.markdown index 5b124348f6..954d4fb89f 100644 --- a/_posts/2022-12-31-edition-94.markdown +++ b/_posts/2022-12-31-edition-94.markdown @@ -341,7 +341,7 @@ __Light reading__ is possible with [extremely-linear](https://github.com/zegl/extremely-linear) (aka `git linearize`) tool. Article and tool by Gustav Westling. ☺ * [Git Rev News Edition #24](https://git.github.io/rev_news/2017/02/22/edition-24/) - mentions in passing the [git-sham](https://bitbucket.org/tpettersen/git-sham) tool, + mentions in passing the [git-sham](https://bitbucket.org/tpettersen/git-sham) tool, which can be used to produce subsequent commits with SHA-1 identifiers beginning with subsequent numbers - but the tool doesn't seem to exist anymore at its original URL. @@ -358,7 +358,7 @@ __Git tools and sites__ * [semantic-release](https://github.com/semantic-release/semantic-release) ([documentation](https://semantic-release.gitbook.io/semantic-release/)) is a fully automated version management and package publishing Node\.js tool. -* [Release Please](https://github.com/googleapis/release-please) is a Node\.js too that +* [Release Please](https://github.com/googleapis/release-please) is a Node\.js tool that automates CHANGELOG generation, the creation of GitHub releases, and version bumps for your projects; it does so by parsing your Git history and looking for [Conventional Commit](https://www.conventionalcommits.org/) messages. @@ -381,7 +381,7 @@ __Git tools and sites__ an option for comparing [images](https://www.diffchecker.com/image-compare/), [PDFs](https://www.diffchecker.com/pdf-compare/), and [spreadsheets](https://www.diffchecker.com/excel-compare/) in `xls`/`xlsx`/`xlsm`/`xlsb`, `csv`, `txt`, `dif`, and `ods` formats. - There are also commercial Diffchecker Pro and Diffchecker Desktop apps. + There are also commercial Diffchecker Pro service and Diffchecker Desktop apps. * [OpenGitOps](https://opengitops.dev/) is a set of open-source standards, best practices, and community-focused education to help organizations adopt a structured, standardized approach to implementing GitOps. From ad39cc86e03079570e13133d4687987ffa2194c5 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 24 Jan 2023 17:05:31 +0100 Subject: [PATCH 0452/1248] Add SoC-2023-Ideas.md --- SoC-2023-Ideas.md | 102 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 SoC-2023-Ideas.md diff --git a/SoC-2023-Ideas.md b/SoC-2023-Ideas.md new file mode 100644 index 0000000000..f4186a0533 --- /dev/null +++ b/SoC-2023-Ideas.md @@ -0,0 +1,102 @@ +--- +layout: default +title: SoC 2022 Ideas +--- + +This is the idea page for Summer of Code 2022 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. + +### More Sparse Index Integrations + +The [spare index feature](https://github.blog/2021-11-10-make-your-monorepo-feel-small-with-gits-sparse-index/) +accelerates Git commands when using +[sparse-checkout in cone mode](https://github.blog/2020-01-17-bring-your-monorepo-down-to-size-with-sparse-checkout/). +This works by modifying the on-disk index file in a way that includes +"sparse directory" entries instead of only file entries. This requires +care when enabling the sparse index for different commands, as custom +logic might be necessary. At minimum, interaction with the sparse index +needs to be carefully tested in the Git test suite when enabling it. + +The most-used commands have already been integrated with the sparse +index feature. This process usually takes a few steps: + +1. Add tests to [`t1092-sparse-checkout-compatibility.sh`](https://github.com/git/git/blob/master/t/t1092-sparse-checkout-compatibility.sh) + for the builtin, with a focus on what happens for paths outside of the + sparse-checkout cone. +2. Disable [the `command_requires_full_index` setting](https://github.com/git/git/blob/master/repository.h#L35) + in the builtin and ensure the tests pass. +3. If the tests do not pass, then alter the logic to work with the sparse index. +4. Add tests to [check that a sparse index stays sparse](https://github.com/git/git/blob/38062e73e009f27ea192d50481fcb5e7b0e9d6eb/t/t1092-sparse-checkout-compatibility.sh#L873-L939). +5. Add [performance tests](https://github.com/git/git/blob/master/t/perf/p2000-sparse-operations.sh) + to demonstrate speedup. + +Here is a list of builtins that could be integrated with the sparse index. +They are generally organized in order of least-difficult to most-difficult. +This allows the student to gain partial success early in the project and +the student can complete as many as possible in the timeframe (without +expectation that _all_ will be completed during the project). + +* `git rm` +* `git grep` +* `git rev-parse` +* `git fsck` +* `git check-attr` +* `git describe` +* `git diff-files` +* `git diff-index` +* `git diff-tree` +* `git worktree` +* `git write-tree` +* `git apply` +* `git am` +* `git checkout--worker` (for parallel checkout) +* `git merge-index` +* `git rerere` + +Expected Project Size: 175 hours or 350 hours + +Difficulty: Medium + +Languages: C, shell(bash) + +Possible mentors: + +### Unify ref-filter formats with other pretty formats + +Git has an old problem of duplicated implementations of some +logic. For example, Git had at least 4 different implementations to +format command output for different commands. + +Our previous GSoC students and Outreachy interns unified some of the +formating logic into +[ref-filter](https://github.com/git/git/blob/master/ref-filter.h) and +got rid of similar logic in some command specific files. Current task +is to continue this work and reuse ref-filter formatting logic in +[pretty](https://github.com/git/git/blob/master/pretty.h). + +See: + + - this discussion + - Hariom Verma's GSoC 2020 final report + - Nsengiyumva Wilberforce's recent work on this + +Expected Project Size: 175 hours or 350 hours + +Difficulty: Medium + +Languages: C, shell(bash) + +Possible mentors: +* Christian Couder < > + From d9a0b558b58b7cfebe585cd3b183b1f092ba1a2c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 24 Jan 2023 17:07:10 +0100 Subject: [PATCH 0453/1248] SoC-2022-Ideas: remove from navbar --- SoC-2022-Ideas.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SoC-2022-Ideas.md b/SoC-2022-Ideas.md index 4a87ef195b..8e3bc62e96 100644 --- a/SoC-2022-Ideas.md +++ b/SoC-2022-Ideas.md @@ -1,6 +1,7 @@ --- layout: default title: SoC 2022 Ideas +navbar: false --- This is the idea page for Summer of Code 2022 for Git. From d1e654f7a84199b2fa844195c4dea7bc76b509c2 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 24 Jan 2023 17:08:56 +0100 Subject: [PATCH 0454/1248] SoC-2023-Ideas: fix 2022 -> 2023 issues --- SoC-2023-Ideas.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SoC-2023-Ideas.md b/SoC-2023-Ideas.md index f4186a0533..7578e04164 100644 --- a/SoC-2023-Ideas.md +++ b/SoC-2023-Ideas.md @@ -1,9 +1,9 @@ --- layout: default -title: SoC 2022 Ideas +title: SoC 2023 Ideas --- -This is the idea page for Summer of Code 2022 for Git. +This is the idea page for Summer of Code 2023 for Git. *Please completely read the [general application information](https://git.github.io/General-Application-Information) page before reading the idea list below.* From 969b6b6d4f8fa07099d782fee4935fe4b56c3803 Mon Sep 17 00:00:00 2001 From: Victoria Dye Date: Tue, 24 Jan 2023 09:56:24 -0800 Subject: [PATCH 0455/1248] SoC-2023-Ideas: remove finished sparse index integrations Both 'git grep' and 'git rm' were completed as part of GSoC last year. --- SoC-2023-Ideas.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/SoC-2023-Ideas.md b/SoC-2023-Ideas.md index 7578e04164..3df63e89a2 100644 --- a/SoC-2023-Ideas.md +++ b/SoC-2023-Ideas.md @@ -47,8 +47,6 @@ This allows the student to gain partial success early in the project and the student can complete as many as possible in the timeframe (without expectation that _all_ will be completed during the project). -* `git rm` -* `git grep` * `git rev-parse` * `git fsck` * `git check-attr` From 00f86a17a2069cb2416672f752ed22cddab60e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 25 Jan 2023 04:02:16 +0100 Subject: [PATCH 0456/1248] rn-95: Add links to various news, articles, and tools (part 1) --- rev_news/drafts/edition-95.md | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/rev_news/drafts/edition-95.md b/rev_news/drafts/edition-95.md index 29cab4a753..3da7a1349e 100644 --- a/rev_news/drafts/edition-95.md +++ b/rev_news/drafts/edition-95.md @@ -40,15 +40,64 @@ This edition covers what happened during the months of November 2022 and Decembe __Various__ +* [Git security vulnerabilities announced](https://github.blog/2023-01-17-git-security-vulnerabilities-announced-2/) + that affect versions 2.39 and older. + * Two of three vulnerabilities were found as part of an audit of the Git codebase + conducted by [X41](https://x41-dsec.de/). This audit was sponsored by the + [Open Source Technology Improvement Fund (OSTIF)](https://ostif.org/). + X41 have also published information about this + [Security Audit of Git](https://x41-dsec.de/security/research/news/2023/01/17/git-security-audit-ostif/). + * [This Week In Security: Git Deep Dive, Mailchimp, And SPF](https://hackaday.com/2023/01/20/this-week-in-security-git-deep-dive-mailchimp-and-spf) + by Jonathan Bennett on Hackaday. +* [GitHub Sponsors will stop supporting PayPal](https://github.blog/changelog/2023-01-23-github-sponsors-will-stop-supporting-paypal/), + starting on February 23, 2023. +* GitHub is [sunsetting Subversion support](https://github.blog/2023-01-20-sunsetting-subversion-support/). + On January 8, 2024, GitHub will remove support for Subversion. + __Light reading__ +* [Beyond Git: The other version control systems developers use](https://stackoverflow.blog/2023/01/09/beyond-git-the-other-version-control-systems-developers-use/) + by Ryan Donovan on The Overflow (StackOverflow\.Blog). +* [Never write a commit message again (with the help of GPT-3)](https://zura.wiki/post/never-write-a-commit-message-again-with-the-help-of-gpt-3/) + by Roger Zurawicki on his blog _(though read proposed commit message before accepting it, please)_. + +* [Mastering the Art of Writing Effective Git Commit Messages](https://dev.to/ashishxcode/mastering-the-art-of-writing-effective-github-commit-messages-5d2p) + by Ashish Patel on DEV\.to. +* [How to Checkout a Remote Git Branch](https://www.howtogeek.com/864263/how-to-checkout-a-remote-git-branch/) + by Dave McKay on Hot-To Geek; + though the article missed DWIM `git checkout ` trick, + and do not mention newer `git switch ` command as alternative to `git checkout `. + __Git tools and sites__ +* [Git-Sim: Visually Simulate Git Operations In Your Own Repos](https://initialcommit.com/blog/git-sim). + Run a one-liner git-sim command in the terminal, + for example `git-sim reset HEAD^` or `git-sim merge dev`, + to generate a custom Git command visualization (.jpg, .mp4) from your repository. +* [heatwave](https://github.com/james-stoup/heatwave) + is a tool to visualize your git commits with a heat map in the terminal, + similar to how GitHub's heat map looks. +* [git-stats](https://github.com/IonicaBizau/git-stats) is a similar tool + to visualize local git statistics, including GitHub-like contributions calendars. + * Note that [Git-Stats](https://gitstats.me/), also known as GitStats\.me + is an unrelated open-source GitHub contribution analyzer as a web service, + which was mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). +* [scmrepo](https://github.com/iterative/scmrepo) by Iterative + is a SCM wrapper and [fsspec][] filesystem for Git for use in [DVC][]. + Works with multiple backends: pygit2 (libgit2), Dulwich, and GitPython. + * [DVC (Data Version Control)][DVC] was first mentioned in + [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/). + [fsspec]: https://filesystem-spec.readthedocs.io/ "fsspec: Filesystem interfaces for Python" + [DVC]: https://dvc.org/ "Data Version Control · DVC" +* [gptcommit](https://github.com/zurawiki/gptcommit) is a + git prepare-commit-msg [hook](https://git-scm.com/docs/githooks) + for authoring commit messages with GPT-3 language model. + Note: you need to ensure you have sufficient credits in your OpenAI account to use it. ## Credits From 77ced277537c0450050152ab07103166bce5e0c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 25 Jan 2023 22:29:15 +0100 Subject: [PATCH 0457/1248] rn-95: Add links to various news, articles, and tools (part 2) --- rev_news/drafts/edition-95.md | 57 ++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/rev_news/drafts/edition-95.md b/rev_news/drafts/edition-95.md index 3da7a1349e..04d524a432 100644 --- a/rev_news/drafts/edition-95.md +++ b/rev_news/drafts/edition-95.md @@ -53,6 +53,8 @@ __Various__ starting on February 23, 2023. * GitHub is [sunsetting Subversion support](https://github.blog/2023-01-20-sunsetting-subversion-support/). On January 8, 2024, GitHub will remove support for Subversion. +* [XetHub raises $7.5M for its Git-based data collaboration platform](https://techcrunch.com/2023/01/09/xethub-raises-7-5m-for-its-git-based-data-collaboration-platform/) + by Frederic Lardinois on TechCrunch. __Light reading__ @@ -61,13 +63,42 @@ __Light reading__ by Ryan Donovan on The Overflow (StackOverflow\.Blog). * [Never write a commit message again (with the help of GPT-3)](https://zura.wiki/post/never-write-a-commit-message-again-with-the-help-of-gpt-3/) by Roger Zurawicki on his blog _(though read proposed commit message before accepting it, please)_. +* [Sending a kernel patch with b4 (part 1)](https://people.kernel.org/monsieuricon/sending-a-kernel-patch-with-b4-part-1) + by Konstantin Ryabitsev (sending patch with [b4](https://git.kernel.org/pub/scm/utils/b4/b4.git) + is described in [Contributor overview](https://b4.docs.kernel.org/en/stable-0.11.y/contributor/overview.html) + section of the tool documentation). + * [Introducing b4 and patch attestation](https://people.kernel.org/monsieuricon/introducing-b4-and-patch-attestation) + was mentioned in [Git Rev News Edition #61](https://git.github.io/rev_news/2020/03/25/edition-61/). +* [The GitHub Silverware Drawer Dilemma, Or: Finding Active Repository Forks](https://hackaday.com/2023/01/08/the-github-silverware-drawer-dilemma-or-finding-active-repository-forks/) + by Maya Posch on Hackaday points to projects that help to find the most active fork. +* [7 Git articles every open source practitioner should read](https://opensource.com/article/23/1/git-articles) + by AmyJune Hineline from RedHat on OpenSource\.com. +* [Understanding Git through images](https://dev.to/nopenoshishi/understanding-git-through-images-4an1) + by kataoka_nopeNoshishi on DEV\.to. +* [Querying the GitHub archive with the ClickHouse Playground](https://til.simonwillison.net/clickhouse/github-explorer) + by Simon Willison on Simon Willison’s TILs (Today I've Learned). +* [7 tips for improving your productivity with Git](https://blog.genezini.com/p/7-tips-for-improving-your-productivity-with-git/) + by Daniel Genezini on his "It works on my machine" blog + (also [on DEV\.to](https://dev.to/dgenezini/7-tips-for-improving-your-productivity-with-git-ajg)). +* [Fix that damn Git Unsafe Repository](https://weblog.west-wind.com/posts/2023/Jan/05/Fix-that-damn-Git-Unsafe-Repository) + by Rick Strahl on Rick Strahl's Weblog. * [Mastering the Art of Writing Effective Git Commit Messages](https://dev.to/ashishxcode/mastering-the-art-of-writing-effective-github-commit-messages-5d2p) by Ashish Patel on DEV\.to. +* [11 tips for writing a good Git commit message](https://opensource.com/article/22/12/git-commit-message) + by AmyJune Hineline from RedHat on OpenSource\.com. +* [20 Git Commands you (probably) didn't know about](https://dev.to/lissy93/20-git-commands-you-probably-didnt-know-about-4j4o) + by Alicia Sykes on DEV\.to. * [How to Checkout a Remote Git Branch](https://www.howtogeek.com/864263/how-to-checkout-a-remote-git-branch/) - by Dave McKay on Hot-To Geek; + by Dave McKay on How-To Geek; though the article missed DWIM `git checkout ` trick, and do not mention newer `git switch ` command as alternative to `git checkout `. +* [Git tutorials - understanding of rebase and merge](https://dev.to/bitethecode/git-tutorials-understanding-of-rebase-and-merge-2cg4) + by Joonhyeok Ahn (Joon) on DEV\.to is the final part in 4 part + [Git Cookbook](https://dev.to/bitethecode/series/20767) series. + +* [Golang (and thus `git-lfs`) is evil on shitty networks](https://withinboredom.info/blog/2022/12/29/golang-is-evil-on-shitty-networks/) + on Somewhere Within Boredom blog _(may be fixed by the time you are reading this)_. - + +* [Question: How to execute git-gc correctly on the git server](https://lore.kernel.org/git/CAOLTT8Tt3jW2yvm6BRU3yG+EvW1WG9wWFq6PuOcaHNNLQAaGjg@mail.gmail.com/) + + ZheNing Hu asked about how he could run `git gc` correctly on his + own Git server. He seemed to be afraid by + [the `git gc` documentation](https://git-scm.com/docs/git-gc) + saying that there is a risk of failures and repository corruption + when the command is run concurrently with other Git processes. + + He said that he + [read about `git gc --cruft`](https://github.blog/2022-09-13-scaling-gits-garbage-collection/) + which could overcome these issues, but that he was still using Git + v2.35 on his server while `--cruft` was introduced in v2.38. + + He also wondered if before v2.38 a repository level lock blocking + some Git operations was needed and what any Git command run when the + lock is taken should do and report. + + Ævar Arnfjörð Bjarmason replied that running `git gc` on a "live" + repo was always racy, but the odds of corrupting the repo were + becoming very small when the value of the `gc.pruneExpire` config + option was increased. He said that the default setting for this + option, 2 weeks, was "more than enough for even the most paranoid + user". + + About `--cruft`, Ævar thought that its purpose was not only to avoid + possible repo corruption, but also to allow more aggressive gc + (garbage collection). + + He also wondered if this question was about large hosting sites like + GitHub, and GitLab where `git gc` is run on live repos, and + suggested not to worry in this case, but to take backups. + + Jeff King, alias Peff, replied to Ævar saying he was "a bit less + optimistic" about the corruption risk decreasing when + `gc.pruneExpire` is increased because there was no atomic view of + the ref namespace. So renaming a branch for example was risky + because it could be seen as removing a branch and adding a different + one by any concurrent process. Such a process could be another push, + not just a gc. + + Peff also said that using `--cruft` was not so much about avoiding + corruption, but about keeping cruft objects out of the main pack to + reduce the cost of lookups and bitmaps, and about avoiding to + explode a lot of old objects into loose objects, which could be very + bad for performance. + + Ævar replied to Peff discussing further when corruption was likely + or not to happen, which issues `--cruft` could help with, and a + patch he sent in the past to reduce possible corruption. He also + suggested running `git gc` on the least busy hours of the day. + + Later Taylor Blau replied to Ævar and Peff discussing `--cruft` in + the context of single-pack bitmaps or multi-pack (MIDX) bitmaps, and + in the context of GitHub. + + In the meantime, Michal Suchánek replied to Ævar's first email + asking what the 2 week default expiration time applied to. He also + said that he got corrupted repos with less than 100 users "and some + scripting" which went away when gc was disabled. + + Peff replied to Michal, saying that the expiration time applied to + the `mtime` on the object file (or the pack containing it), and + confirmed that it was "far from a complete race-free solution". + + ZheNing also replied to Michal saying that he prefered "no error at + all" rather than a "small probability of error". + + Michal replied to Peff listing some workflows that are more likely + to lead to a corrupt repo, like deleting branches but pushing other + branches that are variant of these branches, and different people + pushing files from the same external source. + + Peff confirmed that these workflows were indeed risky, and detailed + a bit further how the race conditions can happen. + + ZheNing then replied to Peff asking if there was a way like a lock + on the repository to avoid for example concurrent push and gc + processes. + + Ævar replied that there was no such way but that we should have + one. He explained that it could perhaps be done using hooks, + [like 'pre-receive' and 'post-receive'](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks), + when we are sure that all relevant operations are going through + these hooks. (For example no local branch deletion should be + possible.) + + ZheNing and Michal, discussed a bit further the details related to + how a repo corruption can happen with concurrent push and gc + processes, and how that could possibly be avoided. +## Developer Spotlight: Teng Long + +* Who are you and what do you do? + + My work is related to R&D efficiency tools development at Alibaba Cloud. + Our team have currently built a code hosting service as codeup.aliyun.com + which provides free and high-quality code services for Chinese developers + on the public cloud. In addition, I used to be a Gerrit contributor, because + I wrote Java for nearly 10 years, and this process made me almost forget + the C language, LOL. + + For the contributions of Git community, apart from me, Jiang Xin (the Git + localization coordinator), ZheNing Hu, Chen BoJun are also in my team. + +* What would you name your most important contribution to Git? + + First of all, I know Git for some years, but I'm new in the community, + because Git's technical depth is obvious which involves algorithms, + operating systems, testing techniques, etc. Also, Git have many + subcommands, which makes the implementation of Git itself involve + many aspects, I think it is difficult for a new contributor to understand + everything, but long-term participation may make you an expert in one + aspect of Git. Sadly, my time devoted to the Git community is actually + limited. + + I contributed a feature last year to allow the `git ls-tree` subcommand + to support the `--format` option which let you print out the result as you + want, this is helpful for some automated tools or scripted work I think. If + you want to know about it further, a better way is to read [the blog by + Taylor Blau](https://github.blog/2022-04-18-highlights-from-git-2-36/#tidbits). + +* What are you doing on the Git project these days, and why? + + I've been following the evolution of the `bundle-uri` feature recently, I think + the idea of this feature is great and attractive. If used properly, it can not + only improve the speed of code download in some scenarios, but also + reduce the load on the server. + + I'm also reading about algorithms related code (like bitmap, multi-pack bitmap, + bloom-filter), I want to know some details about the combination of Git and + algorithm. I think it's interesting. + +* 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? + + We all know that it can be a pain in terms of resource load and cost to + provide large-scale Git services. I hope to be able to solve the problem + with Git's storage and computing coupling to let Git be better + to integrate with cloud-native architecture. Like, should it be possible + to store the refs, loose objects and packs on a Distributed Database? + + I think this is one of the future development direction of the Git + architecture, starting from lower cost and cloud friendliness. If you want to + do these tasks based on Git, you may need to make the internal related + implementations more adaptable, which requires a lot of professional work + I think. + +* If you could remove something from Git without worrying about + backwards compatibility, what would it be? + + Actually I don't know, for reviewers, they are weighing the impact of + compatibility, although some patches are doing the right thing, which may + be contradictory, but there is no way to solve it perfectly, because Git + is one of the most widely used tools for developers in the world now. + +* What is your favorite Git-related tool/library, outside of + Git itself? + + I prefer [git-repo](https://github.com/alibaba/git-repo-go) which supports + doing code reviews or pull requests on the client, just like using a native + Git subcommand. + +* Do you happen to have any memorable experience w.r.t contributing to + the Git project? If yes, could you share it with us? + + Still memorable when my first commit was merged in, even though it was + a small fix. This process made me understand that contributing to Git is + completely different from other workflows, and the process and results both + feel good. + +* What is your toolbox for interacting with the mailing list and for + development of Git? + + First, I use "https://public-inbox.org/git/?q=a%3Adyroneteng" to check if + there is any new mails related to me. + + Then, I've been using `git format-patch` to create patchsets and `git send-email` + to post them, and `git am` for local reviews. I don't know if there's a better + way, but it seems to be enough for me. + +* What is your advice for people who want to start Git development? + Where and how should they start? + + Contributing to Git is not an easy task, after all, you are working with + other excellent contributors in the community, but continuous understanding + and participation may make you an expert in a certain direction. + +* If there's one tip you would like to share with other Git + developers, what would it be? + + I think it would be "get used to the process of contribution slowly". + + The review process is sometimes frustrating, but most of the suggestions by + reviewers are still valuable, we can learn a lot from the process, then you + can better participate in the next contribution. + ## Releases From 4f9defbd9d94ab49f586b4a54ea8a9715e3c344b Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 31 Jan 2023 21:06:43 +0100 Subject: [PATCH 0465/1248] rn-95: Add Teng Long among the helpers --- rev_news/drafts/edition-95.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-95.md b/rev_news/drafts/edition-95.md index bfc6e66a3c..6473170c29 100644 --- a/rev_news/drafts/edition-95.md +++ b/rev_news/drafts/edition-95.md @@ -373,4 +373,5 @@ This edition of Git Rev News was curated by Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and -Kaartic Sivaraam <>. +Kaartic Sivaraam <> +with help from Teng Long. From 1406b0a379e6c68069271f591d5bdb0598848b77 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 31 Jan 2023 22:11:59 +0100 Subject: [PATCH 0466/1248] Publish rn-95 in _posts/ --- .../drafts/edition-95.md => _posts/2023-01-31-edition-95.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-95.md => _posts/2023-01-31-edition-95.markdown (100%) diff --git a/rev_news/drafts/edition-95.md b/_posts/2023-01-31-edition-95.markdown similarity index 100% rename from rev_news/drafts/edition-95.md rename to _posts/2023-01-31-edition-95.markdown From 80f00357e835eb23ed7071345a41a8cced5e457e Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 31 Jan 2023 22:11:59 +0100 Subject: [PATCH 0467/1248] Add draft for rn-96 --- rev_news/drafts/edition-96.md | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-96.md diff --git a/rev_news/drafts/edition-96.md b/rev_news/drafts/edition-96.md new file mode 100644 index 0000000000..ce030fd445 --- /dev/null +++ b/rev_news/drafts/edition-96.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 96 (February 22nd, 2023) +layout: default +date: 2023-02-22 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 96 (February 22nd, 2023) + +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). + +This edition covers what happened during the months of December 2022 and January 2023. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 78d5aa753363d220d753c2f17c43ca1cdf3cad6d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 31 Jan 2023 22:14:39 +0100 Subject: [PATCH 0468/1248] rn-95: Fix publication date --- _posts/2023-01-31-edition-95.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2023-01-31-edition-95.markdown b/_posts/2023-01-31-edition-95.markdown index 6473170c29..e03d5669f7 100644 --- a/_posts/2023-01-31-edition-95.markdown +++ b/_posts/2023-01-31-edition-95.markdown @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 95 (January 25th, 2023) +title: Git Rev News Edition 95 (January 31st, 2023) layout: default -date: 2023-01-25 12:06:51 +0100 +date: 2023-01-31 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 95 (January 25th, 2023) +## Git Rev News: Edition 95 (January 31st, 2023) 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 From 0b5efcf3fc9edcaf227307a7818b3f5774635394 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 31 Jan 2023 22:16:40 +0100 Subject: [PATCH 0469/1248] rn-95: Fix months covered --- _posts/2023-01-31-edition-95.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2023-01-31-edition-95.markdown b/_posts/2023-01-31-edition-95.markdown index e03d5669f7..c977318087 100644 --- a/_posts/2023-01-31-edition-95.markdown +++ b/_posts/2023-01-31-edition-95.markdown @@ -13,7 +13,7 @@ Welcome to the 95th edition of [Git Rev News](https://git.github.io/rev_news/rev a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). -This edition covers what happened during the months of November 2022 and December 2022. +This edition covers what happened during the months of January 2023 and December 2022. ## Discussions From ff4b11227ed2a39a9014d8f0fc58787b20c9b11d Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 31 Jan 2023 22:17:45 +0100 Subject: [PATCH 0470/1248] rn-96: Fix months covered --- rev_news/drafts/edition-96.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-96.md b/rev_news/drafts/edition-96.md index ce030fd445..4db1799ccb 100644 --- a/rev_news/drafts/edition-96.md +++ b/rev_news/drafts/edition-96.md @@ -13,7 +13,7 @@ Welcome to the 96th edition of [Git Rev News](https://git.github.io/rev_news/rev a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). -This edition covers what happened during the months of December 2022 and January 2023. +This edition covers what happened during the months of February 2023 and January 2023. ## Discussions From 0da11543e1aeef76038b5f44cfb47c11cab92b41 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 31 Jan 2023 22:27:18 +0100 Subject: [PATCH 0471/1248] Added the usual tiny spelling / phrasing fixes. --- _posts/2023-01-31-edition-95.markdown | 83 ++++++++++++++------------- 1 file changed, 42 insertions(+), 41 deletions(-) diff --git a/_posts/2023-01-31-edition-95.markdown b/_posts/2023-01-31-edition-95.markdown index c977318087..ddddeac9a5 100644 --- a/_posts/2023-01-31-edition-95.markdown +++ b/_posts/2023-01-31-edition-95.markdown @@ -27,7 +27,7 @@ This edition covers what happened during the months of January 2023 and December ### Support -* [Question: How to execute git-gc correctly on the git server](https://lore.kernel.org/git/CAOLTT8Tt3jW2yvm6BRU3yG+EvW1WG9wWFq6PuOcaHNNLQAaGjg@mail.gmail.com/) +* [Question: How to execute git-gc correctly on the Git server?](https://lore.kernel.org/git/CAOLTT8Tt3jW2yvm6BRU3yG+EvW1WG9wWFq6PuOcaHNNLQAaGjg@mail.gmail.com/) ZheNing Hu asked about how he could run `git gc` correctly on his own Git server. He seemed to be afraid by @@ -40,9 +40,10 @@ This edition covers what happened during the months of January 2023 and December which could overcome these issues, but that he was still using Git v2.35 on his server while `--cruft` was introduced in v2.38. - He also wondered if before v2.38 a repository level lock blocking - some Git operations was needed and what any Git command run when the - lock is taken should do and report. + He also wondered if there was a need for `git gc` to set a + repository level lock blocking most or all other Git operations, + and what these operations -- especially `git clone` and `git push` -- + should do or report when hitting this lock. Ævar Arnfjörð Bjarmason replied that running `git gc` on a "live" repo was always racy, but the odds of corrupting the repo were @@ -56,16 +57,16 @@ This edition covers what happened during the months of January 2023 and December (garbage collection). He also wondered if this question was about large hosting sites like - GitHub, and GitLab where `git gc` is run on live repos, and + GitHub and GitLab, where `git gc` is run on live repos, and suggested not to worry in this case, but to take backups. Jeff King, alias Peff, replied to Ævar saying he was "a bit less optimistic" about the corruption risk decreasing when - `gc.pruneExpire` is increased because there was no atomic view of + `gc.pruneExpire` was increased because there was no atomic view of the ref namespace. So renaming a branch for example was risky because it could be seen as removing a branch and adding a different - one by any concurrent process. Such a process could be another push, - not just a gc. + one by any concurrent process. Such a process could be another `push`, + not just a `gc`. Peff also said that using `--cruft` was not so much about avoiding corruption, but about keeping cruft objects out of the main pack to @@ -80,41 +81,41 @@ This edition covers what happened during the months of January 2023 and December Later Taylor Blau replied to Ævar and Peff discussing `--cruft` in the context of single-pack bitmaps or multi-pack (MIDX) bitmaps, and - in the context of GitHub. + also in the context of GitHub. In the meantime, Michal Suchánek replied to Ævar's first email asking what the 2 week default expiration time applied to. He also said that he got corrupted repos with less than 100 users "and some - scripting" which went away when gc was disabled. + scripting" which went away when `gc` was disabled. Peff replied to Michal, saying that the expiration time applied to the `mtime` on the object file (or the pack containing it), and confirmed that it was "far from a complete race-free solution". - ZheNing also replied to Michal saying that he prefered "no error at - all" rather than a "small probability of error". + ZheNing also replied to Michal saying that he preferred "no error at + all" to a "small probability of error". Michal replied to Peff listing some workflows that are more likely to lead to a corrupt repo, like deleting branches but pushing other - branches that are variant of these branches, and different people + branches that are variants of these branches, and different people pushing files from the same external source. Peff confirmed that these workflows were indeed risky, and detailed a bit further how the race conditions can happen. - ZheNing then replied to Peff asking if there was a way like a lock - on the repository to avoid for example concurrent push and gc - processes. + ZheNing then replied to Peff asking if there was "an easy and poor + performance" way like a lock on a repository to avoid for example + concurrent `push` and `gc` processes. Ævar replied that there was no such way but that we should have one. He explained that it could perhaps be done using hooks, [like 'pre-receive' and 'post-receive'](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks), - when we are sure that all relevant operations are going through + when we were sure that all relevant operations were going through these hooks. (For example no local branch deletion should be possible.) - ZheNing and Michal, discussed a bit further the details related to - how a repo corruption can happen with concurrent push and gc + ZheNing and Michal discussed a bit further the details related to + how a repo corruption can happen with concurrent `push` and `gc` processes, and how that could possibly be avoided. ## Developer Spotlight: Teng Long @@ -129,15 +130,15 @@ This edition covers what happened during the months of January 2023 and December the C language, LOL. For the contributions of Git community, apart from me, Jiang Xin (the Git - localization coordinator), ZheNing Hu, Chen BoJun are also in my team. + localization coordinator), ZheNing Hu, and Chen BoJun are also in my team. * What would you name your most important contribution to Git? First of all, I know Git for some years, but I'm new in the community, because Git's technical depth is obvious which involves algorithms, - operating systems, testing techniques, etc. Also, Git have many + operating systems, testing techniques, etc. Also, Git has many subcommands, which makes the implementation of Git itself involve - many aspects, I think it is difficult for a new contributor to understand + many aspects, and I think it is difficult for a new contributor to understand everything, but long-term participation may make you an expert in one aspect of Git. Sadly, my time devoted to the Git community is actually limited. @@ -156,8 +157,8 @@ This edition covers what happened during the months of January 2023 and December reduce the load on the server. I'm also reading about algorithms related code (like bitmap, multi-pack bitmap, - bloom-filter), I want to know some details about the combination of Git and - algorithm. I think it's interesting. + bloom-filter), as I want to know some details about the combination of Git and + algorithms. I think it's interesting. * 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? @@ -189,7 +190,7 @@ This edition covers what happened during the months of January 2023 and December doing code reviews or pull requests on the client, just like using a native Git subcommand. -* Do you happen to have any memorable experience w.r.t contributing to +* Do you happen to have any memorable experience w.r.t. contributing to the Git project? If yes, could you share it with us? Still memorable when my first commit was merged in, even though it was @@ -200,10 +201,10 @@ This edition covers what happened during the months of January 2023 and December * What is your toolbox for interacting with the mailing list and for development of Git? - First, I use "https://public-inbox.org/git/?q=a%3Adyroneteng" to check if - there is any new mails related to me. + First, I use [https://public-inbox.org/git/?q=a%3Adyroneteng](https://public-inbox.org/git/?q=a%3Adyroneteng) + to check if there is any new mails related to me. - Then, I've been using `git format-patch` to create patchsets and `git send-email` + Then, I've been using `git format-patch` to create patch sets and `git send-email` to post them, and `git am` for local reviews. I don't know if there's a better way, but it seems to be enough for me. @@ -220,7 +221,7 @@ This edition covers what happened during the months of January 2023 and December I think it would be "get used to the process of contribution slowly". The review process is sometimes frustrating, but most of the suggestions by - reviewers are still valuable, we can learn a lot from the process, then you + reviewers are still valuable; you can learn a lot from the process, then you can better participate in the next contribution. @@ -278,9 +279,9 @@ __Various__ __Light reading__ * [Beyond Git: The other version control systems developers use](https://stackoverflow.blog/2023/01/09/beyond-git-the-other-version-control-systems-developers-use/) - by Ryan Donovan on The Overflow (StackOverflow\.Blog). + by Ryan Donovan on The Overflow (stackoverflow\.blog). * [Never write a commit message again (with the help of GPT-3)](https://zura.wiki/post/never-write-a-commit-message-again-with-the-help-of-gpt-3/) - by Roger Zurawicki on his blog _(though read proposed commit message before accepting it, please)_. + by Roger Zurawicki on his blog _(though read the proposed commit message before accepting it, please)_. * [Sending a kernel patch with b4 (part 1)](https://people.kernel.org/monsieuricon/sending-a-kernel-patch-with-b4-part-1) by Konstantin Ryabitsev (sending patch with [b4](https://git.kernel.org/pub/scm/utils/b4/b4.git) is described in [Contributor overview](https://b4.docs.kernel.org/en/stable-0.11.y/contributor/overview.html) @@ -309,14 +310,14 @@ __Light reading__ by Alicia Sykes on DEV\.to. * [How to Checkout a Remote Git Branch](https://www.howtogeek.com/864263/how-to-checkout-a-remote-git-branch/) by Dave McKay on How-To Geek; - though the article missed DWIM `git checkout ` trick, - and do not mention newer `git switch ` command as alternative to `git checkout `. + though the article misses the DWIM `git checkout ` trick, + and does not mention the newer `git switch ` command as alternative to `git checkout `. * [Git tutorials - understanding of rebase and merge](https://dev.to/bitethecode/git-tutorials-understanding-of-rebase-and-merge-2cg4) - by Joonhyeok Ahn (Joon) on DEV\.to is the final part in 4 part + by Joonhyeok Ahn (Joon) on DEV\.to is the final part in the 4 part [Git Cookbook](https://dev.to/bitethecode/series/20767) series. * [Golang (and thus `git-lfs`) is evil on shitty networks](https://withinboredom.info/blog/2022/12/29/golang-is-evil-on-shitty-networks/) - on Somewhere Within Boredom blog _(may be fixed by the time you are reading this)_. + on the Somewhere Within Boredom blog _(may be fixed by the time you are reading this)_. - + +* [bug?: ORIG_HEAD incorrect after reset during git-rebase -i](https://lore.kernel.org/git/CA+JQ7M-ynq1cLN-3ZodXae=x-H5k7Ab6uPBwUFhG+kgtOvCgtA@mail.gmail.com/) + + Erik Cervin Edin sent an email to the mailing list with steps to + reproduce a behavior that he didn't like. The steps consisted in an + interactive rebase during which a commit was edited and a reset was + performed while editing the commit. + + After editing, `git rebase --continue` finished the rebase. But then + Erik expected `ORIG_HEAD` to point to the tip + of the rebased branch before the rebase, while instead it pointed to + the HEAD before the reset. + + `ORIG_HEAD` is one of the pseudo-references that some Git commands + use, like `FETCH_HEAD`, `MERGE_HEAD` and a few others. + + Phillip Wood replied to Erik saying that it was expected that `git + reset` would change `ORIG_HEAD` to `HEAD` just before it was + performed. He suggested using the reflog with something like + `branch-name@{1}` where `branch-name` is the branch that was + rebased and the `@{1}` part indicates the previous entry in the + reflog for the branch. + + Erik replied that he knew about the reflog but just expected + `ORIG_HEAD` to be reset to `.git/rebase-merge/orig-head` at the end of + the rebase. `.git/rebase-merge/orig-head` is an internal file that + stores the tip of the branch before it was rebased. + + Philippe Blain replied to Erik that he just hit the same bug. He + also said that he was confused by the rebase documentation and gave + the series of commands he used to get hit. + + Phillip Wood replied to both Erik and Philippe Blain that if we + changed the behavior to make `ORIG_HEAD` point to the tip of the + branch before it was rebased, some people might not be happy as they + might expect `git reset` to have changed `ORIG_HEAD`. Other people + might expect on the contrary that `ORIG_HEAD` was always set to the + tip of the branch before the rebase when the rebase stoped, which + would mean that `git rebase --continue` would always need to make + sure `ORIG_HEAD` fulfills that expectation. + + Phillip said he thought the situation was confusing and he didn't + see a way to make it clearer. + + Philippe Blain agreed that some people might rely on the current + behavior and said he would send documentation updates to make things + clearer. + + He then sent + [a patch series](https://lore.kernel.org/git/pull.1456.git.1673120359.gitgitgadget@gmail.com/) + consisting of small changes to the documentation of a number of + commands: `cherry-pick`, `merge`, `rebase` and `reset`, as well as + in the [documentation about Git revisions](https://git-scm.com/docs/gitrevisions). + + Junio Hamano, the Git maintainer, commented on some wordings which + led Philippe to send + [a version 2 of his series](https://lore.kernel.org/git/pull.1456.v2.git.1673356521.gitgitgadget@gmail.com/). + + This version was accepted and later merged to the master branch. +* [The technology behind GitHub’s new code search](https://github.blog/2023-02-06-the-technology-behind-githubs-new-code-search/) + by Timothy Clem in the Engineering section of the GitHub Blog. +* [Mobile Price Classification: An Open Source Data Science Project with Dagshub](https://hackernoon.com/mobile-price-classification-an-open-source-data-science-project-with-dagshub) + by Davis David (@davisdavid) on HackerNoon. + * The workflow described in this article uses + [DVC](https://dvc.org/) (first mentioned in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/)), + [DAGsHub](https://dagshub.com/) (first mentioned in [Git Rev News Edition #72](https://git.github.io/rev_news/2021/02/27/edition-72/)), + MLflow, and Streamlit library. +* [FAIR data pipeline: provenance-driven data management for traceable scientific workflows](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2021.0300); + an open access research article in Volume 380, Issue 2233 + of Philosophical Transactions of The Royal Society A + ([DOI:10.1098/rsta.2021.0300](https://doi.org/10.1098/rsta.2021.0300)). + - +* [Move Commits Between Branches in Git](https://www.youtube.com/watch?v=0pzFGXvemvA) + by Leonardo Montini, also known as Dev Leonardo.
    + You can read accompanying [Move Commits Between Branches in Git - 3 Different Methods](https://dev.to/this-is-learning/move-commits-between-branches-in-git-3-different-methods-22bb) + article on DEV\.to (for This is Learning), 5th part of the + [git better - Improve your git skills](https://dev.to/balastrong/series/21372) series. + __Git tools and sites__ +* **[conventional: comments](https://conventionalcomments.org/)** are a set of conventions + to make code review comments to be easy to grok and grep. + * This can be considered a companionn to [Conventional Commits](https://www.conventionalcommits.org/) specification, + first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). +* [Flipt](https://www.flipt.io/) is an [open source](https://github.com/flipt-io/flipt), + self-hosted feature flag solution. + * [Feature Flags](https://featureflags.io/) or [Feature Toggles](https://martinfowler.com/articles/feature-toggles.html) + are a technique that allows to modify system behavior without changing code. + They are often used with [Trunk Based Development](https://trunkbaseddevelopment.com/), + as described in [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html) + by Martin Fowler, which was mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). +* [git-workflow](https://github.com/Ovid/git-workflow) + by Curtis “Ovid” Poe + a simplified subset of the git tools used by + [All Around the World](https://allaroundtheworld.fr/) company for software development. + It provides three new commands: `git refresh`, `git pushback` and `git done`. +* [Git-Heat-Map](https://github.com/jmforsythe/Git-Heat-Map) + is tool to visualise a git repository by diff activity using a treemap chart. +* [Diff/merge tools](https://danmackinlay.name/notebook/diffing.html) and + [Git GUIs](https://danmackinlay.name/notebook/git_guis.html) - notebooks + of Dan MacKinlay. +* [Git tricks](https://danmackinlay.name/notebook/git.html): + Dan MacKinlay's notes and links, not intended to be tutorial. +* [Awesome CLI Apps](https://github.com/agarrharr/awesome-cli-apps), + is a curated list of command line apps, including the ones + [for Version Control](https://github.com/agarrharr/awesome-cli-apps#version-control). +* [Automerge 2.0](https://automerge.org/blog/automerge-2/) + is a [CRDT](https://crdt.tech/), or "Conflict-free Replicated Data Type", + that one can use to implement real-time collaboration for an application, + which is focused on optimizing editing of plaintext. ## Credits From bb763857dcfc4236994910aa28d202f67b543240 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 28 Feb 2023 20:43:02 +0100 Subject: [PATCH 0482/1248] Supplied tiny corrections and rephrasings. --- rev_news/drafts/edition-96.md | 63 ++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/rev_news/drafts/edition-96.md b/rev_news/drafts/edition-96.md index 3161c9612c..7e6a6b5ef9 100644 --- a/rev_news/drafts/edition-96.md +++ b/rev_news/drafts/edition-96.md @@ -13,7 +13,7 @@ Welcome to the 96th edition of [Git Rev News](https://git.github.io/rev_news/rev a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see [the Git Rev News page](https://git.github.io/rev_news/rev_news/) on [git.github.io](http://git.github.io). -This edition covers what happened during the months of February 2023 and January 2023. +This edition covers what happened during the months of January and February 2023. ## Discussions @@ -28,35 +28,35 @@ This edition covers what happened during the months of February 2023 and January ### Support -* [bug?: ORIG_HEAD incorrect after reset during git-rebase -i](https://lore.kernel.org/git/CA+JQ7M-ynq1cLN-3ZodXae=x-H5k7Ab6uPBwUFhG+kgtOvCgtA@mail.gmail.com/) +* [Bug?: `ORIG_HEAD` incorrect after reset during `git-rebase -i`](https://lore.kernel.org/git/CA+JQ7M-ynq1cLN-3ZodXae=x-H5k7Ab6uPBwUFhG+kgtOvCgtA@mail.gmail.com/) Erik Cervin Edin sent an email to the mailing list with steps to - reproduce a behavior that he didn't like. The steps consisted in an - interactive rebase during which a commit was edited and a reset was - performed while editing the commit. + reproduce a behavior that he didn't like. The steps consisted of an + interactive rebase during which a commit was edited and a reset which + was performed while editing the commit. After editing, `git rebase --continue` finished the rebase. But then Erik expected `ORIG_HEAD` to point to the tip of the rebased branch before the rebase, while instead it pointed to - the HEAD before the reset. + the `HEAD` before the reset. `ORIG_HEAD` is one of the pseudo-references that some Git commands - use, like `FETCH_HEAD`, `MERGE_HEAD` and a few others. + use, like `FETCH_HEAD`, `MERGE_HEAD`, and a few others. Phillip Wood replied to Erik saying that it was expected that `git reset` would change `ORIG_HEAD` to `HEAD` just before it was performed. He suggested using the reflog with something like - `branch-name@{1}` where `branch-name` is the branch that was + `branch-name@{1}` where `branch-name` is the branch being rebased and the `@{1}` part indicates the previous entry in the reflog for the branch. Erik replied that he knew about the reflog but just expected `ORIG_HEAD` to be reset to `.git/rebase-merge/orig-head` at the end of the rebase. `.git/rebase-merge/orig-head` is an internal file that - stores the tip of the branch before it was rebased. + stores the tip of the branch before a rebase operation. Philippe Blain replied to Erik that he just hit the same bug. He - also said that he was confused by the rebase documentation and gave + also said that he was confused by the rebase documentation and supplied the series of commands he used to get hit. Phillip Wood replied to both Erik and Philippe Blain that if we @@ -64,9 +64,9 @@ This edition covers what happened during the months of February 2023 and January branch before it was rebased, some people might not be happy as they might expect `git reset` to have changed `ORIG_HEAD`. Other people might expect on the contrary that `ORIG_HEAD` was always set to the - tip of the branch before the rebase when the rebase stoped, which + tip of the branch before the rebase when the rebase stopped, which would mean that `git rebase --continue` would always need to make - sure `ORIG_HEAD` fulfills that expectation. + sure `ORIG_HEAD` fulfilled that expectation. Phillip said he thought the situation was confusing and he didn't see a way to make it clearer. @@ -79,9 +79,9 @@ This edition covers what happened during the months of February 2023 and January [a patch series](https://lore.kernel.org/git/pull.1456.git.1673120359.gitgitgadget@gmail.com/) consisting of small changes to the documentation of a number of commands: `cherry-pick`, `merge`, `rebase` and `reset`, as well as - in the [documentation about Git revisions](https://git-scm.com/docs/gitrevisions). + to the [documentation about Git revisions](https://git-scm.com/docs/gitrevisions). - Junio Hamano, the Git maintainer, commented on some wordings which + Junio Hamano, the Git maintainer, commented on some wordings, which after short discussions led Philippe to send [a version 2 of his series](https://lore.kernel.org/git/pull.1456.v2.git.1673356521.gitgitgadget@gmail.com/) with very few changes. @@ -143,8 +143,9 @@ __Light reading__ * [How to Merge a Git Feature Branch with a Squash Commit](https://dev.to/esaraviam/how-to-merge-a-git-feature-branch-with-a-squash-commit-8af) by Luis Esteban Saravia M on DEV\.to.
    This is an alternative to repeatedly using the `squash` command of the [interactive rebase](https://git-scm.com/docs/git-rebase#_interactive_mode). -* [Why I love GitLens in my VsCode - Part 1](https://blog.delpuppo.net/why-i-love-gitlens-in-my-vscode-part-1) - and [Part 2](https://blog.delpuppo.net/why-i-love-gitlens-in-my-vscode-part-2) +* [Why I love GitLens in my VsCode - Part 1](https://blog.delpuppo.net/why-i-love-gitlens-in-my-vscode-part-1), + [Part 2](https://blog.delpuppo.net/why-i-love-gitlens-in-my-vscode-part-2), + and [Part 3](https://blog.delpuppo.net/why-i-love-gitlens-in-my-vscode-part-3) by Luca Del Puppo on his blog.
    Also available [on DEV\.to](https://dev.to/this-is-learning/why-i-love-gitlens-in-my-vscode-part-1-5cmp). * [Data versioning](https://danmackinlay.name/notebook/data_versioning.html), @@ -154,28 +155,29 @@ __Light reading__ * [Dolt](https://www.dolthub.com/), which is a [version controlled SQL database](https://www.dolthub.com/blog/2021-09-17-database-version-control/) (first mentioned in [Git Rev News Edition #62](https://git.github.io/rev_news/2020/04/23/edition-62/)), * [Pachyderm](https://www.pachyderm.com/) (first mentioned in [Git Rev News Edition #49](https://git.github.io/rev_news/2019/03/20/edition-49/)), - * [git-annex](http://git-annex.branchable.com/) - not targetted specifically at data science + * [git-annex](http://git-annex.branchable.com/) - not targeted specifically at data science (first mentioned in passing in [Git Rev News #3](https://git.github.io/rev_news/2015/05/13/edition-3/)), * [DataLad](https://www.datalad.org/), * [Go Get Data (ggd)](https://gogetdata.github.io/) from the genomics community; it seems to be a lighter version of Pachyderm, * [Splitgraph](https://www.splitgraph.com/docs/getting-started/introduction), - that works on top of PostgreSQL, + which works on top of PostgreSQL, * [Sno](https://sno.earth/) to store geospatial and tabular data in Git
    (see also [Kart](https://kartproject.org/), mentioned in [Git Rev News #85](https://git.github.io/rev_news/2022/03/31/edition-85/), _which is not listed in this notebook_). + The notebook also mentions [Pangeo Forge](https://github.com/pangeo-forge/roadmap) (like Conda Forge, but for data), [Intake](https://intake.readthedocs.io/en/latest/index.html) (lightweight package for finding, investigating, loading and disseminating data), and [Flat Data](https://githubnext.com/projects/flat-data) - formerly GitHub OCTO - (to bring working sets of data to your repositories, based on - [“git scraping” approach pioneered by Simon Willison](https://simonwillison.net/2020/Oct/9/git-scraping/) + (to bring working sets of data to your repositories, based on the + [“Git scraping” approach pioneered by Simon Willison](https://simonwillison.net/2020/Oct/9/git-scraping/) (mentioned in [Git Rev News Edition #68](https://git.github.io/rev_news/2020/10/30/edition-68/))).
    See also [Git Rev News #82](https://git.github.io/rev_news/2021/12/30/edition-82/), - which mentions tools for version controlling database schema, version controlling queries, - data versioning, etc. - all taken from articles on DoltHub Blog. + which mentions tools for version controlling database schemas, version controlling queries, + data versioning, etc. -- all taken from articles on DoltHub Blog. * [The Git source code audit, viewed as a Rust programmer](https://litchipi.github.io/infosec/2023/01/24/git-code-audit-viewed-as-rust-programmer.html) - by Litchi Pi (Tim); the audit itself was mentioned in [previous Git Rev News](https://git.github.io/rev_news/2023/01/31/edition-95/). + by Litchi Pi (Tim); the audit itself was mentioned in [Git Rev News #95](https://git.github.io/rev_news/2023/01/31/edition-95/). * [An Easy git Workflow](https://dev.to/ovid/an-easy-git-workflow-4gm0) by Curtis “Ovid” Poe on DEV\.to.
    Also available as [Easy Git Workflow](https://ovid.github.io/articles/easy-git-workflow.html) (2020) @@ -189,7 +191,7 @@ __Light reading__ * The workflow described in this article uses [DVC](https://dvc.org/) (first mentioned in [Git Rev News Edition #42](https://git.github.io/rev_news/2018/08/22/edition-42/)), [DAGsHub](https://dagshub.com/) (first mentioned in [Git Rev News Edition #72](https://git.github.io/rev_news/2021/02/27/edition-72/)), - MLflow, and Streamlit library. + MLflow, and the Streamlit library. * [FAIR data pipeline: provenance-driven data management for traceable scientific workflows](https://royalsocietypublishing.org/doi/full/10.1098/rsta.2021.0300); an open access research article in Volume 380, Issue 2233 of Philosophical Transactions of The Royal Society A @@ -199,15 +201,15 @@ __Light reading__ __Easy watching__ * [Move Commits Between Branches in Git](https://www.youtube.com/watch?v=0pzFGXvemvA) by Leonardo Montini, also known as Dev Leonardo.
    - You can read accompanying [Move Commits Between Branches in Git - 3 Different Methods](https://dev.to/this-is-learning/move-commits-between-branches-in-git-3-different-methods-22bb) + You can read the accompanying [Move Commits Between Branches in Git - 3 Different Methods](https://dev.to/this-is-learning/move-commits-between-branches-in-git-3-different-methods-22bb) article on DEV\.to (for This is Learning), 5th part of the [git better - Improve your git skills](https://dev.to/balastrong/series/21372) series. __Git tools and sites__ -* **[conventional: comments](https://conventionalcomments.org/)** are a set of conventions +* [**conventional:** comments](https://conventionalcomments.org/) are a set of conventions to make code review comments to be easy to grok and grep. - * This can be considered a companionn to [Conventional Commits](https://www.conventionalcommits.org/) specification, + * This can be considered a companion to [Conventional Commits](https://www.conventionalcommits.org/) specification, first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). * [Flipt](https://www.flipt.io/) is an [open source](https://github.com/flipt-io/flipt), self-hosted feature flag solution. @@ -217,18 +219,17 @@ __Git tools and sites__ as described in [Patterns for Managing Source Code Branches](https://martinfowler.com/articles/branching-patterns.html) by Martin Fowler, which was mentioned in [Git Rev News Edition #63](https://git.github.io/rev_news/2020/05/28/edition-63/). * [git-workflow](https://github.com/Ovid/git-workflow) - by Curtis “Ovid” Poe - a simplified subset of the git tools used by + by Curtis “Ovid” Poe is a simplified subset of the Git tools used by [All Around the World](https://allaroundtheworld.fr/) company for software development. It provides three new commands: `git refresh`, `git pushback` and `git done`. * [Git-Heat-Map](https://github.com/jmforsythe/Git-Heat-Map) - is tool to visualise a git repository by diff activity using a treemap chart. + is a tool to visualize a Git repository by diff activity using a treemap chart. * [Diff/merge tools](https://danmackinlay.name/notebook/diffing.html) and [Git GUIs](https://danmackinlay.name/notebook/git_guis.html) - notebooks of Dan MacKinlay. * [Git tricks](https://danmackinlay.name/notebook/git.html): Dan MacKinlay's notes and links, not intended to be tutorial. -* [Awesome CLI Apps](https://github.com/agarrharr/awesome-cli-apps), +* [Awesome CLI Apps](https://github.com/agarrharr/awesome-cli-apps) is a curated list of command line apps, including the ones [for Version Control](https://github.com/agarrharr/awesome-cli-apps#version-control). * [Automerge 2.0](https://automerge.org/blog/automerge-2/) From 5092963c6c0fcbef67d7bb0a417d72703dc5d7f0 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 1 Mar 2023 00:10:28 +0100 Subject: [PATCH 0483/1248] Publish rn-96 in _posts/ --- .../drafts/edition-96.md => _posts/2023-02-28-edition-96.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-96.md => _posts/2023-02-28-edition-96.markdown (100%) diff --git a/rev_news/drafts/edition-96.md b/_posts/2023-02-28-edition-96.markdown similarity index 100% rename from rev_news/drafts/edition-96.md rename to _posts/2023-02-28-edition-96.markdown From 8aee07338c7502992f8784ea6da65d6a63973809 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 1 Mar 2023 00:10:28 +0100 Subject: [PATCH 0484/1248] Add draft for rn-97 --- rev_news/drafts/edition-97.md | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-97.md diff --git a/rev_news/drafts/edition-97.md b/rev_news/drafts/edition-97.md new file mode 100644 index 0000000000..1a8134a1a8 --- /dev/null +++ b/rev_news/drafts/edition-97.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 97 (March 29th, 2023) +layout: default +date: 2023-03-29 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 97 (March 29th, 2023) + +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). + +This edition covers what happened during the months of February 2023 and March 2023. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 738872706440115392c12565bcd95f378684a699 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 1 Mar 2023 00:21:27 +0100 Subject: [PATCH 0485/1248] rn-96: add GSoC 2023 accepted org short news --- _posts/2023-02-28-edition-96.markdown | 3 +++ 1 file changed, 3 insertions(+) diff --git a/_posts/2023-02-28-edition-96.markdown b/_posts/2023-02-28-edition-96.markdown index 7e6a6b5ef9..a664e33bb7 100644 --- a/_posts/2023-02-28-edition-96.markdown +++ b/_posts/2023-02-28-edition-96.markdown @@ -129,6 +129,9 @@ This edition covers what happened during the months of January and February 2023 ## Other News __Various__ +* The Git project has been accepted as + [a Mentor Organization](https://summerofcode.withgoogle.com/programs/2023/organizations/git) + for Google Summer of Code (GSoC) 2023. * [GitLab Improves Merge Requests, GitOps Functionality and More](https://www.infoq.com/news/2023/02/gitlab-15-3-through-15-8-release/) by Matt Saunders on InfoQ, about versions 15.3 through 15.8. * [Git archive generation meets Hyrum's law](https://lwn.net/Articles/921787/) From 609a34a883b182c42c54da6c6b719b3c0064c25c Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 1 Mar 2023 00:29:02 +0100 Subject: [PATCH 0486/1248] rn-96: nudge people to participate in GSoC 2023 as mentors --- _posts/2023-02-28-edition-96.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_posts/2023-02-28-edition-96.markdown b/_posts/2023-02-28-edition-96.markdown index a664e33bb7..2e59d3ccf9 100644 --- a/_posts/2023-02-28-edition-96.markdown +++ b/_posts/2023-02-28-edition-96.markdown @@ -131,7 +131,8 @@ This edition covers what happened during the months of January and February 2023 __Various__ * The Git project has been accepted as [a Mentor Organization](https://summerofcode.withgoogle.com/programs/2023/organizations/git) - for Google Summer of Code (GSoC) 2023. + for Google Summer of Code (GSoC) 2023. We could still add project ideas to + [our idea page](https://git.github.io/SoC-2023-Ideas/) and volunteers to (co-)mentor are still welcome. * [GitLab Improves Merge Requests, GitOps Functionality and More](https://www.infoq.com/news/2023/02/gitlab-15-3-through-15-8-release/) by Matt Saunders on InfoQ, about versions 15.3 through 15.8. * [Git archive generation meets Hyrum's law](https://lwn.net/Articles/921787/) From 0bb66a13a5d30283fc30157c257f45e956edc3b2 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 1 Mar 2023 00:52:19 +0100 Subject: [PATCH 0487/1248] rn-96: fix publication date --- _posts/2023-02-28-edition-96.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2023-02-28-edition-96.markdown b/_posts/2023-02-28-edition-96.markdown index 2e59d3ccf9..3a4b62945e 100644 --- a/_posts/2023-02-28-edition-96.markdown +++ b/_posts/2023-02-28-edition-96.markdown @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 96 (February 22nd, 2023) +title: Git Rev News Edition 96 (February 28th, 2023) layout: default -date: 2023-02-22 12:06:51 +0100 +date: 2023-02-28 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 96 (February 22nd, 2023) +## Git Rev News: Edition 96 (February 28th, 2023) 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 From e1a5c54e71ba2e0ff450a1cbbd4583a02d8758ba Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Sun, 5 Mar 2023 13:22:32 +0100 Subject: [PATCH 0488/1248] Edition 96: Corrected helpers list. --- _posts/2023-02-28-edition-96.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2023-02-28-edition-96.markdown b/_posts/2023-02-28-edition-96.markdown index 3a4b62945e..74f8994cfb 100644 --- a/_posts/2023-02-28-edition-96.markdown +++ b/_posts/2023-02-28-edition-96.markdown @@ -249,4 +249,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Bruno Brito. From b2773e7b7f1a2682dadfb4a1fc921edd4bf5c9f8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 14 Mar 2023 12:58:25 +0100 Subject: [PATCH 0489/1248] Microproject Info: suggest emailing the list first --- General-Microproject-Information.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 888c66f57b..464ec75d97 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -350,6 +350,25 @@ expected. Something like "I couldn't find a good micro-project for me", for example, doesn't tell us much, and doesn't give us any idea about how we could help you. +## Why it's better to introduce yourself by directly emailing the mailing list + +We understand that some people are a bit shy or reluctant to email the +mailing list directly and interact with people there, but that's +something that is required to contribute to Git. So you will have to +do it at one point anyway. + +Also please understand that there are often a significant number of +people interested in participating in programs like GSoC or Outreachy, +and mentors prefer to answer questions once and for all on the mailing +list instead of many times privately to everyone interested in +participating. + +Emailing mentors privately will not give you any advantage. On the +contrary it might just signal potential mentors that you are not very +willing to interact with the mailing list. It will also increase the +workload of mentors for possibly no good reason which is not something +they like. + ## Some conventions and tips It can be intimidating to introduce yourself or send your first patch From b08d960d36c6315e622f927d31a29da9f6e0e623 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 14 Mar 2023 13:45:19 +0100 Subject: [PATCH 0490/1248] Microproject Info: explain when mentoring starts --- General-Microproject-Information.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/General-Microproject-Information.md b/General-Microproject-Information.md index 464ec75d97..2f1be88b9f 100644 --- a/General-Microproject-Information.md +++ b/General-Microproject-Information.md @@ -369,6 +369,12 @@ willing to interact with the mailing list. It will also increase the workload of mentors for possibly no good reason which is not something they like. +Mentors will be willing to properly mentor those who have been +selected to participate in the mentoring program, but until then they +cannot, and don't want to, privately mentor several people to help +them be selected. It wouldn't be fair to those who are doing the right +thing and interacting with the mailing list directly. + ## Some conventions and tips It can be intimidating to introduce yourself or send your first patch From c690b38080479b22448d63af947f664422d3aabc Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Wed, 15 Mar 2023 10:41:10 +0000 Subject: [PATCH 0491/1248] rn-97: Add "Performance in Git" article --- rev_news/drafts/edition-97.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-97.md b/rev_news/drafts/edition-97.md index 1a8134a1a8..5ab3c3a106 100644 --- a/rev_news/drafts/edition-97.md +++ b/rev_news/drafts/edition-97.md @@ -42,7 +42,7 @@ __Various__ __Light reading__ - ++ [How to Improve Performance in Git: The Complete Guide](https://www.git-tower.com/blog/git-performance/) by Bruno Brito on Tower’s blog. From 0e62e15dfc5bdee8a94a382b45ce3ef40420b862 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 15 Mar 2023 14:23:51 +0100 Subject: [PATCH 0492/1248] rn-97: add Bruno Brito among the helpers --- rev_news/drafts/edition-97.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-97.md b/rev_news/drafts/edition-97.md index 5ab3c3a106..e5fb85eb10 100644 --- a/rev_news/drafts/edition-97.md +++ b/rev_news/drafts/edition-97.md @@ -42,7 +42,9 @@ __Various__ __Light reading__ + + [How to Improve Performance in Git: The Complete Guide](https://www.git-tower.com/blog/git-performance/) by Bruno Brito on Tower’s blog. + @@ -57,4 +59,4 @@ Christian Couder <>, Jakub Narębski <>, Markus Jansen <> and Kaartic Sivaraam <> -with help from XXX. +with help from Bruno Brito. From 95760d5f6447999cf5dc4b6d0f71deb439058c84 Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Tue, 21 Mar 2023 14:08:06 -0400 Subject: [PATCH 0493/1248] SoC-2022-Microprojects.md: clarify exit-code microproject The original description is somewhat confusing, and has been the source of real-world confusion on the mailing list. Let's clarify what we are trying to promote and avoid, as well as give some examples and background about our integration test suite. (Note: I don't think we ever wrote any new microproject ideas for GSoC 2023, and ISTM that we are just reusing the ones from 2022. That's fine, and is the reason that I made these changes in the SoC-2022 file instead of creating a new one). Signed-off-by: Taylor Blau --- SoC-2022-Microprojects.md | 54 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/SoC-2022-Microprojects.md b/SoC-2022-Microprojects.md index 225fb1afaf..250c7b4693 100644 --- a/SoC-2022-Microprojects.md +++ b/SoC-2022-Microprojects.md @@ -46,17 +46,65 @@ functions. If you can't find one please tell us, along with the command you used to search, so that we can remove this microproject idea. -### Avoid pipes in git related commands in test scripts +### 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. -The git command should be on the left side of the pipe. - If you can't find one please tell us, along with the command you used to search, so that we can remove this microproject idea. +[git-t]: https://github.com/git/git/tree/master/t +[wikipedia-pipes]: https://en.wikipedia.org/wiki/Pipeline_(Unix) + ### Use unsigned integral type for collection of bits. Pick one field of a structure that (1) is of signed integral type and (2) is From f6d34b30a6b779101a26ab7183e09e83de87b6d2 Mon Sep 17 00:00:00 2001 From: Bruno Brito Date: Wed, 22 Mar 2023 13:07:45 +0100 Subject: [PATCH 0494/1248] rn-97: Add "Integrating 1Password SSH with Git (and Tower!)" article --- rev_news/drafts/edition-97.md | 1 + 1 file changed, 1 insertion(+) diff --git a/rev_news/drafts/edition-97.md b/rev_news/drafts/edition-97.md index e5fb85eb10..12d2c8f134 100644 --- a/rev_news/drafts/edition-97.md +++ b/rev_news/drafts/edition-97.md @@ -44,6 +44,7 @@ __Various__ __Light reading__ + [How to Improve Performance in Git: The Complete Guide](https://www.git-tower.com/blog/git-performance/) by Bruno Brito on Tower’s blog. ++ [Integrating 1Password SSH with Git (and Tower!)](https://www.git-tower.com/blog/1password-ssh-tower/) by Bruno Brito on Tower’s blog. ## Releases - ++ Tower for Windows [4.3](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) ## Other News From effb7c1c9cc8ed3d09a86fc449d6a8e6eac3da87 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Wed, 29 Mar 2023 10:58:06 +0200 Subject: [PATCH 0496/1248] rn-97: add releases --- rev_news/drafts/edition-97.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/rev_news/drafts/edition-97.md b/rev_news/drafts/edition-97.md index e9a220899e..6489025231 100644 --- a/rev_news/drafts/edition-97.md +++ b/rev_news/drafts/edition-97.md @@ -34,6 +34,34 @@ This edition covers what happened during the months of February 2023 and March 2 --> ## Releases + ++ Git [2.40.0](https://public-inbox.org/git/xmqqjzzkv8xz.fsf@gitster.g/), +[2.40.0-rc2](https://public-inbox.org/git/xmqqy1o8wdgi.fsf@gitster.g/), +[2.40.0-rc1](https://public-inbox.org/git/xmqqilfknzen.fsf@gitster.g/) ++ Git for Windows [2.40.0(1)](https://github.com/git-for-windows/git/releases/tag/v2.40.0.windows.1), +[2.40.0-rc2(1)](https://github.com/git-for-windows/git/releases/tag/v2.40.0-rc2.windows.1), +[2.40.0-rc1(1)](https://github.com/git-for-windows/git/releases/tag/v2.40.0-rc1.windows.1), +[2.40.0-rc0(1)](https://github.com/git-for-windows/git/releases/tag/v2.40.0-rc0.windows.1) ++ libgit2 [1.6.3](https://github.com/libgit2/libgit2/releases/tag/v1.6.3), +[1.6.2](https://github.com/libgit2/libgit2/releases/tag/v1.6.2) ++ GitHub Enterprise [3.8.1](https://help.github.com/enterprise-server@3.8/admin/release-notes#3.8.1), +[3.7.8](https://help.github.com/enterprise-server@3.7/admin/release-notes#3.7.8), +[3.6.11](https://help.github.com/enterprise-server@3.6/admin/release-notes#3.6.11), +[3.5.15](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.15), +[3.4.18](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.18), +[3.8.0](https://help.github.com/enterprise-server@3.8/admin/release-notes#3.8.0), +[3.7.7](https://help.github.com/enterprise-server@3.7/admin/release-notes#3.7.7), +[3.6.10](https://help.github.com/enterprise-server@3.6/admin/release-notes#3.6.10), +[3.5.14](https://help.github.com/enterprise-server@3.5/admin/release-notes#3.5.14), +[3.4.17](https://help.github.com/enterprise-server@3.4/admin/release-notes#3.4.17) ++ GitLab [15.10](https://about.gitlab.com/releases/2023/03/22/gitlab-15-10-released/) +[15.9.3](https://about.gitlab.com/releases/2023/03/09/gitlab-15-9-3-released/), +[15.9.2, 15.8.4, and 15.7.8](https://about.gitlab.com/releases/2023/03/02/security-release-gitlab-15-9-2-released/) ++ Gerrit Code Review [3.7.2](https://www.gerritcodereview.com/3.7.html#372) ++ GitKraken [9.2.1](https://help.gitkraken.com/gitkraken-client/current/), +[9.2.0](https://help.gitkraken.com/gitkraken-client/current/) ++ GitHub Desktop [3.2.0](https://desktop.github.com/release-notes/) ++ Sourcetree [4.2.2](https://product-downloads.atlassian.com/software/sourcetree/ReleaseNotes/Sourcetree_4.2.2.html) + Tower for Windows [4.3](https://www.git-tower.com/release-notes/windows?show_tab=release-notes) ## Other News From c07305ceee5f4b68b4734e04b78facee986c24a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Wed, 29 Mar 2023 23:29:48 +0200 Subject: [PATCH 0497/1248] rn-97: Add links to various news, articles, sites, and tools --- rev_news/drafts/edition-97.md | 93 +++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/rev_news/drafts/edition-97.md b/rev_news/drafts/edition-97.md index 6489025231..5cba7f3a8b 100644 --- a/rev_news/drafts/edition-97.md +++ b/rev_news/drafts/edition-97.md @@ -57,6 +57,7 @@ This edition covers what happened during the months of February 2023 and March 2 + GitLab [15.10](https://about.gitlab.com/releases/2023/03/22/gitlab-15-10-released/) [15.9.3](https://about.gitlab.com/releases/2023/03/09/gitlab-15-9-3-released/), [15.9.2, 15.8.4, and 15.7.8](https://about.gitlab.com/releases/2023/03/02/security-release-gitlab-15-9-2-released/) ++ Gitea [1.19.0](https://blog.gitea.io/2023/03/gitea-1.19.0-is-released/) + Gerrit Code Review [3.7.2](https://www.gerritcodereview.com/3.7.html#372) + GitKraken [9.2.1](https://help.gitkraken.com/gitkraken-client/current/), [9.2.0](https://help.gitkraken.com/gitkraken-client/current/) @@ -68,11 +69,57 @@ This edition covers what happened during the months of February 2023 and March 2 __Various__ ++ [Highlights from Git 2.40](https://github.blog/2023-03-13-highlights-from-git-2-40/) + by Taylor Blau on GitHub Blog. ++ [public-inbox.org/git to be downgraded](https://public-inbox.org/git/20230313225507.M626677@dcvr/T/) + to a cheaper VPS. + + There is https://lore.kernel.org/git/ if there are problems with public-inbox\.org instance. ++ [Unleash your potential with GitHub Octernships: a path to a thriving tech career](https://github.blog/2023-03-06-unleash-your-potential-with-github-octernships-a-path-to-a-thriving-tech-career/) + by Arkodyuti Saha on GitHub Blog. __Light reading__ + [How to Improve Performance in Git: The Complete Guide](https://www.git-tower.com/blog/git-performance/) by Bruno Brito on Tower’s blog. + [Integrating 1Password SSH with Git (and Tower!)](https://www.git-tower.com/blog/1password-ssh-tower/) by Bruno Brito on Tower’s blog. ++ [Slice, Dice, and Squash Your Git Commit History](https://webdeveloperdiary.substack.com/p/slice-dice-and-squash-your-git-commit) + by Anthony Fung on _Diary of a Web Developer_ Substack and + [on DEV.to](https://dev.to/ant_f_dev/slice-dice-and-squash-your-git-commit-history-2dk3) + is 3rd part in [The Secret of Tidy Git Repositories Series](https://dev.to/ant_f_dev/series/22124). ++ [Git fundamentals, a complete guide](https://dev.to/leandronsp/git-fundamentals-a-complete-guide-do7) + by Leandro Proença on DEV\.to.
    + See also: + + [Git from the Bottom Up](https://jwiegley.github.io/git-from-the-bottom-up/) by John Wiegley, + mentioned in [Git Rev News Edition #2](https://git.github.io/rev_news/2015/04/05/edition-2/), + + [Git for Computer Scientists](https://eagain.net/articles/git-for-computer-scientists/) by Tommi Virtanen, + + and maybe also [Think Like (a) Git: a guide for the perplexed](https://think-like-a-git.net/) by Sam Livingston-Gray. ++ [Options to close pull requests on GitHub](https://dev.to/zdybit/3-options-to-close-pull-requests-on-github-what-2j3n) and + [Merge, squash & rebase on GitHub - pros & cons](https://dev.to/zdybit/when-to-use-particular-options-to-close-pull-requests-on-github-3ce8) + by Kacper Rychel on DEV\.to. ++ [How to Reset a File or Commit in Git](https://www.freecodecamp.org/news/git-revert-how-to-reset-a-file-or-commit/) + by Ihechikara Vincent Abba on freeCodeCamp. ++ [How atomic Git commits dramatically increased my productivity - and will increase yours too](https://dev.to/samuelfaure/how-atomic-git-commits-dramatically-increased-my-productivity-and-will-increase-yours-too-4a84) + by Samuel Faure on DEV\.to and [on Such Dev Blog](https://suchdevblog.com/lessons/AtomicGitCommits.html). ++ [Working with Git in JetBrains' Rider IDE](https://andrewlock.net/working-with-git-in-jetbrains-rider/) + by Andrew Lock on his .NET Escapades blog. ++ [GitHub Desktop 3.2 adds pull request preview – but is a GUI needed for Git?](https://devclass.com/2023/03/06/github-desktop-3-2-adds-pull-request-preview-but-is-a-gui-needed-for-git/) + by Tim Anderson on Dev Class. ++ [Best 8 Data Version Control Tools for Machine Learning 2023](https://dagshub.com/blog/best-data-version-control-tools/) + by Zoumana Keita on DagsHub Blog. + + See also links about data versioning + in [previous Git Rev News](https://git.github.io/rev_news/2023/02/28/edition-96/). ++ [A better git workflow?](https://discourse.julialang.org/t/a-better-git-workflow/95248) + proposal by uje on Julia Language Discourse forum. ++ [Code Commit Guidelines using Conventional Commits](https://proandroiddev.com/code-commit-guidelines-using-conventional-commits-379321ce3785) + by Pragnesh Ghoda on ProAndroidDev, a Medium blog. + The [Conventional Commits](https://www.conventionalcommits.org) specification + was first mentioned in [Git Rev News Edition #52](https://git.github.io/rev_news/2019/06/28/edition-52/). + + ++ [Empowering weak primitives: file truncation to code execution with Git](https://www.sonarsource.com/blog/empowering-weak-primitives-file-truncation-to-code-execution-with-git/) + by Thomas Chauchefoin on Sonar(Source) Blog + (note that it is not about vulnerability in Git).
    + References [Securing Developer Tools: Git Integrations](https://www.sonarsource.com/blog/securing-developer-tools-git-integrations/) + blog post. - + +* [bug report: symbolic-ref --short command echos the wrong text while use Chinese language](https://lore.kernel.org/git/CAGF3oAcCi+fG12j-1U0hcrWwkF5K_9WhOi6ZPHBzUUzfkrZDxA@mail.gmail.com/) + + Mengzi Yi (孟子易) sent a bug report to the mailing list saying that + when a Chinese name like 测试-加-增加-加-增加 was given to a branch, + then using `git symbolic-ref --short HEAD` on that branch didn't + give the right output (for example 测试-� instead of maybe 测试-加). + + Peff, alias Jeff King, replied saying that he couldn't reproduce the + issue on Linux and wondered if it was related to using MacOS as its + HFS+ filesystem might do some unicode normalization. He said that it + might alternatively be related to the shortening code in + `shorten_unambiguous_ref()` treating the names as bytes instead of + characters. Another possibility he mentioned was that the shortening + code, which used `scanf()`, was assuming that the resulting string + could not be longer than the input, but that this might be wrong + when some unicode normalization and locale are used. + + Eric Sunshine replied to Peff saying he was able to reproduce the + bug on MacOS 10.13 (while Mengzi used MacOS 13.2), but that it + didn't appear to be related to HFS+ unicode normalization as the on + disk bytes of the branch name he got were the same as what Peff got + on Linux. + + Peff replied to Eric asking if he could test a patch that would add + debug output and allocate twice as much memory for the shortened + name that would store the output from `scanf()` than for the input + of that function. Peff said the debug output on his Linux machine + showed that the input was 39 bytes long while the output was 28. + + Eric tested Peff's patch and initially reported 39 and 9 for the + input and output respectively. When setting `LANG=zh-CN.UTF-8`, he + got the same input and output lengths as Peff though, which pointed + to `scanf()` being indeed the culprit. + + Junio Hamano, the Git maintainer, replied to Eric's findings saying + "Well, that's ... criminal." and wondering if setting `LANG` to + `$ANY_VALID_ONE.UTF-8` would work the same way. + + This made Eric realize that the `zh-CN` language code he used was + invalid (it should have been `zh_CN`, so with an underscore + character instead of a dash). Eric anyway found out that using valid + LANG codes like `en_US`, `fr_FR`, `de_DE`, `ru_RU` and `zh_CN` gave + the 测试-? truncated output, while using `LANG=C` gave the correct + 测试-加-增加-加-增加 output. + + Junio, Peff and Eric discussed these results further wondering what + `scanf()` on MacOS could be doing wrong. Then Peff suggested + replacing the call to this function with some manual parsing, and + sent a sample in-email patch to do that. + + Eric tested Peff's patch and reported that it looked correct, worked + nicely and fixed the issue. He also agreed with the approach of + getting rid of `scanf()` calls in general. + + Peff then sent + [a regular small patch series](https://lore.kernel.org/git/Y+vVFFCRem6t4IGM@coredump.intra.peff.net/) + based on his previous patch which fixed a leak and made the changes + easier to follow. + + Juni and Eric reviewed the series and then discussed with Peff a bug + Junio found in it. Then Peff sent + [a version 2](https://lore.kernel.org/git/Y+z3MtgayoXsxaHA@coredump.intra.peff.net/) + of the patch series that fixed the bug and added tests. + + Torsten Bögershausen in the meantime tried to reproduce the original + bug and discussed how to do that with Eric. He also commented on the + new tests in the version 2 of the patch series as he found that it + wasn't clear in which context the bug could appear. Junio suggested + some clarifications that were approved by others. The resulting + patches were merged and included in the recent Git v2.40.0 release. + [Empowering weak primitives: file truncation to code execution with Git](https://www.sonarsource.com/blog/empowering-weak-primitives-file-truncation-to-code-execution-with-git/) by Thomas Chauchefoin on Sonar(Source) Blog - (note that it is not about vulnerability in Git).
    - References [Securing Developer Tools: Git Integrations](https://www.sonarsource.com/blog/securing-developer-tools-git-integrations/) + (note that it is not about a vulnerability in Git).
    + References the [Securing Developer Tools: Git Integrations](https://www.sonarsource.com/blog/securing-developer-tools-git-integrations/) blog post. + [What the ML is up with DevSecOps and AI?](https://about.gitlab.com/blog/2023/03/16/what-the-ml-ai/) by Taylor McCaslin on GitLab Blog. @@ -205,43 +205,42 @@ __Git tools and sites__ accepting it, especially for more complex changes. Those tools, as far as I understand it, do not take information from an issue tracker, or from code review comments attached to a pull request (or contained in a specialized - tool such as Gerrit) - so they cannot add this information to the proposed - commit message, they can only halucinate it. + tool such as Gerrit) -- so they cannot add this information to the proposed + commit message, they can only halucinate it.
    + All tools listed here require an [API key from OpenAI](https://platform.openai.com/account/api-keys). + [OpenCommit](https://github.com/di-sukharev/opencommit) - is GPT CLI to auto-generate impressive commits in 1 second; - needs API key from [OpenAI](https://platform.openai.com/account/api-keys). - Uses [Conventional Commits](https://www.conventionalcommits.org), - can use [GitMoji](https://gitmoji.dev/). + is a GPT CLI to auto-generate impressive commits in 1 second; + it uses [Conventional Commits](https://www.conventionalcommits.org), + and can use [GitMoji](https://gitmoji.dev/). Written as Node\.js CLI app. + See also [OpenCommit: GPT generates impressive commits in 1 second (open-source)](https://dev.to/disukharev/opencommit-gpt-cli-to-auto-generate-impressive-commits-in-1-second-46dh) by Dima Sukharev on DEV\.to. + [AI Commits](https://github.com/Nutlope/aicommits) - is a CLI app that writes your git commit messages for you with AI, + is a CLI app (`aicommits`) that writes your Git commit messages for you with AI, that can also be used as [`prepare-commit-msg` hook](https://git-scm.com/docs/githooks#_prepare_commit_msg). - Requires [API key from OpenAI](https://platform.openai.com/account/api-keys). Written as Node\.js v14+ CLI app. - + See also [AI generated git commit messages](https://dev.to/bdougieyo/ai-generated-git-commit-messages-4j7g) + + See also [AI generated Git commit messages](https://dev.to/bdougieyo/ai-generated-git-commit-messages-4j7g) by Brian Douglas on DEV\.to. - + [AI-Commit](https://github.com/nguyenvanduocit/ai-commit) + + [`ai-commit`](https://github.com/nguyenvanduocit/ai-commit) is a command line tool that uses [OpenAI](https://openai.com/)'s language generation capabilities to generate [conventional commit](https://www.conventionalcommits.org) messages for your Git repositories. Written in Go. + [gptcommit](https://github.com/zurawiki/gptcommit) is - a git prepare-commit-msg [hook](https://git-scm.com/docs/githooks) - for authoring commit messages with the [OpenAI](https://openai.com/)'s GPT-3 language model. + a Git `prepare-commit-msg` [hook](https://git-scm.com/docs/githooks) + for authoring commit messages with [OpenAI](https://openai.com/)'s GPT-3 language model. Written in Rust. + Mentioned in [Git Rev News Edition #95](https://git.github.io/rev_news/2023/01/31/edition-95/); see also [an article](https://zura.wiki/post/never-write-a-commit-message-again-with-the-help-of-gpt-3/) about this tool there. + [Planar](https://www.useplanar.com/) is a Chrome extension - that adds features used internally by big tech to GitHub code review. + that adds features used internally by big tech to speed up and simplify GitHub code review. + See also [Planar - Add 10x features to GitHub code review](https://www.ycombinator.com/launches/ICU-planar-add-10x-features-to-github-code-review) by Eshan Agarwal on Y Combinator (Launch YC). + [Git for Computer Scientists](https://eagain.net/articles/git-for-computer-scientists/) - by Tommi Virtanen is a quick introduction to git internals for people - who are not scared by words like Directed Acyclic Graph. + by Tommi Virtanen is a quick introduction to Git internals for people + who are not scared by words like directed acyclic graph. + [Think Like (a) Git: a guide for the perplexed](https://think-like-a-git.net/) by Sam Livingston-Gray, intended for "advanced beginners" with Git to help them achieve some level of _Git enlightenment_. From 76a0e354bd882dad3b97fdea1a01c3e499552ff8 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Apr 2023 16:27:29 +0200 Subject: [PATCH 0503/1248] rn-97: revert 'uses' back to 'used' in main article --- rev_news/drafts/edition-97.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rev_news/drafts/edition-97.md b/rev_news/drafts/edition-97.md index 374efaaad4..6d77427a1b 100644 --- a/rev_news/drafts/edition-97.md +++ b/rev_news/drafts/edition-97.md @@ -40,7 +40,7 @@ This edition covers what happened during the months of February 2023 and March 2 might alternatively be related to the shortening code in `shorten_unambiguous_ref()` treating the names as bytes instead of characters. Another possibility he mentioned was that the shortening - code, which uses `scanf()`, was assuming that the resulting string + code, which used `scanf()`, was assuming that the resulting string could not be longer than the input, but that this might be wrong when some Unicode normalization and locale were used. From 5b88b3594ff0b74e3537f38781168488059bcb2a Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Apr 2023 16:31:50 +0200 Subject: [PATCH 0504/1248] Publish rn-97 in _posts/ --- .../drafts/edition-97.md => _posts/2023-03-31-edition-97.markdown | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename rev_news/drafts/edition-97.md => _posts/2023-03-31-edition-97.markdown (100%) diff --git a/rev_news/drafts/edition-97.md b/_posts/2023-03-31-edition-97.markdown similarity index 100% rename from rev_news/drafts/edition-97.md rename to _posts/2023-03-31-edition-97.markdown From 308304bb41cf5f969c9cf1722dfb5e9637e608ca Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Apr 2023 16:31:50 +0200 Subject: [PATCH 0505/1248] Add draft for rn-98 --- rev_news/drafts/edition-98.md | 60 +++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rev_news/drafts/edition-98.md diff --git a/rev_news/drafts/edition-98.md b/rev_news/drafts/edition-98.md new file mode 100644 index 0000000000..9e6c2b0441 --- /dev/null +++ b/rev_news/drafts/edition-98.md @@ -0,0 +1,60 @@ +--- +title: Git Rev News Edition 98 (April 26th, 2023) +layout: default +date: 2023-04-26 12:06:51 +0100 +author: chriscool +categories: [news] +navbar: false +--- + +## Git Rev News: Edition 98 (April 26th, 2023) + +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). + +This edition covers what happened during the months of March 2023 and April 2023. + +## Discussions + + + + + + + + + +## Releases + + +## Other News + +__Various__ + + +__Light reading__ + + + +__Git tools and sites__ + + +## Credits + +This edition of Git Rev News was curated by +Christian Couder <>, +Jakub Narębski <>, +Markus Jansen <> and +Kaartic Sivaraam <> +with help from XXX. From 06f0dc16420c76d022c7f01ccaa96df4583b2758 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Apr 2023 16:44:42 +0200 Subject: [PATCH 0506/1248] rn-97: add notes from the libification eng discussion --- _posts/2023-03-31-edition-97.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/_posts/2023-03-31-edition-97.markdown b/_posts/2023-03-31-edition-97.markdown index 6d77427a1b..a949952ed9 100644 --- a/_posts/2023-03-31-edition-97.markdown +++ b/_posts/2023-03-31-edition-97.markdown @@ -147,6 +147,10 @@ __Various__ by Arkodyuti Saha on GitHub Blog. + [Future-proofing Git repository maintenance](https://about.gitlab.com/blog/2023/03/20/scaling-repository-maintenance/) by Patrick Steinhardt on GitLab blog. ++ [Notes from a video conference](https://lore.kernel.org/git/CAJoAoZm7147oH9ECr=y+OXonK5WSgc9H0b95sF7BhKjMn+oMZg@mail.gmail.com/) + on Thursday March 30 named + [libification eng discussion](https://lore.kernel.org/git/CAJoAoZ=KrnAWV3PpfBkYNs_KHFP5O2dVYOWY3jF=CM9+d89Dpg@mail.gmail.com/) + organized by Emily Shaffer are available. __Light reading__ From 051a8eeb30d4a8508a3539df1ec82750c1f8c3f1 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Sat, 1 Apr 2023 17:01:24 +0200 Subject: [PATCH 0507/1248] rn-97: change publication date to March 31st --- _posts/2023-03-31-edition-97.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/2023-03-31-edition-97.markdown b/_posts/2023-03-31-edition-97.markdown index a949952ed9..a0e2fa3223 100644 --- a/_posts/2023-03-31-edition-97.markdown +++ b/_posts/2023-03-31-edition-97.markdown @@ -1,13 +1,13 @@ --- -title: Git Rev News Edition 97 (March 29th, 2023) +title: Git Rev News Edition 97 (March 31st, 2023) layout: default -date: 2023-03-29 12:06:51 +0100 +date: 2023-03-31 12:06:51 +0100 author: chriscool categories: [news] navbar: false --- -## Git Rev News: Edition 97 (March 29th, 2023) +## Git Rev News: Edition 97 (March 31st, 2023) 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 From 2e99706a2e273a99b4ceb41aa918bb5d926d3edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Nar=C4=99bski?= Date: Sat, 1 Apr 2023 17:42:41 +0200 Subject: [PATCH 0508/1248] rn-97: Typo fix in link description --- _posts/2023-03-31-edition-97.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2023-03-31-edition-97.markdown b/_posts/2023-03-31-edition-97.markdown index a0e2fa3223..2c21ce5a07 100644 --- a/_posts/2023-03-31-edition-97.markdown +++ b/_posts/2023-03-31-edition-97.markdown @@ -159,7 +159,7 @@ __Light reading__ + [Slice, Dice, and Squash Your Git Commit History](https://webdeveloperdiary.substack.com/p/slice-dice-and-squash-your-git-commit) by Anthony Fung on _Diary of a Web Developer_ Substack and [on DEV.to](https://dev.to/ant_f_dev/slice-dice-and-squash-your-git-commit-history-2dk3) - in part 3 of [The Secret of Tidy Git Repositories Series](https://dev.to/ant_f_dev/series/22124). + is 3rd part of [The Secret of Tidy Git Repositories Series](https://dev.to/ant_f_dev/series/22124). + [Git fundamentals, a complete guide](https://dev.to/leandronsp/git-fundamentals-a-complete-guide-do7) by Leandro Proença on DEV\.to.
    See also: From 81821b7f034470295e026d71173c4004378864b2 Mon Sep 17 00:00:00 2001 From: Markus Jansen Date: Tue, 4 Apr 2023 09:24:53 +0200 Subject: [PATCH 0509/1248] Last fixes before sending the email. --- _posts/2023-03-31-edition-97.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_posts/2023-03-31-edition-97.markdown b/_posts/2023-03-31-edition-97.markdown index 2c21ce5a07..892c4a56e1 100644 --- a/_posts/2023-03-31-edition-97.markdown +++ b/_posts/2023-03-31-edition-97.markdown @@ -159,7 +159,7 @@ __Light reading__ + [Slice, Dice, and Squash Your Git Commit History](https://webdeveloperdiary.substack.com/p/slice-dice-and-squash-your-git-commit) by Anthony Fung on _Diary of a Web Developer_ Substack and [on DEV.to](https://dev.to/ant_f_dev/slice-dice-and-squash-your-git-commit-history-2dk3) - is 3rd part of [The Secret of Tidy Git Repositories Series](https://dev.to/ant_f_dev/series/22124). + as 3rd part of [The Secret of Tidy Git Repositories Series](https://dev.to/ant_f_dev/series/22124). + [Git fundamentals, a complete guide](https://dev.to/leandronsp/git-fundamentals-a-complete-guide-do7) by Leandro Proença on DEV\.to.
    See also: @@ -206,7 +206,7 @@ __Git tools and sites__ + There are a few tools that use GPT-3 / ChatGPT Large Language Model (LLM) to help write commit messages. Please read the proposed commit message before - accepting it, especially for more complex changes. Those tools, as far as I + accepting it, especially for more complex changes. Those tools, as far as we understand it, do not take information from an issue tracker, or from code review comments attached to a pull request (or contained in a specialized tool such as Gerrit) -- so they cannot add this information to the proposed From 78bb7e3b31030bef274568b9cac475a400e179b5 Mon Sep 17 00:00:00 2001 From: Christian Couder Date: Tue, 11 Apr 2023 14:32:01 +0200 Subject: [PATCH 0510/1248] Hacking-Git: add gdb test debugging example --- Hacking-Git.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Hacking-Git.md b/Hacking-Git.md index d8fe547873..9d20bd5ef5 100644 --- a/Hacking-Git.md +++ b/Hacking-Git.md @@ -108,6 +108,8 @@ suggest improvements. Thanks! * [Philippe Blain's "Debugging Git" Gist](https://gist.github.com/phil-blain/17c67740bd26e66f4851fe0c07230ea4) +* [Debugging test failure using gdb example](https://public-inbox.org/git/CAP8UFD3Bd4Af1XZ00VyuHnQs=MFrdUufKeePO1tyedWoReRjwQ@mail.gmail.com/) + ## Tests * ["`t/README`"](https://github.com/git/git/blob/master/t/README) From c00f67575bd28fd6b72c5e106837d59157654f1e Mon Sep 17 00:00:00 2001 From: Kaartic Sivaraam Date: Mon, 17 Apr 2023 00:35:33 +0530 Subject: [PATCH 0511/1248] Include development info and re-shuffle home/about pages The information to spin up the site locally got buried inside _includes/README in a recent change. It actually belongs to the README present in the root of the repo, too since that is what users see when viewing the repository. Hence, move that information there. The "About" page has long been very identical to the home page. So, shuffle the content in home and about pages and unify them into the Home page itself. For historical purposes, make the about page redirect to the homepage. Fixes #610 --- Gemfile | 1 + README.md | 19 +++++++++++++ _config.yml | 2 ++ _includes/README.md | 63 +++++++++++++++---------------------------- _includes/navbar.html | 1 - about.html | 7 +++++ about.md | 7 ----- index.md | 22 +-------------- 8 files changed, 52 insertions(+), 70 deletions(-) create mode 100644 about.html delete mode 100644 about.md diff --git a/Gemfile b/Gemfile index 7d8bf5df60..3cc8ef00a1 100644 --- a/Gemfile +++ b/Gemfile @@ -5,3 +5,4 @@ gem 'github-pages', group: :jekyll_plugins # gem "webrick", "~> 1.7" # N.B. we may not want to fix this Gemfile to Ruby 3 gem "webrick" +gem 'jekyll-redirect-from' \ No newline at end of file diff --git a/README.md b/README.md index 1ea95e5396..99d8801805 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,25 @@ - These pages are intended to be edited collaboratively (i.e., it is an alternative to us having a wiki, but one that is edited entirely via Git pushes). + You could also send your changes as patches by email to Christian Couder < > / Kaartic Sivaraam < > (and feel free to cc git@vger.kernel.org if appropriate). + + +### Development + +If you wish to spin up the site locally, you could follow the steps below. + +* Make sure you've got ruby2 with dev-packages installed +* `sudo gem install bundler` +* Clone this repo +* `sudo apt-get install zlib1g-dev` # [ + [ref](http://www.nokogiri.org/tutorials/installing_nokogiri.html#ubuntu___debian) + ] +* `bundle install` +* `bundle exec jekyll serve` +* browse the site on http://localhost:4000 + +Based on https://help.github.com/articles/using-jekyll-with-pages/ +
    diff --git a/_config.yml b/_config.yml index 7633f45e70..f3e563f9aa 100644 --- a/_config.yml +++ b/_config.yml @@ -1,2 +1,4 @@ name: Git Developer Pages permalink: /rev_news/:year/:month/:day/:title/ +plugins: + - jekyll-redirect-from \ No newline at end of file diff --git a/_includes/README.md b/_includes/README.md index ea8fb22500..d70f2c116c 100644 --- a/_includes/README.md +++ b/_includes/README.md @@ -1,41 +1,22 @@ -# About Git Developer Pages - -This is a website to help Git Developers. - -It is NOT a place to discuss Git issues. Please see -[git-scm.org's community page](https://git-scm.com/community) -for information about bug reporting or interacting with the -community. - -The pages are maintained by editing files in the -[git/git.github.io](https://github.com/git/git.github.io) repository on -GitHub. It is then published on the -[https://git.github.io](https://git.github.io) GitHub page. - -It is meant to be edited collaboratively like a wiki, except that -instead of a web form, you get to use a text editor and Git. What could -be better? - -These pages also host the [Git Rev News](https://git.github.io/rev_news/), -see the [About Git Rev News](https://git.github.io/rev_news/rev_news/) page. - -If you want push access, contact Christian Couder -< > or Taylor Blau < > and -provide your GitHub username. You may also send patches by mail (and -feel free to cc git@vger.kernel.org if appropriate). - - -# Development - -* Make sure you've got ruby2 with dev-packages installed -* `sudo gem install bundler` -* Clone this repo -* `sudo apt-get install zlib1g-dev` # ref [1] -* `bundle install` -* `bundle exec jekyll serve` -* browse the site on http://localhost:4000 - -Based on https://help.github.com/articles/using-jekyll-with-pages/ - -[1] http://www.nokogiri.org/tutorials/installing_nokogiri.html#ubuntu___debian - +This is a website for information on Git development. If you stumbled into this +by mistake, you may want: + - Information on running Git and links to download the latest version from + [HERE](https://git-scm.com/) + - Wiki that has historically contained developer information from + [HERE](https://git.wiki.kernel.org/index.php/Main_Page) + +These pages are intended to collect information useful to Git developers. This +is also the web home of: + - the [Hacking Git](https://git.github.io/Hacking-Git/) page, + - the [Git Rev News newsletter](https://git.github.io/rev_news/), + - the [involvement of the Git project in mentoring + programs](https://git.github.io/General-Application-Information/) like + [Outreachy](https://www.outreachy.org/) and the [GSoC (Google Summer of + Code)](https://summerofcode.withgoogle.com/) + +These pages are intended to be edited collaboratively (i.e., it is an +alternative to us having a wiki, but one that is edited entirely via Git pushes. +The [repository](https://github.com/git/git.github.io) could be found on GitHub. +You could also send your changes as patches by email to Christian Couder < + > / Kaartic Sivaraam < > +(and feel free to cc git@vger.kernel.org if appropriate). diff --git a/_includes/navbar.html b/_includes/navbar.html index 6d52b36c9f..d4dfe25bda 100644 --- a/_includes/navbar.html +++ b/_includes/navbar.html @@ -1,7 +1,6 @@