All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: git@vger.kernel.org
Subject: Re: Adding a line after the signed-off git am -s
Date: Sat, 12 Oct 2019 10:03:54 +0900	[thread overview]
Message-ID: <xmqq7e5ag4g5.fsf@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <6797ef7d-5444-4c77-59e6-1d78fd3ccb0c@linaro.org> (Daniel Lezcano's message of "Fri, 11 Oct 2019 16:43:45 +0200")

Daniel Lezcano <daniel.lezcano@linaro.org> writes:

> I would like to do something:
>
> git am -s -l "Link: https://lore.kernel.org/r/<msgid>"
>
> Which will give:
>
> blabla
>
> Signed-off-by: author@kairnail.org
> Signed-off-by: commiter@kairnail.org
> Link: https://lore.kernel.org/r/<msgid>
>
> This way it is compatible with patchwork, git-pw, etc...

There is the post-applypatch hook you can define after the patch
gets applied and produces a commit.

I use it to maintain the amlog notes in my repository (iow, I do not
amend the commit, but add notes to the resulting commit so that I
can tell, given a commit, which message resulted in it).  

If you want to amend the resulting commit instead, the place to do
so would be where I call "git notes --ref amlog" in the sample
script.

-- >8 -- post-applypatch hook example -- >8 --
#!/bin/sh

GIT_DIR=.git
dotest="$GIT_DIR/rebase-apply"

prec=4 &&
this=$(cat 2>/dev/null "$dotest/next") &&
msgnum=$(printf "%0${prec}d" $this) &&
test -f "$dotest/$msgnum" &&
message_id=$(sed -ne '
	/^[ 	]/{
		# Append continuation line to hold space
		H
		# Swap hold and pattern
		x
		# Remove the LF, making it a single line
		s/\n//
		# Swap hold and pattern back
		x
		# Discard the pattern and go on
		n
	}
	# Hold this new line, and look at what is in the hold space
	x
	# Is it the Message-ID line?  If so, spit it out and finish.
	/^[Mm][Ee][Ss][Ss][Aa][Gg][Ee]-[Ii][Dd]:[ 	]*/{
		s///p
		q
	}
	# Otherwise, check if this new line is empty
	x
	# Is it?  Then we are done with the header
	/^$/b end
	# Otherwise we need to hold onto this header line
	x
	# And start the next cycle
	b
: end
	# ??? do we want to check if we held onto the last message-id line
	# and process it here if we did???
	q
' "$dotest/$msgnum") &&

if	test -n "$message_id" &&
	head=$(git rev-parse --verify HEAD 2>/dev/null)
then
	echo "$head $message_id" >>"$GIT_DIR"/am.log &&
	git notes --ref amlog add -f -m "Message-Id: $message_id" "$head"
fi

  reply	other threads:[~2019-10-12  1:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11 14:43 Adding a line after the signed-off git am -s Daniel Lezcano
2019-10-12  1:03 ` Junio C Hamano [this message]
2019-10-15 22:52 ` Beat Bolli
2019-10-16  8:48   ` Daniel Lezcano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=xmqq7e5ag4g5.fsf@gitster-ct.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.