🔧 Add version comparison script for easy production version management
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
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
This commit is contained in:
177
scripts/version-compare.sh
Executable file
177
scripts/version-compare.sh
Executable file
@@ -0,0 +1,177 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user