tvl-depot/third_party/git/t/t3417-rebase-whitespace-fix.sh
Vincent Ambo f4609b896f merge(3p/git): Merge git subtree at v2.29.2
This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because
there is some breakage in the git build related to the netrc
credentials helper which someone has taken care of in nixpkgs.

The stable channel is not used for anything other than git, so this
should be fine.

Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
2020-11-21 19:45:56 +01:00

126 lines
1.9 KiB
Bash
Executable file

#!/bin/sh
test_description='git rebase --whitespace=fix
This test runs git rebase --whitespace=fix and make sure that it works.
'
. ./test-lib.sh
# prepare initial revision of "file" with a blank line at the end
cat >file <<EOF
a
b
c
EOF
# expected contents in "file" after rebase
cat >expect-first <<EOF
a
b
c
EOF
# prepare second revision of "file"
cat >second <<EOF
a
b
c
d
e
f
EOF
# expected contents in second revision after rebase
cat >expect-second <<EOF
a
b
c
d
e
f
EOF
test_expect_success 'blank line at end of file; extend at end of file' '
git commit --allow-empty -m "Initial empty commit" &&
git add file && git commit -m first &&
mv second file &&
git add file && git commit -m second &&
git rebase --whitespace=fix HEAD^^ &&
git diff --exit-code HEAD^:file expect-first &&
test_cmp expect-second file
'
# prepare third revision of "file"
sed -e's/Z//' >third <<EOF
a
b
c
d
e
f
Z
Z
h
i
j
k
l
EOF
sed -e's/ //g' <third >expect-third
test_expect_success 'two blanks line at end of file; extend at end of file' '
cp third file && git add file && git commit -m third &&
git rebase --whitespace=fix HEAD^^ &&
git diff --exit-code HEAD^:file expect-second &&
test_cmp expect-third file
'
test_expect_success 'same, but do not remove trailing spaces' '
git config core.whitespace "-blank-at-eol" &&
git reset --hard HEAD^ &&
cp third file && git add file && git commit -m third &&
git rebase --whitespace=fix HEAD^^ &&
git diff --exit-code HEAD^:file expect-second &&
test_cmp file third
'
sed -e's/Z//' >beginning <<EOF
a
Z
Z
EOF
cat >expect-beginning <<EOF
a
1
2
3
4
5
EOF
test_expect_success 'at beginning of file' '
git config core.whitespace "blank-at-eol" &&
cp beginning file &&
git commit -m beginning file &&
for i in 1 2 3 4 5; do
echo $i
done >> file &&
git commit -m more file &&
git rebase --whitespace=fix HEAD^^ &&
test_cmp expect-beginning file
'
test_done