Run framework migrations even when already up to date
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -164,11 +164,12 @@ fi
|
|||||||
CURRENT_HEAD=$(git rev-parse HEAD 2>&1)
|
CURRENT_HEAD=$(git rev-parse HEAD 2>&1)
|
||||||
UPSTREAM_HEAD=$(git rev-parse "$UPSTREAM_BRANCH" 2>&1)
|
UPSTREAM_HEAD=$(git rev-parse "$UPSTREAM_BRANCH" 2>&1)
|
||||||
|
|
||||||
|
ALREADY_UP_TO_DATE=false
|
||||||
if [ "$CURRENT_HEAD" = "$UPSTREAM_HEAD" ]; then
|
if [ "$CURRENT_HEAD" = "$UPSTREAM_HEAD" ]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "✓ Already up to date"
|
echo "✓ Already up to date"
|
||||||
echo ""
|
echo ""
|
||||||
exit 0
|
ALREADY_UP_TO_DATE=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Handle --diff option: show diff and exit
|
# Handle --diff option: show diff and exit
|
||||||
@@ -365,110 +366,117 @@ if [ "$IS_PROJECT_MODE" = false ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Extract and display changelog
|
# Apply framework updates (skip if already up to date)
|
||||||
echo ""
|
if [ "$ALREADY_UP_TO_DATE" = false ]; then
|
||||||
echo "⚠ RSpade framework has upstream changes"
|
# Extract and display changelog
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Get commit subjects, filter out Claude Code attribution and blank lines
|
|
||||||
CHANGELOG=$(git log --pretty=format:"%s" HEAD.."$UPSTREAM_BRANCH" 2>&1 | \
|
|
||||||
grep -v "Claude Code" | \
|
|
||||||
grep -v "Co-Authored-By:" | \
|
|
||||||
grep -v "^$" | \
|
|
||||||
sed 's/^/ • /')
|
|
||||||
|
|
||||||
if [ -n "$CHANGELOG" ]; then
|
|
||||||
echo "Changelog:"
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "$CHANGELOG"
|
echo "⚠ RSpade framework has upstream changes"
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
|
||||||
|
|
||||||
# Show file diff stats (exclude ./rsx if in project mode)
|
# Get commit subjects, filter out Claude Code attribution and blank lines
|
||||||
if [ "$IS_PROJECT_MODE" = true ]; then
|
CHANGELOG=$(git log --pretty=format:"%s" HEAD.."$UPSTREAM_BRANCH" 2>&1 | \
|
||||||
DIFF_STATS=$(git diff --stat HEAD.."$UPSTREAM_BRANCH" -- . ":(exclude)rsx" 2>&1)
|
grep -v "Claude Code" | \
|
||||||
else
|
grep -v "Co-Authored-By:" | \
|
||||||
DIFF_STATS=$(git diff --stat HEAD.."$UPSTREAM_BRANCH" 2>&1)
|
grep -v "^$" | \
|
||||||
fi
|
sed 's/^/ • /')
|
||||||
|
|
||||||
if [ -n "$DIFF_STATS" ]; then
|
if [ -n "$CHANGELOG" ]; then
|
||||||
echo "Files that will be updated:"
|
echo "Changelog:"
|
||||||
echo ""
|
echo ""
|
||||||
echo "$DIFF_STATS" | sed 's/^/ /'
|
echo "$CHANGELOG"
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Apply updates based on mode
|
|
||||||
echo "Applying framework updates..."
|
|
||||||
|
|
||||||
if [ "$IS_PROJECT_MODE" = true ]; then
|
|
||||||
# Project mode: merge with --no-ff (preserves ./rsx via .gitattributes)
|
|
||||||
if ! git merge --no-ff "$UPSTREAM_BRANCH" 2>&1; then
|
|
||||||
echo "ERROR: Framework update failed."
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# Show current git state
|
|
||||||
GIT_STATUS=$(git status --short 2>&1)
|
|
||||||
if [ -n "$GIT_STATUS" ]; then
|
|
||||||
echo "Current git state:"
|
|
||||||
echo ""
|
|
||||||
echo "$GIT_STATUS" | sed 's/^/ /'
|
|
||||||
echo ""
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Check status: php artisan rsx:framework:status"
|
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
echo " ✓ Framework updated (./rsx preserved by .gitattributes)"
|
|
||||||
else
|
# Show file diff stats (exclude ./rsx if in project mode)
|
||||||
# Framework mode: fast-forward only (updates everything including ./rsx)
|
if [ "$IS_PROJECT_MODE" = true ]; then
|
||||||
MERGE_OUTPUT=$(git merge --ff-only "$UPSTREAM_BRANCH" 2>&1) || {
|
DIFF_STATS=$(git diff --stat HEAD.."$UPSTREAM_BRANCH" -- . ":(exclude)rsx" 2>&1)
|
||||||
if echo "$MERGE_OUTPUT" | grep -q "up to date\|up-to-date"; then
|
else
|
||||||
echo " ✓ Already up to date"
|
DIFF_STATS=$(git diff --stat HEAD.."$UPSTREAM_BRANCH" 2>&1)
|
||||||
else
|
fi
|
||||||
|
|
||||||
|
if [ -n "$DIFF_STATS" ]; then
|
||||||
|
echo "Files that will be updated:"
|
||||||
|
echo ""
|
||||||
|
echo "$DIFF_STATS" | sed 's/^/ /'
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Apply updates based on mode
|
||||||
|
echo "Applying framework updates..."
|
||||||
|
|
||||||
|
if [ "$IS_PROJECT_MODE" = true ]; then
|
||||||
|
# Project mode: merge with --no-ff (preserves ./rsx via .gitattributes)
|
||||||
|
if ! git merge --no-ff "$UPSTREAM_BRANCH" 2>&1; then
|
||||||
echo "ERROR: Framework update failed."
|
echo "ERROR: Framework update failed."
|
||||||
echo ""
|
echo ""
|
||||||
echo "ERROR: Cannot fast-forward: you have local modifications"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Show modified files
|
# Show current git state
|
||||||
GIT_STATUS=$(git status --short 2>&1)
|
GIT_STATUS=$(git status --short 2>&1)
|
||||||
if [ -n "$GIT_STATUS" ]; then
|
if [ -n "$GIT_STATUS" ]; then
|
||||||
echo "Modified files blocking update:"
|
echo "Current git state:"
|
||||||
echo ""
|
echo ""
|
||||||
echo "$GIT_STATUS" | sed 's/^/ /'
|
echo "$GIT_STATUS" | sed 's/^/ /'
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "To resolve:"
|
echo "Check status: php artisan rsx:framework:status"
|
||||||
echo ""
|
|
||||||
echo " 1. VIEW DIFFERENCES"
|
|
||||||
echo " php artisan rsx:framework:pull --diff"
|
|
||||||
echo ""
|
|
||||||
echo " 2. STASH CHANGES AND UPDATE (recommended)"
|
|
||||||
echo " php artisan rsx:framework:pull --stash"
|
|
||||||
echo ""
|
|
||||||
echo " 3. DISCARD MODIFICATIONS"
|
|
||||||
echo " git reset --hard $UPSTREAM_BRANCH"
|
|
||||||
echo ""
|
|
||||||
echo " 4. COMMIT THEN UPDATE"
|
|
||||||
echo " git add -A"
|
|
||||||
echo " git commit -m \"Framework modifications\""
|
|
||||||
echo " php artisan rsx:framework:pull"
|
|
||||||
echo ""
|
|
||||||
echo " 5. CHECK STATUS"
|
|
||||||
echo " php artisan rsx:framework:status"
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
}
|
echo " ✓ Framework updated (./rsx preserved by .gitattributes)"
|
||||||
echo " ✓ Framework updated"
|
else
|
||||||
|
# Framework mode: fast-forward only (updates everything including ./rsx)
|
||||||
|
MERGE_OUTPUT=$(git merge --ff-only "$UPSTREAM_BRANCH" 2>&1) || {
|
||||||
|
if echo "$MERGE_OUTPUT" | grep -q "up to date\|up-to-date"; then
|
||||||
|
echo " ✓ Already up to date"
|
||||||
|
else
|
||||||
|
echo "ERROR: Framework update failed."
|
||||||
|
echo ""
|
||||||
|
echo "ERROR: Cannot fast-forward: you have local modifications"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Show modified files
|
||||||
|
GIT_STATUS=$(git status --short 2>&1)
|
||||||
|
if [ -n "$GIT_STATUS" ]; then
|
||||||
|
echo "Modified files blocking update:"
|
||||||
|
echo ""
|
||||||
|
echo "$GIT_STATUS" | sed 's/^/ /'
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "To resolve:"
|
||||||
|
echo ""
|
||||||
|
echo " 1. VIEW DIFFERENCES"
|
||||||
|
echo " php artisan rsx:framework:pull --diff"
|
||||||
|
echo ""
|
||||||
|
echo " 2. STASH CHANGES AND UPDATE (recommended)"
|
||||||
|
echo " php artisan rsx:framework:pull --stash"
|
||||||
|
echo ""
|
||||||
|
echo " 3. DISCARD MODIFICATIONS"
|
||||||
|
echo " git reset --hard $UPSTREAM_BRANCH"
|
||||||
|
echo ""
|
||||||
|
echo " 4. COMMIT THEN UPDATE"
|
||||||
|
echo " git add -A"
|
||||||
|
echo " git commit -m \"Framework modifications\""
|
||||||
|
echo " php artisan rsx:framework:pull"
|
||||||
|
echo ""
|
||||||
|
echo " 5. CHECK STATUS"
|
||||||
|
echo " php artisan rsx:framework:status"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
echo " ✓ Framework updated"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "✓ Framework updated successfully"
|
if [ "$ALREADY_UP_TO_DATE" = true ]; then
|
||||||
|
echo "→ Running framework maintenance (migrations and cache rebuild)..."
|
||||||
|
else
|
||||||
|
echo "✓ Framework updated successfully"
|
||||||
|
fi
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
if [ "$IS_PROJECT_MODE" = true ]; then
|
if [ "$IS_PROJECT_MODE" = true ] && [ "$ALREADY_UP_TO_DATE" = false ]; then
|
||||||
echo "Your application code in ./rsx was preserved."
|
echo "Your application code in ./rsx was preserved."
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user