diff options
author | Kyle Meyer <kyle@kyleam.com> | 2020-08-22 17:16:34 -0400 |
---|---|---|
committer | Kyle Meyer <kyle@kyleam.com> | 2020-08-22 17:24:08 -0400 |
commit | bb24e230c10ca05e937e2404df2a6bd594850009 (patch) | |
tree | 16df1cd02a91d11a3437b800388d097b3648e167 | |
download | piem-bb24e230c10ca05e937e2404df2a6bd594850009.tar.gz |
post-applypatch: Copy from git.git
This comes from Junio's todo branch, in particular
0c49ca33322de12633a0329008623c009da4e987.
-rwxr-xr-x | post-applypatch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/post-applypatch b/post-applypatch new file mode 100755 index 0000000..886ad76 --- /dev/null +++ b/post-applypatch @@ -0,0 +1,55 @@ +#!/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=refs/notes/amlog + export GIT_NOTES_REF + git notes add -f -m "Message-Id: $message_id" "$head" + blob=$(git notes list "$head") && + git notes append -m "$head" $blob + ) +fi |