We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent ca199a0 commit 15505d9Copy full SHA for 15505d9
git-fix-tags
@@ -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