Magit: push tag and commit simultaneously

Magit: push tag and commit simultaneously

#emacs

Problem: To release a new version of some software, I had to bash out at least four Magit commands in sequence:

  1. Commit.
  2. Tag the commit.
  3. Push the commit.
  4. Push the tag.

The pain point is between 3 and 4, because it's a network connection you have to wait for, as much as 1000ms round-trip. Now just imagine doing this repeatedly over a few minutes because of a series of hot-fixes.

OK, so let's streamline this. Looking on the web, I discover the gitconfig option push.followTags, which would merge steps 3 and 4. However, it only applies to something called "annotated tags".

So I initially discard that solution and move on… but wait. OK, annotated tags sound like a PITA, but actually they can be automated, by Magit especially.

So let's use them. Add to ~/.gitconfig:

[push]
        followTags = true

Then, stop typing t t in Magit to tag, and instead type out t - a r.

(This creates an annotated release tag. and "release tag" is just a Magit convenience to pre-populate the prompt.)

Next time you push, the tag is sent along.

What links here

  • Unix
Created (3 months ago)