|
|
@ -4,6 +4,11 @@ test_description='pulling into void' |
|
|
|
|
|
|
|
|
|
|
|
. ./test-lib.sh |
|
|
|
. ./test-lib.sh |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modify () { |
|
|
|
|
|
|
|
sed -e "$1" <"$2" >"$2.x" && |
|
|
|
|
|
|
|
mv "$2.x" "$2" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
D=`pwd` |
|
|
|
D=`pwd` |
|
|
|
|
|
|
|
|
|
|
|
test_expect_success setup ' |
|
|
|
test_expect_success setup ' |
|
|
@ -160,4 +165,61 @@ test_expect_success 'pull --rebase works on branch yet to be born' ' |
|
|
|
test_cmp expect actual |
|
|
|
test_cmp expect actual |
|
|
|
' |
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test_expect_success 'setup for detecting upstreamed changes' ' |
|
|
|
|
|
|
|
mkdir src && |
|
|
|
|
|
|
|
(cd src && |
|
|
|
|
|
|
|
git init && |
|
|
|
|
|
|
|
printf "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n" > stuff && |
|
|
|
|
|
|
|
git add stuff && |
|
|
|
|
|
|
|
git commit -m "Initial revision" |
|
|
|
|
|
|
|
) && |
|
|
|
|
|
|
|
git clone src dst && |
|
|
|
|
|
|
|
(cd src && |
|
|
|
|
|
|
|
modify s/5/43/ stuff && |
|
|
|
|
|
|
|
git commit -a -m "5->43" && |
|
|
|
|
|
|
|
modify s/6/42/ stuff && |
|
|
|
|
|
|
|
git commit -a -m "Make it bigger" |
|
|
|
|
|
|
|
) && |
|
|
|
|
|
|
|
(cd dst && |
|
|
|
|
|
|
|
modify s/5/43/ stuff && |
|
|
|
|
|
|
|
git commit -a -m "Independent discovery of 5->43" |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test_expect_failure 'git pull --rebase detects upstreamed changes' ' |
|
|
|
|
|
|
|
(cd dst && |
|
|
|
|
|
|
|
git pull --rebase && |
|
|
|
|
|
|
|
test -z "$(git ls-files -u)" |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test_expect_success 'setup for avoiding reapplying old patches' ' |
|
|
|
|
|
|
|
(cd dst && |
|
|
|
|
|
|
|
test_might_fail git rebase --abort && |
|
|
|
|
|
|
|
git reset --hard origin/master |
|
|
|
|
|
|
|
) && |
|
|
|
|
|
|
|
git clone --bare src src-replace.git && |
|
|
|
|
|
|
|
rm -rf src && |
|
|
|
|
|
|
|
mv src-replace.git src && |
|
|
|
|
|
|
|
(cd dst && |
|
|
|
|
|
|
|
modify s/2/22/ stuff && |
|
|
|
|
|
|
|
git commit -a -m "Change 2" && |
|
|
|
|
|
|
|
modify s/3/33/ stuff && |
|
|
|
|
|
|
|
git commit -a -m "Change 3" && |
|
|
|
|
|
|
|
modify s/4/44/ stuff && |
|
|
|
|
|
|
|
git commit -a -m "Change 4" && |
|
|
|
|
|
|
|
git push && |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modify s/44/55/ stuff && |
|
|
|
|
|
|
|
git commit --amend -a -m "Modified Change 4" |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
test_expect_failure 'git pull --rebase does not reapply old patches' ' |
|
|
|
|
|
|
|
(cd dst && |
|
|
|
|
|
|
|
test_must_fail git pull --rebase && |
|
|
|
|
|
|
|
test 1 = $(find .git/rebase-apply -name "000*" | wc -l) |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
test_done |
|
|
|
test_done |
|
|
|