blob: d437198d3961b7acb0f196ec4669501f1e060898 [file] [log] [blame]
#!/bin/sh
test_description='"stg refresh" with removed files'
. ./test-lib.sh
# Ignore our own temp files.
cat >> .git/info/exclude <<EOF
expected*.txt
files*.txt
status*.txt
EOF
reset () {
stg pop -a > /dev/null
git reset --hard > /dev/null
}
test_expect_success 'Initialize StGit stack' '
stg init &&
echo x > x.txt &&
echo y > y.txt &&
stg add x.txt y.txt &&
git commit -m "Add some files"
'
cat > expected0.txt <<EOF
D y.txt
EOF
printf '' > expected1.txt
test_expect_success 'stg rm a file' '
stg new -m p0 &&
stg rm y.txt &&
stg status > status0.txt &&
test_cmp expected0.txt status0.txt &&
stg refresh &&
stg status > status1.txt &&
test_cmp expected1.txt status1.txt &&
stg files > files.txt &&
test_cmp -w expected0.txt files.txt
'
reset
cat > expected0.txt <<EOF
M x.txt
D y.txt
EOF
printf '' > expected1.txt
test_expect_success 'stg rm a file together with other changes' '
stg new -m p1 &&
echo x2 >> x.txt &&
stg rm y.txt &&
stg status > status0.txt &&
test_cmp expected0.txt status0.txt &&
stg refresh &&
stg status > status1.txt &&
test_cmp expected1.txt status1.txt &&
stg files > files.txt &&
test_cmp -w expected0.txt files.txt
'
reset
cat > expected0.txt <<EOF
D y.txt
EOF
printf '' > expected1.txt
test_expect_success 'rm a file' '
stg new -m p2 &&
rm y.txt &&
stg status > status0.txt &&
test_cmp expected0.txt status0.txt &&
stg refresh &&
stg status > status1.txt &&
test_cmp expected1.txt status1.txt &&
stg files > files.txt &&
test_cmp -w expected0.txt files.txt
'
reset
cat > expected0.txt <<EOF
M x.txt
D y.txt
EOF
printf '' > expected1.txt
test_expect_success 'rm a file together with other changes' '
stg new -m p3 &&
echo x2 >> x.txt &&
rm y.txt &&
stg status > status0.txt &&
test_cmp expected0.txt status0.txt &&
stg refresh &&
stg status > status1.txt &&
test_cmp expected1.txt status1.txt &&
stg files > files.txt &&
test_cmp -w expected0.txt files.txt
'
test_done