Welcome to the 58th edition of Git Rev News, a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see the Git Rev News page on git.github.io.
This edition covers what happened during the month of November 2019.
Two Outreachy interns have been accepted to work on Git this winter
Heba W. from New Zealand will be mentored by Emily Shaffer and Jonathan Tan to work on the ‘Add “Did you mean?” hints’ project. Heba started blogging about her internship.
Miriam Rubio from Barcelona, Spain will be mentored by Christian Couder to work on the ‘Finish converting “git bisect” from shell to C’ project. Miriam also started blogging about her internship.
[RFC] xl command for visualizing recent history
Matthew DeVore sent an RFC patch implementing a git xl
command
that would show “a graph of recent history, including all existing
branches (unless flagged with a config option) and their upstream
counterparts”.
In practice the command would show graph like this one, where the XXXXXXXX would be the beginning of a commit hash:
XXXXXXXX * 1 committer@example.com [HEAD branch3]
| baz
|
XXXXXXXX | * 2 committer@example.com [branch2]
|/ bar
|
XXXXXXXX * 3 committer@example.com
foo
The command would also associate refs with all visible
commits. These refs would have names in the form of h/#
where # is
an incrementing count.
It would by default show only what has not been pushed upstream yet, and the branches with their commits would be shown as a graph.
Emily Shaffer first replied to Matthew, making suggestions to improve the name of the command as well as the commit subject and the commit message.
Johannes Schindelin, alias Dscho, replied to Emily’s reply. He
agreed with her that the name of the command was not a good one and
suggested instead to make this functionality a mode of an existing
command, like git show-branch --unpushed
or git branch --show-unpushed
.
About the h/#
refs, that he called “ephemeral refs”, Dscho
suggested implementing them in a separate patch, using ^<counter>
instead of “h/#” for their syntax, and making them only available for
a “reasonably short time” by default, and then offering a config
setting to change this time.
He also suggested implementing an option to show those “ephemeral refs” in other commands too.
Phillip Wood agreed with Dscho about the “ephemeral refs”, especially
“having them as a feature of the rev listing machinery rather than
specific to a particular command”.
He also suggested to use getsid()
rather than getppid()
to tie them
to a terminal, and expressed his uncertainty how this should be done
on Windows and whether a split was also necessary/wanted per worktree.
Dscho also commented on Matthew’s initial RFC patch. He suggested commit message improvements. He reiterated some of the suggestions he made in his reply to Emily, and reviewed the code suggesting many changes there too. He wrote though that he loved the main ideas proposed by Matthew.
Various
The latest Git releases and Git for Windows releases are security releases. They fix a significant number of serious security issues. Upgrading to one of these new versions is highly recommended.
The Git Merge Contributor’s Summit has been announced. It will happen on March 5, 2020, in Los Angeles, the day after the Git Merge.
Light reading
What are git objects under the hood is a blog post about Git objects.
Git Repository Transfer Keeping All History by Nassos Michas explains “how to replicate your Git repo and keep all previous commits, branches, and tags”.
Git tools and sites
GitVine, an application to better visualise git commits has been announced on the mailing list.
git-cpcover, a script to copy cover letters, has been announced on the mailing list.
This edition of Git Rev News was curated by Christian Couder <christian.couder@gmail.com>, Jakub Narębski <jnareb@gmail.com>, Markus Jansen <mja@jansen-preisler.de> and Kaartic Sivaraam <kaartic.sivaraam@gmail.com> with help from Emily Shaffer, Pratyush Yadav and Phillip Wood.