chiark / gitweb /
Test suite: Provide t-sametree-parent
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 30 Aug 2016 00:37:06 +0000 (01:37 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 6 Sep 2016 12:20:35 +0000 (13:20 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
tests/lib

index 9b8894ef74b60569b77c46da8753c5bab0474bd2..36237a7485ed008f136ff4afd1c03dd2f3f3a6e5 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -508,6 +508,28 @@ t-v-tag () {
        echo refs/tags/$tagpfx/${v//\~/_}
 }
 
+t-format-ref () {
+       git log -n1 --pretty=format:"$1" "$2"
+}
+
+t-sametree-parent () {
+       local ref=$1
+       local parent
+       local ctree=$(t-format-ref '%T' "$ref")
+       while :; do
+               local psame=''
+               for parent in $(t-format-ref '%P' "$ref"); do
+                       local ptree=$(t-format-ref '%T' "$parent")
+                       if [ "x$ptree" = "x$ctree" ]; then
+                               psame+=" $parent"
+                       fi
+               done
+               case "$psame" in ""|" * *") break ;; esac
+               ref="${psame# }"
+       done
+       echo "$ref"
+}
+
 t-check-pushed-master () {
        local master=`t-git-get-ref refs/heads/master`
        if [ x$master = x$t_ref_val ]; then return; fi