+check_treesame () {
+ local first=$1
+ local second=$2
+ shift 2
+
+ set +e
+ git diff --quiet --exit-code "$first".."$second" -- . "$@"
+ git_diff_rc=$?
+ set -e
+
+ # show the user what the difference was
+ if [ $git_diff_rc = 1 ]; then
+ git diff --compact-summary "$first".."$second" -- . "$@"
+ fi
+
+ if [ $git_diff_rc -le 1 ]; then
+ return $git_diff_rc
+ else
+ fail "'git diff' exited with unexpected code $git_diff_rc"
+ fi
+}
+