Re: [PATCH 2/2] filter-branch: Handle rewritting (very) old style tags which lack tagger
From: Ian Campbell <hidden>
Date: 2017-08-09 07:43:25
On Tue, 2017-08-08 at 14:00 -0700, Junio C Hamano wrote:
quoted
@@ -540,6 +540,9 @@ if [ "$filter_tag_name" ]; thenquoted
new_sha1=$( ( printf 'object %s\ntype commit\ntag %s\n' \ "$new_sha1" "$new_ref" git cat-file tag "$ref" |quoted
+ awk '/^tagger/ { tagged=1 }quoted
+ /^$/ { if (!tagged && !done) { print "tagger Unknown [off-list ref] 0 +0000" } ; done=1 }+ // { print }' |sed -n \ -e '1,/^$/{ /^object /dWhat the change wants to do makes perfect sense, but piping output from awk into sed looks somewhat gross. Perhaps we'd want to roll what the existing sed script is trying to do into this new awk script?
I'm far from an awk guru but I think (unit tested in isolation only)
that such script would look something like (I also inverted/renamed
done into header since it seemed clearer):
BEGIN { header=1 }
/^tagger / { tagged=1 }
/^$/ { if (!tagged && header) { print "tagger Unknown < unknown@example.com > 0 +0000" } ; header=0 }
/^-----BEGIN PGP SIGNATURE-----/ { exit(0) }
// { if (!header || $0 !~ /^(object|type|tag )/) { print } }
Ian.