#!/bin/bash
# Set the desired commit message
COMMIT_MESSAGE="Batch commit"
# Specify the number of files to process in each batch
BATCH_SIZE=10
# Set the maximum file size in bytes (99 MB)
MAX_FILE_SIZE=$((99 * 1024 * 1024))
# Get the list of modified files
MODIFIED_FILES=$(git status --porcelain | awk '{print $2}')
# Count the total number of modified files
TOTAL_FILES=$(echo "$MODIFIED_FILES" | wc -l)
# Loop through the modified files in batches
for ((i = 1; i <= TOTAL_FILES; i += BATCH_SIZE)); do
# Get the files for the current batch
BATCH_FILES=$(echo "$MODIFIED_FILES" | awk "NR >= $i && NR < $i + $BATCH_SIZE")
# Filter out files larger than the maximum size
VALID_FILES=""
for FILE in $BATCH_FILES; do
FILE_SIZE=$(stat -c%s "$FILE")
if (( FILE_SIZE <= MAX_FILE_SIZE )); then
VALID_FILES+=" $FILE"
fi
done
if [[ -n "$VALID_FILES" ]]; then
# Add the valid files to the staging area
git add $VALID_FILES
# Commit the changes with the specified message
git commit -m "$COMMIT_MESSAGE"
# Push the changes to the remote repository
git push origin
# Clear the staging area
git reset HEAD
fi
done
Latest posts by Rajesh Kumar (see all)
- Best AI tools for Software Engineers - November 4, 2024
- Installing Jupyter: Get up and running on your computer - November 2, 2024
- An Introduction of SymOps by SymOps.com - October 30, 2024