Signed-off-by: Karl Hasselström <kha@xxxxxxxxxxx> --- These four tests all pass on Catalin's current master. Do they fail for you, or did I miss something in your problem description? t/t2702-refresh-rm.sh | 101 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 101 insertions(+), 0 deletions(-) create mode 100755 t/t2702-refresh-rm.sh diff --git a/t/t2702-refresh-rm.sh b/t/t2702-refresh-rm.sh new file mode 100755 index 0000000..896ebf3 --- /dev/null +++ b/t/t2702-refresh-rm.sh @@ -0,0 +1,101 @@ +#!/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 && + git 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 'git-rm a file' ' + stg new -m p0 && + git 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 | sort > files.txt && + test_cmp expected0.txt files.txt +' + +reset + +cat > expected0.txt <<EOF +D y.txt +M x.txt +EOF +printf '' > expected1.txt +test_expect_success 'git-rm a file together with other changes' ' + stg new -m p1 && + echo x2 >> x.txt && + git 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 | sort > files.txt && + test_cmp 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 | sort > files.txt && + test_cmp expected0.txt files.txt +' + +reset + +cat > expected0.txt <<EOF +D y.txt +M x.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 | sort > files.txt && + test_cmp expected0.txt files.txt +' + +test_done -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html