diff --git a/scripts/generate-diff.sh b/scripts/generate-diff.sh index 21bd781..bcec030 100644 --- a/scripts/generate-diff.sh +++ b/scripts/generate-diff.sh @@ -6,9 +6,17 @@ set -euo pipefail git fetch origin main --depth=100 if [ -n "${PREV_SHA:-}" ] && git cat-file -e "${PREV_SHA}^{commit}" 2>/dev/null; then - echo "Generating incremental diff from ${PREV_SHA} to HEAD" - git diff "${PREV_SHA}...HEAD" > pr.diff - echo "incremental=true" >> "$GITHUB_OUTPUT" + OLD_BASE=$(git merge-base origin/main "$PREV_SHA") + NEW_BASE=$(git merge-base origin/main HEAD) + if [ "$OLD_BASE" = "$NEW_BASE" ]; then + echo "Generating incremental diff from ${PREV_SHA} to HEAD" + git diff "${PREV_SHA}..HEAD" > pr.diff + echo "incremental=true" >> "$GITHUB_OUTPUT" + else + echo "PR base changed (merge/rebase from main) — generating full diff" + git diff origin/main...HEAD > pr.diff + echo "incremental=false" >> "$GITHUB_OUTPUT" + fi else echo "Generating full diff from origin/main to HEAD" git diff origin/main...HEAD > pr.diff