[ANN] git-send-series 1.0
Felipe Contreras
2021-01-01 03:51:27 UTC

I have a bunch of patch series flying around, and it gets tedious to
keep track of the state of each one of them. That's why I created
`git send-series`; a tool to keep track of multiple patch series.

The idea is simple; a patch series contains certain metadata (version,
cc list, subject, body) that should be easy to edit, and other metadata
such as the previous version's range (branch@{u}..branch), can be be
automatically tracked.

`git send-series` does all that for you.

The format of the metadata file is straightforward:

version: 2
  - Felipe Contreras <felipe.contreras@gmail.com>
  - Don Draper <don@draper.me>
  - William G. Connolly <william@connolly.me>

README: bunch of fixes

There was a bunch of typos and grammatical errors.

I've separated the fixes in multiple patches.

The first part is a YAML document with all optional fields, such as 'version',
'cc', 'to'. The second part--delimited by a blank line--is the cover
letter. The first like will be used as the subject of the cover letter
email, and the rest as the content of the email.

Then standard tools will be used to send the emails: `git format-patch` and
`git send-email`, which you must have configured before using this helper.

In the end, a custom ref will be created to save the current state of the
branch. For example, if you want to see what was the status of your series of
the branch 'feature-a' in version 2, you can use 'sent/feature-a/v2', for
example to create an interdiff to see what changed between one version and the

By default `git send-email` will attach a range-diff to the cover-letter
using the previous version of the series.

The last version (0.1) was a very crude attempt (although it did work),
now it's a much more mature tool I've been constantly testing and
improving over the past few months.

Changes since the last version:

 * Add range-diff with the last range sent
 * Add safety to make sure the same version isn't sent twice
 * Add --dry-run option
 * Add --show option (to show the cover-letter before sending)
 * Add --range-diff option (to show the range-diff that will be sent)
 * Add --delete option (to remove all the branch metadata)
 * Add safety that the upstream tracking branch is configured
 * Add manpage documentation
 * Add vim syntax
 * Improve installation (make install works now)
 * Allow arrays in the YAML header (cleaner Cc list)
 * Check exit status of the editor (e.g. :cq in vim)
 * Chomp the last newlines of the body
 * Clean the patches directory properly
 * Fix in the check for the current branch

A screenshot of how it looks on the wild (with the vim syntax) [1]:

Enjoy and Happy New Year!


[1] https://snipboard.io/ExfbWo.jpg

Felipe Contreras