Don't fail an incremental build if can't find a merge base (#444)

diff --git a/script/incremental_build.sh b/script/incremental_build.sh
index 1cefe65..d2d2243 100755
--- a/script/incremental_build.sh
+++ b/script/incremental_build.sh
@@ -10,10 +10,21 @@
 else
   # Make sure there is up-to-date master.
   git fetch origin master
-  BRANCH_BASE_SHA=$(git merge-base --fork-point FETCH_HEAD HEAD)
-  echo "Checking changes from $BRANCH_BASE_SHA..."
-  FLUTTER_CHANGED_GLOBAL=`git diff --name-only $BRANCH_BASE_SHA HEAD | grep -v packages | wc -l`
-  FLUTTER_CHANGED_PACKAGES=`git diff --name-only $BRANCH_BASE_SHA HEAD | grep -o "packages/[^/]*" | sed -e "s/packages\///g" | sort | uniq | paste -s -d, -`
+
+  FLUTTER_CHANGED_GLOBAL=0
+  FLUTTER_CHANGED_PACKAGES=""
+
+  # Try get a merge base for the branch and calculate affected packages.
+  # We need this check because some CIs can do a single branch clones with a limited history of commits.
+  if BRANCH_BASE_SHA=$(git merge-base --fork-point FETCH_HEAD HEAD); then
+    echo "Checking changes from $BRANCH_BASE_SHA..."
+    FLUTTER_CHANGED_GLOBAL=`git diff --name-only $BRANCH_BASE_SHA HEAD | grep -v packages | wc -l`
+    FLUTTER_CHANGED_PACKAGES=`git diff --name-only $BRANCH_BASE_SHA HEAD | grep -o "packages/[^/]*" | sed -e "s/packages\///g" | sort | uniq | paste -s -d, -`
+  else
+    echo "Cannot find a merge base for the current branch to run an incremental build..."
+    echo "Please rebase your branch onto the latest master!"
+  fi
+
   if [ "${FLUTTER_CHANGED_PACKAGES}" = "" ] || [ $FLUTTER_CHANGED_GLOBAL -gt 0 ]; then
     echo "Running for all packages"
     pub global run flutter_plugin_tools "$@"