#!/bin/sh test_description='merging with large rename matrix' . ./test-lib.sh count() { i=1 while test $i -le $1; do echo $i i=$(($i + 1)) done } test_expect_success 'setup (initial)' ' touch file && git add . && git commit -m initial && git tag initial ' make_text() { echo $1: $2 for i in `count 20`; do echo $1: $i done echo $1: $3 } test_rename() { test_expect_success "rename ($1, $2)" ' n='$1' expect='$2' git checkout -f master && git branch -D test$n || true && git reset --hard initial && for i in $(count $n); do make_text $i initial initial >$i done && git add . && git commit -m add=$n && for i in $(count $n); do make_text $i changed initial >$i done && git commit -a -m change=$n && git checkout -b test$n HEAD^ && for i in $(count $n); do git rm $i make_text $i initial changed >$i.moved done && git add . && git commit -m change+rename=$n && case "$expect" in ok) git merge master ;; *) test_must_fail git merge master ;; esac ' } test_rename 5 ok test_expect_success 'set diff.renamelimit to 4' ' git config diff.renamelimit 4 ' test_rename 4 ok test_rename 5 fail test_expect_success 'set merge.renamelimit to 5' ' git config merge.renamelimit 5 ' test_rename 5 ok test_rename 6 fail test_done