signed-commit remote shell (see also https://github.com/dyne/scorsh)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
scorsh/test/create_empty_commits.sh

60 lines
1.6 KiB

#!/bin/sh
. ./scorsh_functions
LINE_FILE=.line_file
cd ${SCORSH_APP}
LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1)
echo ${LAST_LINE} > ${LINE_FILE}
cd - > /dev/null
### create an empty git commit without a scorsh-command the first
### commit will be ignored by scorsh for the moment, due to an error
### on the 0000...0000 oid
cd ${LOCAL_REPO}
git commit --allow-empty -m "this is an empty commit"
check "[ $? -eq 0 ]" $0 "create_first_commit"
LAST_LINE=$(cat ${SCORSH_APP}/${LINE_FILE})
git push
cd - > /dev/null
cd ${SCORSH_APP}
ret=$(tail -n +${LAST_LINE} scorsh.log | grep -c "Invalid commit ID")
sleep 1
LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1)
echo ${LAST_LINE} > ${LINE_FILE}
cd - > /dev/null
check "[ \"$ret\" = \"2\" ] " $0 "check_first_commit"
### create two more commits without scorsh-commands
cd ${LOCAL_REPO}
git commit --allow-empty -m "second commit"
check "[ $? -eq 0 ]" $0 "create_second_commit"
git commit --allow-empty -m "third commit"
check "[ $? -eq 0 ]" $0 "create_third_commit"
LAST_LINE=$(cat ${SCORSH_APP}/${LINE_FILE})
commits=$(git log | grep "^commit " | cut -d " " -f 2 | head -2)
message_id=$(git push | grep "remote: id:" | cut -d " " -f 3)
cd - > /dev/null
cd ${SCORSH_APP}
sleep 1
for c in ${commits}; do
ret=$(tail -n +${LAST_LINE} scorsh.log | grep -c "error parsing commit ${c}: no SCORSH message found")
check "[ \"$ret\" = \"2\" ]" $0 "process_empty_commit"
done
LAST_LINE=$(wc -l scorsh.log | cut -d " " -f 1)
echo ${LAST_LINE} > ${LINE_FILE}
cd - > /dev/null
##check_fatal "[ 1 -eq 0 ]" $0 "abort_on_purpose"
rm ${LINE_FILE}
return_results