aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorClemens Buchacher <drizzd@aon.at>2010-11-15 20:52:19 +0100
committerJunio C Hamano <gitster@pobox.com>2010-12-14 08:55:13 -0800
commit3055d78f97da105acfc0e207266e902251d2949f (patch)
tree77037a51ded54618ba33a5f1466a340c42802b3a /t
parentb1735b1ab7743700064af528a998cdc952c8b9a1 (diff)
downloadgit-3055d78f97da105acfc0e207266e902251d2949f.tar.gz
git-3055d78f97da105acfc0e207266e902251d2949f.tar.xz
use persistent memory for rejected paths
An aborted merge prints the list of rejected paths as part of the error message. Since commit f66caaf9 (do not overwrite files in leading path), some of those paths do not have static buffers, so we have to keep a copy. Use string_list's to accomplish this. This changes the order of the list to the order in which the paths are processed. Previously, it was reversed. Signed-off-by: Clemens Buchacher <drizzd@aon.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-xt/t7607-merge-overwrite.sh19
-rwxr-xr-xt/t7609-merge-co-error-msgs.sh16
2 files changed, 24 insertions, 11 deletions
diff --git a/t/t7607-merge-overwrite.sh b/t/t7607-merge-overwrite.sh
index d4a499dee..4d5ce4e68 100755
--- a/t/t7607-merge-overwrite.sh
+++ b/t/t7607-merge-overwrite.sh
@@ -15,7 +15,9 @@ test_expect_success 'setup' '
git reset --hard c0 &&
mkdir sub &&
echo "sub/f" > sub/f &&
- git add sub/f &&
+ mkdir sub2 &&
+ echo "sub2/f" > sub2/f &&
+ git add sub/f sub2/f &&
git commit -m sub &&
git tag sub &&
echo "VERY IMPORTANT CHANGES" > important
@@ -100,13 +102,24 @@ test_expect_success 'will not overwrite untracked subtree' '
test_cmp important sub/f/important
'
+cat >expect <<\EOF
+error: The following untracked working tree files would be overwritten by merge:
+ sub
+ sub2
+Please move or remove them before you can merge.
+EOF
+
test_expect_success 'will not overwrite untracked file in leading path' '
git reset --hard c0 &&
rm -rf sub &&
cp important sub &&
- test_must_fail git merge sub &&
+ cp important sub2 &&
+ test_must_fail git merge sub 2>out &&
+ test_cmp out expect &&
test_path_is_missing .git/MERGE_HEAD &&
- test_cmp important sub
+ test_cmp important sub &&
+ test_cmp important sub2 &&
+ rm -f sub sub2
'
test_expect_failure SYMLINKS 'will not overwrite untracked symlink in leading path' '
diff --git a/t/t7609-merge-co-error-msgs.sh b/t/t7609-merge-co-error-msgs.sh
index 114d2bd78..c994836c5 100755
--- a/t/t7609-merge-co-error-msgs.sh
+++ b/t/t7609-merge-co-error-msgs.sh
@@ -27,10 +27,10 @@ test_expect_success 'setup' '
cat >expect <<\EOF
error: The following untracked working tree files would be overwritten by merge:
- two
- three
- four
five
+ four
+ three
+ two
Please move or remove them before you can merge.
EOF
@@ -49,9 +49,9 @@ test_expect_success 'untracked files overwritten by merge (fast and non-fast for
cat >expect <<\EOF
error: Your local changes to the following files would be overwritten by merge:
- two
- three
four
+ three
+ two
Please, commit your changes or stash them before you can merge.
error: The following untracked working tree files would be overwritten by merge:
five
@@ -68,8 +68,8 @@ test_expect_success 'untracked files or local changes ovewritten by merge' '
cat >expect <<\EOF
error: Your local changes to the following files would be overwritten by checkout:
- rep/two
rep/one
+ rep/two
Please, commit your changes or stash them before you can switch branches.
EOF
@@ -89,8 +89,8 @@ test_expect_success 'cannot switch branches because of local changes' '
cat >expect <<\EOF
error: Your local changes to the following files would be overwritten by checkout:
- rep/two
rep/one
+ rep/two
Please, commit your changes or stash them before you can switch branches.
EOF
@@ -102,8 +102,8 @@ test_expect_success 'not uptodate file porcelain checkout error' '
cat >expect <<\EOF
error: Updating the following directories would lose untracked files in it:
- rep2
rep
+ rep2
EOF