From: Junio C Hamano Date: Thu, 23 Feb 2012 22:13:35 +0000 (-0800) Subject: Meta/Make, Dothem: use prove test when available X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e62b4a70b5d9b9c0234fabde81b869274dfa0ca;p=thirdparty%2Fgit.git Meta/Make, Dothem: use prove test when available --- diff --git a/Dothem b/Dothem index 71bfc59ec3..3e16e4ab65 100755 --- a/Dothem +++ b/Dothem @@ -48,12 +48,6 @@ do done sh -c 'asciidoc --version >/dev/null 2>&1' || nodoc=y -if sh -c 'prove --version >/dev/null 2>&1' && - sh -c 'prove --exec : >/dev/null 2>&1' -then - DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS="$jobs" - export DEFAULT_TEST_TARGET GIT_PROVE_OPTS -fi GIT_TEST_OPTS="$TRASH${GIT_TEST_OPTS+" $GIT_TEST_OPTS"}" export GIT_TEST_OPTS @@ -74,6 +68,35 @@ fi test -n "$branches" || branches='next master maint jch pu' test -n "$jobs" || jobs=-j2 +find_installed () { + branch=$1 + test -f "$inst_prefix/git-$branch/bin/git" && + installed=$($inst_prefix/git-$branch/bin/git version) && + if version=$(expr "$installed" : '.*\.g\([0-9a-f]*\)$') + then + : + elif version=v$(expr "$installed" : \ + 'git version \(.*\)\.rc[0-9]*$') + then + version="$version"-$(expr "$installed" : \ + 'git version .*\.\(rc[0-9]*\)$') + else + version=v$(expr "$installed" : 'git version \(.*\)') + fi && + git rev-parse --verify "$version^0" 2>/dev/null +} + +installed_source_trees=" " +for branch in $branches +do + if v=$(find_installed $branch) && + test -n "$v" && + v=$(git rev-parse --verify "$v^{tree}" 2>/dev/null) + then + installed_source_trees="$installed_source_trees$v " + fi +done + for branch in $branches do echo "** $branch **" @@ -99,21 +122,8 @@ do private=$(git rev-parse -q --verify private-$branch 2>/dev/null) case $? in 0|1) ;; *) exit $? ;; esac - if test -f "$inst_prefix/git-$branch/bin/git" && - installed=$($inst_prefix/git-$branch/bin/git version) && - if version=$(expr "$installed" : '.*\.g\([0-9a-f]*\)$') - then - : - elif version=v$(expr "$installed" : \ - 'git version \(.*\)\.rc[0-9]*$') - then - version="$version"-$(expr "$installed" : \ - 'git version .*\.\(rc[0-9]*\)$') - else - version=v$(expr "$installed" : 'git version \(.*\)') - fi && - version=$(git rev-parse --verify "$version^0" 2>/dev/null) && - test "z$version" = "z$revision" + version=$(find_installed $branch) + if test "z$version" = "z$revision" then echo "* up-to-date version \"$installed\" is already installed from $branch" test -n "$force" || continue @@ -121,16 +131,18 @@ do ( skip_test=$notest - case ",$version,$revision," in - *,,*) - ;; - *) - if git diff --quiet --exit-code $version $revision - then - skip_test=1 - fi + vtree=$(git rev-parse --verify "$version^{tree}") + rtree=$(git rev-parse --verify "$revision^{tree}") + case "$installed_source_trees" in + *" $rtree "*) + skip_test=1 ;; esac + if test "z$vtree" = "z$rtree" + then + skip_test=1 + nodoc=1 + fi case "$branch, $branches " in jch,*' next '*) if git diff --quiet --exit-code jch next @@ -139,6 +151,7 @@ do fi ;; esac + test $(git rev-parse --verify "$version^{tree}" 2>/dev/null) case "$skip_test" in ?*) dotest= ;; '') dotest=test ;; diff --git a/Make b/Make index 836a581a25..794ae712fa 100755 --- a/Make +++ b/Make @@ -135,6 +135,12 @@ if test -z "$tests" && test -n "$skip" then : GIT_SKIP_TESTS="${GIT_SKIP_TESTS:-$skip}" fi +if sh -c 'prove --version >/dev/null 2>&1' && + sh -c 'prove --exec : >/dev/null 2>&1' +then + DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS="$jobs" + export DEFAULT_TEST_TARGET GIT_PROVE_OPTS +fi LC_ALL=$LANG export LANG LC_ALL