diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-08-21 23:27:29 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-08-21 23:27:29 -0700 |
commit | d25c72f7da5116f7b7a1f88a59d2bc14415a03b2 (patch) | |
tree | 74d5fcea2044616ca648d60004bb24623f62997b /t | |
parent | 2eb54692d145a0c2939698302e913975f059ac34 (diff) | |
parent | cf65426de682bf4e336eddd2964a7c1585597f48 (diff) | |
download | git-d25c72f7da5116f7b7a1f88a59d2bc14415a03b2.tar.gz git-d25c72f7da5116f7b7a1f88a59d2bc14415a03b2.tar.xz |
Merge branch 'en/rebase-against-rebase-fix'
* en/rebase-against-rebase-fix:
pull --rebase: Avoid spurious conflicts and reapplying unnecessary patches
t5520-pull: Add testcases showing spurious conflicts from git pull --rebase
Diffstat (limited to 't')
-rwxr-xr-x | t/t5520-pull.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh index 319e389ed..0b489f5b1 100755 --- a/t/t5520-pull.sh +++ b/t/t5520-pull.sh @@ -4,6 +4,11 @@ test_description='pulling into void' . ./test-lib.sh +modify () { + sed -e "$1" <"$2" >"$2.x" && + mv "$2.x" "$2" +} + D=`pwd` 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_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_success '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_success '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 |