#!/bin/sh
#
# Copyright (c) 2007 Eric Wong
test_description='git-svn dcommit clobber series'
. ./lib-git-svn.sh

test_expect_success 'initialize repo' '
	mkdir import &&
	cd import &&
	awk "BEGIN { for (i = 1; i < 64; i++) { print i } }" > file
	svn import -m "initial" . "$svnrepo" &&
	cd .. &&
	git svn init "$svnrepo" &&
	git svn fetch &&
	test -e file
	'

test_expect_success '(supposedly) non-conflicting change from SVN' '
	test x"`sed -n -e 58p < file`" = x58 &&
	test x"`sed -n -e 61p < file`" = x61 &&
	svn co "$svnrepo" tmp &&
	cd tmp &&
		perl -i.bak -p -e "s/^58$/5588/" file &&
		perl -i.bak -p -e "s/^61$/6611/" file &&
		poke file &&
		test x"`sed -n -e 58p < file`" = x5588 &&
		test x"`sed -n -e 61p < file`" = x6611 &&
		svn commit -m "58 => 5588, 61 => 6611" &&
		cd ..
	'

test_expect_success 'some unrelated changes to git' "
	echo hi > life &&
	git update-index --add life &&
	git commit -m hi-life &&
	echo bye >> life &&
	git commit -m bye-life life
	"

test_expect_success 'change file but in unrelated area' "
	test x\"\`sed -n -e 4p < file\`\" = x4 &&
	test x\"\`sed -n -e 7p < file\`\" = x7 &&
	perl -i.bak -p -e 's/^4\$/4444/' file &&
	perl -i.bak -p -e 's/^7\$/7777/' file &&
	test x\"\`sed -n -e 4p < file\`\" = x4444 &&
	test x\"\`sed -n -e 7p < file\`\" = x7777 &&
	git commit -m '4 => 4444, 7 => 7777' file &&
	git svn dcommit &&
	svn up tmp &&
	cd tmp &&
		test x\"\`sed -n -e 4p < file\`\" = x4444 &&
		test x\"\`sed -n -e 7p < file\`\" = x7777 &&
		test x\"\`sed -n -e 58p < file\`\" = x5588 &&
		test x\"\`sed -n -e 61p < file\`\" = x6611
	"

test_expect_success 'attempt to dcommit with a dirty index' '
	echo foo >>file &&
	git add file &&
	test_must_fail git svn dcommit
'

test_done
