From: Christian Couder Date: Fri, 06 Oct 2017 10:30:36 GMT Subject: Re: [RFC PATCH 0/4] interpret-trailers: introduce "move" action Message-ID: In-Reply-To: <20171005132243.27058-1-pbonzini@redhat.com> On Thu, Oct 5, 2017 at 3:22 PM, Paolo Bonzini wrote: > The purpose of this action is for scripts to be able to keep the > user's Signed-off-by at the end. For example say I have a script > that adds a Reviewed-by tag: > > #! /bin/sh > them=$(git log -i -1 --pretty='format:%an <%ae>' --author="$*") > trailer="Reviewed-by: $them" > git log -1 --pretty=format:%B | \ > git interpret-trailers --where end --if-exists doNothing --trailer "$trailer" | \ > git commit --amend -F- > > Now, this script will leave my Signed-off-by line in a non-canonical > place, like > > Signed-off-by: Paolo Bonzini > Reviewed-by: Junio C Hamano > > This new option enables the following improvement: > > #! /bin/sh > me=$(git var GIT_COMMITTER_IDENT | sed 's,>.*,>,') > them=$(git log -i -1 --pretty='format:%an <%ae>' --author="$*") > trailer="Reviewed-by: $them" > sob="Signed-off-by: $me" > git log -1 --pretty=format:%B | \ > git interpret-trailers --where end --if-exists doNothing --trailer "$trailer" \ > --where end --if-exists move --if-missing doNothing --trailer "$sob" | \ > git commit --amend -F- > > which lets me keep the SoB line at the end, as it should be. > Posting as RFC because it's possible that I'm missing a simpler > way to achieve this... Did you try using `--where end --if-exists replace --trailer "$sob"`?