#!/bin/sh # # Copyright (c) 2006 Yann Dirson, based on t3400 by Amos Waterland # test_description='git rebase should detect patches integrated upstream This test cherry-picks one local change of two into master branch, and checks that git rebase succeeds with only the second patch in the local branch. ' . ./test-lib.sh test_expect_success \ 'prepare repository with topic branch' \ 'echo First > A && git update-index --add A && git-commit -m "Add A." && git-checkout -b my-topic-branch && echo Second > B && git update-index --add B && git-commit -m "Add B." && echo AnotherSecond > C && git update-index --add C && git-commit -m "Add C." && git-checkout -f master && echo Third >> A && git update-index A && git-commit -m "Modify A." ' test_expect_success \ 'pick top patch from topic branch into master' \ 'git cherry-pick my-topic-branch^0 && git-checkout -f my-topic-branch && git branch master-merge master && git branch my-topic-branch-merge my-topic-branch ' test_debug \ 'git cherry master && git format-patch -k --stdout --full-index master >/dev/null && gitk --all & sleep 1 ' test_expect_success \ 'rebase topic branch against new master and check git-am did not get halted' \ 'git-rebase master && test ! -d .git/rebase' test_expect_success \ 'rebase --merge topic branch that was partially merged upstream' \ 'git-checkout -f my-topic-branch-merge && git-rebase --merge master-merge && test ! -d .git/rebase-merge' test_done