Merge branch 'ja/i18n-fix'
[gitweb.git] / t / t6032-merge-large-rename.sh
index eac5ebac24a0174fa20625a19835861573147a26..80777386dc6961b5114a85ea6efd14e066ebc9a4 100755 (executable)
@@ -20,7 +20,7 @@ test_expect_success 'setup (initial)' '
 
 make_text() {
        echo $1: $2
-       for i in `count 20`; do
+       for i in $(count 20); do
                echo $1: $i
        done
        echo $1: $3
@@ -28,10 +28,10 @@ make_text() {
 
 test_rename() {
        test_expect_success "rename ($1, $2)" '
-       n='$1'
-       expect='$2'
+       n='$1' &&
+       expect='$2' &&
        git checkout -f master &&
-       git branch -D test$n || true &&
+       test_might_fail git branch -D test$n &&
        git reset --hard initial &&
        for i in $(count $n); do
                make_text $i initial initial >$i
@@ -70,4 +70,34 @@ test_expect_success 'set merge.renamelimit to 5' '
 test_rename 5 ok
 test_rename 6 fail
 
+test_expect_success 'setup large simple rename' '
+       git config --unset merge.renamelimit &&
+       git config --unset diff.renamelimit &&
+
+       git reset --hard initial &&
+       for i in $(count 200); do
+               make_text foo bar baz >$i
+       done &&
+       git add . &&
+       git commit -m create-files &&
+
+       git branch simple-change &&
+       git checkout -b simple-rename &&
+
+       mkdir builtin &&
+       git mv [0-9]* builtin/ &&
+       git commit -m renamed &&
+
+       git checkout simple-change &&
+       >unrelated-change &&
+       git add unrelated-change &&
+       git commit -m unrelated-change
+'
+
+test_expect_success 'massive simple rename does not spam added files' '
+       sane_unset GIT_MERGE_VERBOSITY &&
+       git merge --no-stat simple-rename | grep -v Removing >output &&
+       test_line_count -lt 5 output
+'
+
 test_done