f4609b896f
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
126 lines
1.9 KiB
Bash
Executable file
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
|