. ./test-lib.sh
test_expect_success 'Setup' '
- printf "000\n111\n222\n" >> foo &&
- git add foo &&
+ printf "000\n111\n222\n333\n" >> foo &&
+ stg add foo &&
git commit -m "Initial commit" &&
sed -i "s/000/000xx/" foo &&
git commit -a -m "First change" &&
git commit -a -m "Second change" &&
sed -i "s/222/222zz/" foo &&
git commit -a -m "Third change" &&
+ sed -i "s/333/333zz/" foo &&
+ git commit -a -m "Fourth change" &&
stg init &&
- stg uncommit -n 3 p &&
- stg pop
+ stg uncommit -n 4 p &&
+ stg pop -n 2 &&
+ stg hide p4 &&
+ test "$(echo $(stg series --all))" = "+ p1 > p2 - p3 ! p4"
'
# Commit parse functions.
test "$(msg $(stg id p3))" = "Third change 2"
'
+test_expect_success 'Edit message of hidden patch' '
+ test "$(msg $(stg id p4))" = "Fourth change" &&
+ stg edit p4 -m "Fourth change 2" &&
+ test "$(msg $(stg id p4))" = "Fourth change 2"
+'
+
test_expect_success 'Set patch message with --file <file>' '
test "$(msg HEAD)" = "Second change 2" &&
echo "Pride or Prejudice" > commitmsg &&
{
cat > "$1" <<EOF
#!/bin/sh
-printf "\n$1\n" >> "\$1"
+printf "\n$1" >> "\$1"
EOF
chmod a+x "$1"
}
mkeditor vi
-test_expect_failure 'Edit commit message interactively (vi)' '
+test_expect_success 'Edit commit message interactively (vi)' '
m=$(msg HEAD) &&
PATH=.:$PATH stg edit p2 &&
test "$(msg HEAD)" = "$m/vi"
'
mkeditor e2
-test_expect_failure 'Edit commit message interactively (VISUAL)' '
+test_expect_success 'Edit commit message interactively (VISUAL)' '
m=$(msg HEAD) &&
VISUAL=./e2 EDITOR=./e1 PATH=.:$PATH stg edit p2 &&
test "$(msg HEAD)" = "$m/e2"
'
mkeditor e3
-test_expect_failure 'Edit commit message interactively (core.editor)' '
+test_expect_success 'Edit commit message interactively (core.editor)' '
m=$(msg HEAD) &&
git config core.editor e3 &&
VISUAL=./e2 EDITOR=./e1 PATH=.:$PATH stg edit p2 &&
'
mkeditor e5
-test_expect_failure 'Edit commit message interactively (GIT_EDITOR)' '
+test_expect_success 'Edit commit message interactively (GIT_EDITOR)' '
m=$(msg HEAD) &&
GIT_EDITOR=./e5 VISUAL=./e2 EDITOR=./e1 PATH=.:$PATH stg edit p2 &&
test "$(msg HEAD)" = "$m/e5"
git config --unset stgit.editor
mkeditor twoliner
-test_expect_failure 'Both noninterative and interactive editing' '
+test_expect_success 'Both noninterative and interactive editing' '
EDITOR=./twoliner stg edit -e -m "oneliner" p2 &&
test "$(msg HEAD)" = "oneliner/twoliner"
'