Skip to content

Commit 15505d9

Browse files
committed
git-fix-tags
1 parent ca199a0 commit 15505d9

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

git-fix-tags

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#!/bin/sh
2+
3+
. $(git --exec-path)/git-sh-setup
4+
get_tree(){ git rev-parse $1^{tree}; }
5+
6+
git for-each-ref refs/tags --format='%(refname)' \
7+
| while read tag
8+
do
9+
sha1=$(git rev-parse $tag)
10+
tree=$(get_tree $tag )
11+
new=$sha1
12+
while true
13+
do
14+
parent=$(git rev-parse $new^)
15+
git rev-parse $new^2 > /dev/null 2>&1 && break
16+
parent_tree=$(get_tree $parent)
17+
[ "$parent_tree" != "$tree" ] && break
18+
new=$parent
19+
done
20+
[ "$sha1" = "$new" ] && break
21+
echo -n "Found new commit for tag ${tag#refs/tags/}: " \
22+
$(git rev-parse --short $new)", resetting..."
23+
git update-ref $tag $new
24+
echo 'done'
25+
done

0 commit comments

Comments
 (0)