Thread (8 messages) flat view 8 messages, 5 authors, 2021-08-01

Re: [GSoC] A small survey + My Git Blog, week 10

From: Atharva Raykar <hidden>
Date: 2021-08-01 07:08:30

Philippe Blain [off-list ref] writes:
Hi Atharva,

Le 2021-07-25 à 08:22, Atharva Raykar a écrit :
quoted
Hello all,
Week 10 of my Git blog can be found here:
https://atharvaraykar.me/gitnotes/week10
As for the "survey part", jump to the section here:
https://atharvaraykar.me/gitnotes/week10#the-mailing-list-developer-workflow
...feel free to reply in this thread.
Quoting your "survey" questions:
quoted
What tools, systems and workflows do you find valuable in your
day-to-day work? In particular I’d be happy getting insights 
like:
* Any strategy or approach to work, kind of like the example I 
quoted
  above
* Any scripts and tools that assist you
* Opinionated handling of multiple in-flight series and methods 
to
  approaching reviews
* Atharva, you are overthinking this! I just use a 
straightforward {
  editor + MUA + git } stack and go with the flow!
I'm a small-time contributor, but I do read the mailing list 
regularly.

As such, I'm not subscribed to the list; I read it on 
lore.kernel.org
or public-inbox.org (nicer colors!). The UI of public-inbox is 
very clear
with respect to threading, and the front page also lists 
messages in
a way that it is easy to quickly see what's new.

When I want to reply to a message that I read on the list, I 
import it
into a "Git mailing list" IMAP folder in my Gmail account so 
that I can answer
using my mail client (Thunderbird for now since Apple Mail has 
been reliably
crashing at launch for the last months) and quote relevant parts 
of the message.

To import a thread from the mailing list I use a combination of 
the excellent
'b4' tool, developed by the kernel community [1], and 'git 
imap-send'. It's
basically this:

$ git config --get alias.ml-imap
!f() { b4 mbox -o- $1 | git imap-send; }; f

This sometimes does not work if some messages in the thread were 
not created
using  'git format-patch', since 'git imap-send' expects the 
"From", "Date"
and "Subject" headers in a certain order. So I created a small 
Python script,
'git in', for this case [2].

For small and simple reviews, I also simply import the patches 
into Thunderbird
and reply inline. If I want to do a more in-depth review and 
browse the code as
modified by a series, I fetch the contributor's branch and take 
a look locally.
More often than not though people do not provide a 'git 
fetch'-ready link in their
cover letter. So in that case I use 'b4 am' [1] to fetch the 
latest version of a series
and apply it locally. Before 'b4' was created I used 'git pw' 
[3], a command line
client for Patchwork, and the Git patchwork instance at [4], but 
these days I prefer
'b4' as it's more closely integrated with public-inbox.

For my own contribution I use Gitgitgdaget [5], it handles 
almost everything needed
for git.git contributions:  keeping track of the CC list for
me, updating the re-roll count,  adding the In-Reply-To header 
such that subsequent
versions of the series are sent as a response to the cover 
letter of the previous version,
generating a range-diff against the previous version, providing 
a 'git fetch'-ready tag,
commenting on the PR when the series is mentioned in Junio's 
"What's cooking", etc.

Some things it does not support are: sending a patch as a 
response to some random
mail on the list, which is sometimes useful, reading the commit 
notes to generate
in-patch commentaries [6], customizing the diff generated by 
'format-patch'.
Other things are listed at [7].

Recently I've also been using only the terminal with 
Gitgitgadget:
I use 'git branch --edit-description' to write my cover letter,
and then use the 'gh' GitHub CLI [8] to open my PR:

$ git config --get-regexp alias.desc*
alias.desc-title !git config branch.$(git branch 
--show-current).description | head -1
alias.desc-body !git config branch.$(git branch 
--show-current).description | tail -n+3
$ gh pr create --title "$(git desc-title)" --body "$(git 
desc-body)" --head phil-blain:$(git branch --show-current)

I hope this provides a different perspective!
Thanks for the detailed reply!

I like that it covers a lot about how you retrieve patches and 
respond
to reviews.

You have convinced me to give Gitgitgadget a try for my next patch 
:^)
Cheers,
Philippe.


[1] https://pypi.org/project/b4/
[2] 
https://gist.github.com/phil-blain/d350e91959efa6e7afce60e74bf7e4a8
[3] 
https://patchwork.readthedocs.io/projects/git-pw/en/latest/usage/
[4] https://patchwork.kernel.org/project/git/list/
[5] https://gitgitgadget.github.io/
[6] https://github.com/gitgitgadget/gitgitgadget/issues/173
[7] https://github.com/gitgitgadget/gitgitgadget/issues
[8] https://cli.github.com/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help