This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232, reversing changes made tof2b211131f.
105 lines
2.3 KiB
Bash
Executable file
105 lines
2.3 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='git rebase --onto A...B'
|
|
|
|
. ./test-lib.sh
|
|
. "$TEST_DIRECTORY/lib-rebase.sh"
|
|
|
|
# Rebase only the tip commit of "topic" on merge base between "master"
|
|
# and "topic". Cannot do this for "side" with "master" because there
|
|
# is no single merge base.
|
|
#
|
|
#
|
|
# F---G topic G'
|
|
# / /
|
|
# A---B---C---D---E master --> A---B---C---D---E
|
|
# \ \ /
|
|
# \ x
|
|
# \ / \
|
|
# H---I---J---K side
|
|
|
|
test_expect_success setup '
|
|
test_commit A &&
|
|
test_commit B &&
|
|
git branch side &&
|
|
test_commit C &&
|
|
git branch topic &&
|
|
git checkout side &&
|
|
test_commit H &&
|
|
git checkout master &&
|
|
test_tick &&
|
|
git merge H &&
|
|
git tag D &&
|
|
test_commit E &&
|
|
git checkout topic &&
|
|
test_commit F &&
|
|
test_commit G &&
|
|
git checkout side &&
|
|
test_tick &&
|
|
git merge C &&
|
|
git tag I &&
|
|
test_commit J &&
|
|
test_commit K
|
|
'
|
|
|
|
test_expect_success 'rebase --onto master...topic' '
|
|
git reset --hard &&
|
|
git checkout topic &&
|
|
git reset --hard G &&
|
|
|
|
git rebase --onto master...topic F &&
|
|
git rev-parse HEAD^1 >actual &&
|
|
git rev-parse C^0 >expect &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'rebase --onto master...' '
|
|
git reset --hard &&
|
|
git checkout topic &&
|
|
git reset --hard G &&
|
|
|
|
git rebase --onto master... F &&
|
|
git rev-parse HEAD^1 >actual &&
|
|
git rev-parse C^0 >expect &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'rebase --onto master...side' '
|
|
git reset --hard &&
|
|
git checkout side &&
|
|
git reset --hard K &&
|
|
|
|
test_must_fail git rebase --onto master...side J
|
|
'
|
|
|
|
test_expect_success 'rebase -i --onto master...topic' '
|
|
git reset --hard &&
|
|
git checkout topic &&
|
|
git reset --hard G &&
|
|
set_fake_editor &&
|
|
EXPECT_COUNT=1 git rebase -i --onto master...topic F &&
|
|
git rev-parse HEAD^1 >actual &&
|
|
git rev-parse C^0 >expect &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'rebase -i --onto master...' '
|
|
git reset --hard &&
|
|
git checkout topic &&
|
|
git reset --hard G &&
|
|
set_fake_editor &&
|
|
EXPECT_COUNT=1 git rebase -i --onto master... F &&
|
|
git rev-parse HEAD^1 >actual &&
|
|
git rev-parse C^0 >expect &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'rebase -i --onto master...side' '
|
|
git reset --hard &&
|
|
git checkout side &&
|
|
git reset --hard K &&
|
|
|
|
test_must_fail git rebase -i --onto master...side J
|
|
'
|
|
|
|
test_done
|