From: Ian Campbell Date: Thu, 21 Sep 2017 07:49:32 +0000 (+0100) Subject: filter-branch: use hash-object instead of mktag X-Git-Tag: v2.15.0-rc0~48^2 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/b2c1ca6b4baa31c674c86dae38d27ebab4b69e39 filter-branch: use hash-object instead of mktag This allows us to recreate even historical tags which would now be consider invalid, such as v2.6.12-rc2..v2.6.13-rc3 in the Linux kernel source tree which lack the `tagger` header. $ git rev-parse v2.6.12-rc2 9e734775f7c22d2f89943ad6c745571f1930105f $ git cat-file tag v2.6.12-rc2 | git mktag error: char76: could not find "tagger " fatal: invalid tag signature file $ git cat-file tag v2.6.12-rc2 | git hash-object -t tag -w --stdin 9e734775f7c22d2f89943ad6c745571f1930105f Signed-off-by: Ian Campbell Signed-off-by: Junio C Hamano --- diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 956869b8e3..3365a3b866 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -561,7 +561,7 @@ if [ "$filter_tag_name" ]; then }' \ -e '/^-----BEGIN PGP SIGNATURE-----/q' \ -e 'p' ) | - git mktag) || + git hash-object -t tag -w --stdin) || die "Could not create new tag object for $ref" if git cat-file tag "$ref" | \ sane_grep '^-----BEGIN PGP SIGNATURE-----' >/dev/null 2>&1