#!/bin/sh

test_description='git rebase - test patch id computation'

. ./test-lib.sh

count () {
	i=0
	while test $i -lt $1
	do
		echo "$i"
		i=$(($i+1))
	done
}

scramble () {
	i=0
	while read x
	do
		if test $i -ne 0
		then
			echo "$x"
		fi
		i=$((($i+1) % 10))
	done <"$1" >"$1.new"
	mv -f "$1.new" "$1"
}

run () {
	echo \$ "$@"
	/usr/bin/time "$@" >/dev/null
}

test_expect_success 'setup' '
	git commit --allow-empty -m initial &&
	git tag root
'

do_tests () {
	nlines=$1 pr=${2-}

	test_expect_success $pr "setup: $nlines lines" "
		rm -f .gitattributes &&
		git checkout -q -f master &&
		git reset --hard root &&
		count $nlines >file &&
		git add file &&
		git commit -q -m initial &&
		git branch -f other &&

		scramble file &&
		git add file &&
		git commit -q -m 'change big file' &&

		git checkout -q other &&
		: >newfile &&
		git add newfile &&
		git commit -q -m 'add small file' &&

		git cherry-pick master >/dev/null 2>&1
	"

	test_debug "
		run git diff master^\!
	"

	test_expect_success $pr 'setup attributes' "
		echo 'file binary' >.gitattributes
	"

	test_debug "
		run git format-patch --stdout master &&
		run git format-patch --stdout --ignore-if-in-upstream master
	"

	test_expect_success $pr 'detect upstream patch' '
		git checkout -q master &&
		scramble file &&
		git add file &&
		git commit -q -m "change big file again" &&
		git checkout -q other^{} &&
		git rebase master &&
		git rev-list master...HEAD~ >revs &&
		test_must_be_empty revs
	'

	test_expect_success $pr 'do not drop patch' '
		git branch -f squashed master &&
		git checkout -q -f squashed &&
		git reset -q --soft HEAD~2 &&
		git commit -q -m squashed &&
		git checkout -q other^{} &&
		test_must_fail git rebase squashed &&
		git rebase --quit
	'
}

do_tests 500
do_tests 50000 EXPENSIVE

test_done
