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

From: Atharva Raykar <[email-masked]>
Date: Sun, 01 Aug 2021 12:36:40 +0530

Philippe Blain <[email-masked]> writes:

> Hi Atharva,
>
> Le 2021-07-25 à 08:22, Atharva Raykar a écrit :
>> 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:
>
>> 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/