Browse Source

Merge pull request #36350 from akien-mga/travis-fix-clang-format-stable

Travis: Fix clang-format on non-master branches
Rémi Verschelde 5 years ago
parent
commit
7c5ce0ac7c
1 changed files with 10 additions and 4 deletions
  1. 10 4
      misc/travis/clang-format.sh

+ 10 - 4
misc/travis/clang-format.sh

@@ -3,11 +3,17 @@
 CLANG_FORMAT=clang-format-8
 CLANG_FORMAT=clang-format-8
 
 
 if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
 if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
-    # Check the whole commit range against $TRAVIS_BRANCH, the base merge branch
-    # We could use $TRAVIS_COMMIT_RANGE but it doesn't play well with force pushes
-    RANGE="$(git rev-parse $TRAVIS_BRANCH) HEAD"
+    # Travis only clones the PR branch and uses its HEAD commit as detached HEAD,
+    # so it's problematic when we want an exact commit range for format checks.
+    # We fetch upstream to ensure that we have the proper references to resolve.
+    # Ideally we would use $TRAVIS_COMMIT_RANGE but it doesn't play well with PR
+    # updates, as it only includes changes since the previous state of the PR.
+    git remote add upstream https://github.com/godotengine/godot \
+        --no-tags -f -t $TRAVIS_BRANCH
+    RANGE="upstream/$TRAVIS_BRANCH HEAD"
 else
 else
-    # Test only the last commit
+    # Test only the last commit, since $TRAVIS_COMMIT_RANGE wouldn't support
+    # force pushes.
     RANGE=HEAD
     RANGE=HEAD
 fi
 fi