diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-05-05 19:16:20 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-05-05 19:16:20 -0700 |
commit | e9dd7518666ae8bfb3d7ddbca1a00c018d2e79e8 (patch) | |
tree | 0c5f257be4726f4760bd4d63dfb3585ea667c090 /git-filter-branch.sh | |
parent | e2e2defc14a79ea5b4aaae23e33072f29c5965eb (diff) | |
parent | 1bf6551e42c79a594689a356a9b14759d55f3cf5 (diff) | |
download | git-e9dd7518666ae8bfb3d7ddbca1a00c018d2e79e8.tar.gz git-e9dd7518666ae8bfb3d7ddbca1a00c018d2e79e8.tar.xz |
Merge branch 'bc/filter-branch'
* bc/filter-branch:
filter-branch.sh: support nearly proper tag name filtering
Diffstat (limited to 'git-filter-branch.sh')
-rwxr-xr-x | git-filter-branch.sh | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh index ea59015ba..333f6a8f3 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -406,8 +406,22 @@ if [ "$filter_tag_name" ]; then echo "$ref -> $new_ref ($sha1 -> $new_sha1)" if [ "$type" = "tag" ]; then - # Warn that we are not rewriting the tag object itself. - warn "unreferencing tag object $sha1t" + new_sha1=$(git cat-file tag "$ref" | + sed -n \ + -e "1,/^$/{ + s/^object .*/object $new_sha1/ + s/^type .*/type commit/ + s/^tag .*/tag $new_ref/ + }" \ + -e '/^-----BEGIN PGP SIGNATURE-----/q' \ + -e 'p' | + git mktag) || + die "Could not create new tag object for $ref" + if git cat-file tag "$ref" | \ + grep '^-----BEGIN PGP SIGNATURE-----' >/dev/null 2>&1 + then + warn "gpg signature stripped from tag object $sha1t" + fi fi git update-ref "refs/tags/$new_ref" "$new_sha1" || |