diff options
author | Thomas Rast <trast@student.ethz.ch> | 2008-08-08 01:50:31 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-08 16:19:51 -0700 |
commit | 261044e85ddac3de48dc74dd9c416c95147022ad (patch) | |
tree | f1d605edbe9b7cc93b391c925d9c4b3c697cf0bc | |
parent | Documentation: filter-branch: document how to filter all refs (diff) | |
download | tgif-261044e85ddac3de48dc74dd9c416c95147022ad.tar.xz |
filter-branch: be more helpful when an annotated tag changes
Previously, git-filter-branch failed if it attempted to update an
annotated tag. Now we ignore this condition if --tag-name-filter is
given, so that we can later rewrite the tag. If no such option was
provided, we warn the user that he might want to run with
"--tag-name-filter cat" to achieve the intended effect.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-filter-branch.sh | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh index 182822a24e..a324cf0596 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -361,9 +361,17 @@ do ;; $_x40) echo "Ref '$ref' was rewritten" - git update-ref -m "filter-branch: rewrite" \ - "$ref" $rewritten $sha1 || - die "Could not rewrite $ref" + if ! git update-ref -m "filter-branch: rewrite" \ + "$ref" $rewritten $sha1 2>/dev/null; then + if test $(git cat-file -t "$ref") = tag; then + if test -z "$filter_tag_name"; then + warn "WARNING: You said to rewrite tagged commits, but not the corresponding tag." + warn "WARNING: Perhaps use '--tag-name-filter cat' to rewrite the tag." + fi + else + die "Could not rewrite $ref" + fi + fi ;; *) # NEEDSWORK: possibly add -Werror, making this an error |