Files
cim_summary/scripts/version-compare.sh
admin 126db474e5
Some checks failed
CI/CD Pipeline / Backend - Lint & Test (push) Has been cancelled
CI/CD Pipeline / Frontend - Lint & Test (push) Has been cancelled
CI/CD Pipeline / Security Scan (push) Has been cancelled
CI/CD Pipeline / Build Backend (push) Has been cancelled
CI/CD Pipeline / Build Frontend (push) Has been cancelled
CI/CD Pipeline / Integration Tests (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Performance Tests (push) Has been cancelled
CI/CD Pipeline / Dependency Updates (push) Has been cancelled
🔧 Add version comparison script for easy production version management
2025-08-17 18:43:48 -04:00

178 lines
4.7 KiB
Bash
Executable File

#!/bin/bash
# 🏭 Production Version Comparison Script
# Easily compare, revert, and work with different production versions
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
NC='\033[0m' # No Color
# Function to print colored output
print_status() {
echo -e "${BLUE}[INFO]${NC} $1"
}
print_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
print_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
print_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
print_step() {
echo -e "${PURPLE}[STEP]${NC} $1"
}
# Version definitions
PRODUCTION_BACKUP_V1_0="PRODUCTION-BACKUP-v1.0"
PRODUCTION_BACKUP_V1_1="PRODUCTION-BACKUP-v1.1"
CURRENT_PRODUCTION="CURRENT-PRODUCTION"
PREVIEW_BRANCH="preview-capabilities-phase1-2"
# Function to show available versions
show_versions() {
echo "🏷️ Available Production Versions:"
echo ""
echo "1. ${GREEN}PRODUCTION-BACKUP-v1.0${NC} (e0a37bf) - Stable deployment before major updates"
echo "2. ${GREEN}PRODUCTION-BACKUP-v1.1${NC} (b319ae0) - Clean state before inline editing features"
echo "3. ${GREEN}CURRENT-PRODUCTION${NC} (57770fd) - Currently deployed on master"
echo "4. ${YELLOW}preview-capabilities-phase1-2${NC} (0ab005c) - Current development branch"
echo ""
}
# Function to compare versions
compare_versions() {
local version1=$1
local version2=$2
print_step "Comparing $version1 vs $version2"
if [ "$version1" = "$version2" ]; then
print_error "Cannot compare version to itself"
exit 1
fi
# Show file differences
echo "📊 File differences:"
git diff --name-status $version1 $version2 | head -20
echo ""
echo "📈 Summary of changes:"
git diff --stat $version1 $version2
echo ""
echo "🔍 Detailed diff (first 50 lines):"
git diff $version1 $version2 | head -50
print_success "Comparison completed"
}
# Function to create rollback branch
create_rollback() {
local version=$1
local branch_name="rollback-$(date +%Y%m%d-%H%M%S)"
print_step "Creating rollback branch from $version"
git checkout $version
git checkout -b $branch_name
print_success "Created rollback branch: $branch_name"
print_status "To deploy this rollback:"
echo " git push origin $branch_name"
echo " firebase use cim-summarizer"
echo " firebase deploy --only functions"
}
# Function to show version details
show_version_details() {
local version=$1
print_step "Details for $version"
echo "📋 Commit Information:"
git show --no-patch --format="%H%n%an%n%ad%n%s" $version
echo ""
echo "📁 Files changed:"
git show --name-only $version | head -10
echo ""
echo "📝 Commit message:"
git show --no-patch --format="%B" $version
}
# Function to show help
show_help() {
echo "🏭 Production Version Comparison Script"
echo ""
echo "Usage: $0 [COMMAND] [OPTIONS]"
echo ""
echo "Commands:"
echo " versions Show all available versions"
echo " compare <v1> <v2> Compare two versions"
echo " rollback <version> Create rollback branch from version"
echo " details <version> Show detailed information about version"
echo " diff <v1> <v2> Show file differences between versions"
echo " help Show this help message"
echo ""
echo "Examples:"
echo " $0 versions"
echo " $0 compare PRODUCTION-BACKUP-v1.0 preview-capabilities-phase1-2"
echo " $0 rollback PRODUCTION-BACKUP-v1.1"
echo " $0 details CURRENT-PRODUCTION"
echo ""
echo "Available versions:"
echo " PRODUCTION-BACKUP-v1.0, PRODUCTION-BACKUP-v1.1, CURRENT-PRODUCTION"
echo " preview-capabilities-phase1-2"
}
# Main script logic
case "${1:-help}" in
"versions")
show_versions
;;
"compare")
if [ -z "$2" ] || [ -z "$3" ]; then
print_error "Usage: $0 compare <version1> <version2>"
exit 1
fi
compare_versions "$2" "$3"
;;
"rollback")
if [ -z "$2" ]; then
print_error "Usage: $0 rollback <version>"
exit 1
fi
create_rollback "$2"
;;
"details")
if [ -z "$2" ]; then
print_error "Usage: $0 details <version>"
exit 1
fi
show_version_details "$2"
;;
"diff")
if [ -z "$2" ] || [ -z "$3" ]; then
print_error "Usage: $0 diff <version1> <version2>"
exit 1
fi
git diff --name-status "$2" "$3"
;;
"help"|*)
show_help
;;
esac