Skip to content

Commit

Permalink
rebase: add t3426 for submodule updates
Browse files Browse the repository at this point in the history
Test that the rebase command updates the work tree as expected for
changes which don't result in conflicts. To make that work add two
helper functions that add a commit only touching files and then
revert it. This allows to rebase the target commit over these two
and to compare the result.

Set KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR to
document that "replace directory with submodule" fails for an
interactive rebase because a directory "sub1" already exists.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jens Lehmann authored and Junio C Hamano committed Jul 14, 2014
1 parent 663ed39 commit c7e6916
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions t/t3426-rebase-submodule.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/sh

test_description='rebase can handle submodules'

. ./test-lib.sh
. "$TEST_DIRECTORY"/lib-submodule-update.sh
. "$TEST_DIRECTORY"/lib-rebase.sh

git_rebase () {
git status -su >expect &&
ls -1pR * >>expect &&
git checkout -b ours HEAD &&
echo x >>file1 &&
git add file1 &&
git commit -m add_x &&
git revert HEAD &&
git status -su >actual &&
ls -1pR * >>actual &&
test_cmp expect actual &&
git rebase "$1"
}

test_submodule_switch "git_rebase"

git_rebase_interactive () {
git status -su >expect &&
ls -1pR * >>expect &&
git checkout -b ours HEAD &&
echo x >>file1 &&
git add file1 &&
git commit -m add_x &&
git revert HEAD &&
git status -su >actual &&
ls -1pR * >>actual &&
test_cmp expect actual &&
set_fake_editor &&
echo "fake-editor.sh" >.git/info/exclude &&
git rebase -i "$1"
}

KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1
# The real reason "replace directory with submodule" fails is because a
# directory "sub1" exists, but we reuse the suppression added for merge here
test_submodule_switch "git_rebase_interactive"

test_done

0 comments on commit c7e6916

Please sign in to comment.