Current File : /var/www/vinorea/new_version.sh
#!/bin/bash

if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <new_version_tag>"
    exit 1
fi

# Fetch updates from upstream
git fetch --all --prune --tags

# Specify the new version tag from the command-line argument
new_version_tag="$1"

# Checkout the tag
git checkout $new_version_tag

# Create a new branch based on the tag
new_branch_name="edition/$new_version_tag"
git switch -c $new_branch_name

# Find the highest edition branch
highest_edition_branch=$(git branch -a | grep -E '^  remotes/origin/edition/[0-9]+\.[0-9]+\.[0-9]+$' | sed 's/.*edition\///' | sort -V | tail -n 1)

if [ -n "$highest_edition_branch" ]; then
    echo "Found highest edition branch: $highest_edition_branch"

    edition_commit_list=$(git rev-list $(git merge-base $highest_edition_branch origin/edition/$highest_edition_branch)..origin/edition/$highest_edition_branch --reverse)

    # Apply all commits from the last edition branch
    for commit in $edition_commit_list
    do
        git cherry-pick $commit
    done

    # Check for conflicts
    conflict_check=$(git status | grep "Unmerged paths")

    if [ -n "$conflict_check" ]; then
        echo "Conflicts detected. Please resolve conflicts and commit the changes."
        exit 1
    else
        echo "Commits applied successfully. You can now continue with your tasks."
    fi
else
    echo "Error: No existing edition branches found."
    exit 1
fi