mirror of
https://github.com/git/git
synced 2024-10-29 17:08:46 +00:00
aa2faac03a
merge-ort handles submodules (and directory/file conflicts in general) differently than merge-recursive does; it basically puts all the special handling for different filetypes into one place in the codebase instead of needing special handling for different filetypes in many different code paths. This one code path in merge-ort could perhaps use some work still (there are still test_expect_failure cases in the testsuite), but it passes all the tests that merge-recursive does as well as 12 additional ones that merge-recursive fails. Mark those 12 tests as test_expect_success under merge-ort. Signed-off-by: Elijah Newren <newren@gmail.com> Reviewed-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
39 lines
1.1 KiB
Bash
Executable file
39 lines
1.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='revert can handle submodules'
|
|
|
|
. ./test-lib.sh
|
|
. "$TEST_DIRECTORY"/lib-submodule-update.sh
|
|
|
|
# Create a revert that moves from HEAD (including any test modifications to
|
|
# the work tree) to $1 by first checking out $1 and reverting it. Reverting
|
|
# the revert is the transition we test for. We tar the current work tree
|
|
# first so we can restore the work tree test setup after doing the checkout
|
|
# and revert. We test here that the restored work tree content is identical
|
|
# to that at the beginning. The last revert is then tested by the framework.
|
|
git_revert () {
|
|
git status -su >expect &&
|
|
ls -1pR * >>expect &&
|
|
tar cf "$TRASH_DIRECTORY/tmp.tar" * &&
|
|
may_only_be_test_must_fail "$2" &&
|
|
$2 git checkout "$1" &&
|
|
if test -n "$2"
|
|
then
|
|
return
|
|
fi &&
|
|
git revert HEAD &&
|
|
rm -rf * &&
|
|
tar xf "$TRASH_DIRECTORY/tmp.tar" &&
|
|
git status -su >actual &&
|
|
ls -1pR * >>actual &&
|
|
test_cmp expect actual &&
|
|
git revert HEAD
|
|
}
|
|
|
|
if test "$GIT_TEST_MERGE_ALGORITHM" != ort
|
|
then
|
|
KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1
|
|
fi
|
|
test_submodule_switch_func "git_revert"
|
|
|
|
test_done
|