From 2a77a4130a499550f6be9c9e974f8a2248d8692d Mon Sep 17 00:00:00 2001 From: liyuqian Date: Fri, 20 Jul 2018 14:40:15 -0700 Subject: [PATCH] Make git diff range more robust in format.sh (#5813) The new approach follows https://github.com/flutter/flutter/pull/19412 which is suggested by Cirrus in https://github.com/cirruslabs/cirrus-ci-docs/issues/17 --- travis/format.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/travis/format.sh b/travis/format.sh index 3a29bc060..87ad1dd48 100755 --- a/travis/format.sh +++ b/travis/format.sh @@ -32,12 +32,17 @@ $CLANG_FORMAT --version # Compute the diffs. FILETYPES="*.c *.cc *.cpp *.h *.m *.mm" DIFF_OPTS="-U0 --no-color --name-only" + if git remote get-url upstream >/dev/null 2>&1; then - UPSTREAM=upstream/master + UPSTREAM=upstream else - UPSTREAM=master + UPSTREAM=origin fi; -FILES_TO_CHECK="$(git diff $DIFF_OPTS $UPSTREAM -- $FILETYPES)" + + +BASE_SHA="$(git fetch $UPSTREAM master > /dev/null 2>&1 && \ + (git merge-base --fork-point FETCH_HEAD HEAD || git merge-base FETCH_HEAD HEAD))" +FILES_TO_CHECK="$(git diff $DIFF_OPTS $BASE_SHA..HEAD -- $FILETYPES)" FAILED_CHECKS=0 for f in $FILES_TO_CHECK; do @@ -59,7 +64,7 @@ fi FILETYPES="*.c *.cc *.cpp *.h *.m *.mm *.dart" set +e -TRAILING_SPACES=$(git diff $DIFF_OPTS master -- $FILETYPES | xargs grep --line-number --with-filename '\s\+$') +TRAILING_SPACES=$(git diff $DIFF_OPTS $BASE_SHA..HEAD -- $FILETYPES | xargs grep --line-number --with-filename '\s\+$') set -e if [[ ! -z "$TRAILING_SPACES" ]]; then -- GitLab