Configuring aerc for git via email April 20, 2020 on Drew DeVault's blog

I use aerc as my email client (naturally — I wrote it, after all), and I use git send-email to receive patches to many of my projects. I designed aerc specifically to be productive for this workflow, but there are a few extra things that I use in my personal aerc configuration that I thought were worth sharing briefly. This blog post will be boring and clerical, feel free to skip it unless it’s something you’re interested in.

When I want to review a patch, I first tell aerc to :cd sources/<that project>, then I open up the patch and give it a read. If it needs work, I’ll use “rq” (“reply quoted”), a keybinding which is available by default, to open my editor with the patch pre-quoted to trim down and reply with feedback inline. If it looks good, I use the first of my custom keybindings: “ga”, short for git am. The entry in ~/.config/aerc/binds.conf is:

ga = :pipe -mb git am -3<Enter>

This pipes the entire message (-m, in case I’m viewing a message part) into git am -3 (-3 uses a three-way merge, in case of conflicts), in the background (-b). Then I’ll use C-t (ctrl-T), another keybinding which is included by default, to open a terminal tab in that directory, where I can compile the code, run the tests, and so on. When I’m done, I use the “gp” keybinding to push the changes:

gp = :term git push<Enter>

This runs the command in a new terminal, so I can monitor the progress. Finally, I like to reply to the patch, letting the contributor know their work was merged and thanking them for the contribution. I have a keybinding for this, too:

rt = :reply -Tthanks<Enter>

My “thanks” template is at ~/.config/aerc/templates/thanks and looks like this:

Thanks!

{% raw %}
{{exec "{ git remote get-url --push origin;
    git reflog -2 origin/master --pretty=format:%h; }
  | xargs printf 'To %s\n   %s..%s  master -> master\n'" ""}}
{% endraw %}

That git command prints a summary of the most recent push to master. The result is that my editor is pre-filled with something like this:

Thanks!

To git@git.sr.ht:~sircmpwn/builds.sr.ht
   7aabe74..191f4a0  master -> master

I occasionally append a few lines asking questions about follow-up work or clarifying the deployment schedule for the change.

Articles from blogs I read Generated by openring

Go Developer Survey 2023 Q1 Results

An analysis of the results from the 2023 Q1 Go Developer Survey.

via The Go Blog May 11, 2023

Summary of changes for April 2023

Hey everyone! This is the list of all the changes we've done to our projects and apps during the month of April. We'll also be reporting in our on position in the world, and on our future plans. Summary Of Changes 100r.co, added charging electro…

via Hundred Rabbits May 1, 2023

HDR hackfest wrap-up

Last week I’ve been attending the HDR hackfest organized by Red Hat. The trip to Prague was rather chaotic: the morning right after the SourceHut DoS incident, I got a notification that my plane was cancelled, so had to re-book a new flight and hotel. Then a…

via emersion May 1, 2023