add split conflicts script
This commit is contained in:
78
scripts/split-conflicts.sh
Normal file
78
scripts/split-conflicts.sh
Normal file
@@ -0,0 +1,78 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if file path is provided
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <path-to-conflicted-file>"
|
||||
echo "Example: $0 sites/default/mixins.less"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FILE="$1"
|
||||
|
||||
# Check if file exists
|
||||
if [ ! -f "$FILE" ]; then
|
||||
echo "Error: File '$FILE' not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if file has conflict markers
|
||||
if ! grep -q "<<<<<<< HEAD" "$FILE"; then
|
||||
echo "Error: No Git conflict markers found in '$FILE'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get directory and filename
|
||||
DIR=$(dirname "$FILE")
|
||||
FILENAME=$(basename "$FILE")
|
||||
NAME="${FILENAME%.*}"
|
||||
EXT="${FILENAME##*.}"
|
||||
|
||||
# Output files
|
||||
HEAD_FILE="$DIR/${NAME}-HEAD.${EXT}"
|
||||
BRANCH_FILE="$DIR/${NAME}-shop-page.${EXT}"
|
||||
|
||||
# Extract HEAD version (between <<<<<<< HEAD and =======)
|
||||
sed -n '/<<<<<<< HEAD/,/=======/p' "$FILE" | sed '1d;$d' > "$HEAD_FILE"
|
||||
|
||||
# Extract branch version (between ======= and >>>>>>> shop-page)
|
||||
sed -n '/=======/,/>>>>>>> shop-page/p' "$FILE" | sed '1d;$d' > "$BRANCH_FILE"
|
||||
|
||||
echo "✓ Created: $HEAD_FILE"
|
||||
echo "✓ Created: $BRANCH_FILE"
|
||||
echo ""
|
||||
echo "Now resolve the conflict in your editor."
|
||||
echo "Make both files identical with your final merged version."
|
||||
echo ""
|
||||
read -p "Press ENTER when you're done merging..."
|
||||
|
||||
# Check if files are identical
|
||||
if ! cmp -s "$HEAD_FILE" "$BRANCH_FILE"; then
|
||||
echo ""
|
||||
echo "⚠ Warning: Files are not identical yet!"
|
||||
echo "Differences found:"
|
||||
diff "$HEAD_FILE" "$BRANCH_FILE"
|
||||
echo ""
|
||||
read -p "Continue anyway? (y/N): " CONFIRM
|
||||
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
|
||||
echo "Aborted. No changes made to $FILE"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Copy the merged version back to original file
|
||||
cp "$HEAD_FILE" "$FILE"
|
||||
|
||||
echo ""
|
||||
echo "✓ Merged version copied to: $FILE"
|
||||
echo ""
|
||||
read -p "Delete temporary files? (Y/n): " DELETE
|
||||
|
||||
if [[ ! "$DELETE" =~ ^[Nn]$ ]]; then
|
||||
rm "$HEAD_FILE" "$BRANCH_FILE"
|
||||
echo "✓ Temporary files deleted"
|
||||
else
|
||||
echo "Temporary files kept: $HEAD_FILE, $BRANCH_FILE"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Done! Conflict resolved."
|
||||
Reference in New Issue
Block a user