Currently, git-mv will declare "not under source control" on an attempt to move a conflicted index entry. This patch adds an expect_failure testcase for this case, since this is an artificial restriction. (However, the scenario is not critical enough for the author to fix right now.) Signed-off-by: Petr Baudis <pasky@xxxxxxx> --- I don't really know if it is ok to make "feature requests" like this by adding failing testcases... t/t7001-mv.sh | 27 +++++++++++++++++++++++++++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index 7e47931..241e9a2 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -173,6 +173,33 @@ test_expect_success 'git mv should not change sha1 of moved cache entry' ' rm -f dirty dirty2 +cat >multistage <<EOT +100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 1 staged +100755 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 2 staged +100755 d00491fd7e5bb6fa28c517a0bb32b8b506539d4d 3 staged +EOT + +# Rationale: I cannot git mv around a conflicted file. This is unnecessary +# restriction in case another part of conflict resolution requires me to +# move the file around. +test_expect_failure 'git mv should move all stages of cache entry' ' + + rm -fr .git && + git init && + # git mv requires object to exist in working tree (bug?) + touch staged && + git update-index --index-info <multistage && + git ls-files --stage >lsf_output && + test_cmp multistage lsf_output && + git mv staged staged-mv && + sed "s/staged/staged-mv/" <multistage >multistage-mv && + git ls-files --stage >lsf_output && + test_cmp multistage-mv lsf_output + +' + +rm -f multistage multistage-mv lsf_output staged + test_expect_failure 'git mv should overwrite symlink to a file' ' rm -fr .git && -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html