From: Matthias Maier Date: Wed, 24 May 2017 05:34:41 +0000 (+0200) Subject: add auxiliary git bash scripts X-Git-Tag: v9.0.0-rc1~1576^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1fc9b3cb6cd2eefe8dce5cef9db2ab5c0e205230;p=dealii.git add auxiliary git bash scripts --- diff --git a/cmake/scripts/get_closest_tag.sh b/cmake/scripts/get_closest_tag.sh new file mode 100755 index 0000000000..5166c9448c --- /dev/null +++ b/cmake/scripts/get_closest_tag.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# +# Find the TAG that +# - has a common ancestry with current HEAD +# - with shortest (positive) distance of the common ancestor to HEAD +# + +head="$(git rev-parse HEAD)" + +tags="$(git tag --sort=-creatordate)" + +min_distance=0 +min_tag="" +for tag in $tags; do + tag_commit="$(git rev-parse $tag^{commit})" + + if [ "$tag_commit" = "$head" ]; then + echo "$tag" + exit 0; + fi + + ancestor="$(git merge-base HEAD $tag)" + + if [ "$ancestor" != "$head" ]; then + distance="$(git rev-list HEAD ^${ancestor} --count)" + + if [ "$min_distance" = "0" ]; then + min_distance="$distance" + min_tag="$tag" + fi + + if [ "$distance" -lt "$min_distance" ]; then + min_distance="$distance" + min_tag="$tag" + fi + fi + +done + +if [ "$min_distance" != "0" ]; then + echo $min_tag + exit 0 +else + exit 1 +fi diff --git a/cmake/scripts/get_latest_tag.sh b/cmake/scripts/get_latest_tag.sh new file mode 100755 index 0000000000..c29ace9920 --- /dev/null +++ b/cmake/scripts/get_latest_tag.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Find the latest TAG that has a common ancestry (of positive distance) with +# current HEAD +# + +head="$(git rev-parse HEAD)" + +tags="$(git tag --sort=-creatordate)" + +for tag in $tags; do + tag_commit="$(git rev-parse $tag^{commit})" + + if [ "$tag_commit" = "$head" ]; then + echo "$tag" + exit 0; + fi + + ancestor="$(git merge-base HEAD $tag)" + + if [ "$ancestor" != "$head" ]; then + echo "$tag" + exit 0; + fi +done + +exit 1