#!/bin/sh
#
# this script sets up a Subversion repository for Makefile in the
# first ever git merge, as if it were done with svnmerge (SVN 1.5+)
#

rm -rf foo.svn foo
set -e

mkdir foo.svn
svnadmin create foo.svn
svn co file://`pwd`/foo.svn foo

cd foo
mkdir trunk
mkdir branches
svn add trunk branches
svn commit -m "Setup trunk and branches"
cd trunk

git cat-file blob 6683463e:Makefile > Makefile
svn add Makefile 

echo "Committing ANCESTOR"
svn commit -m "ancestor"
cd ..
svn cp trunk branches/left

echo "Committing BRANCH POINT"
svn commit -m "make left branch"
svn cp trunk branches/right

echo "Committing other BRANCH POINT"
svn commit -m "make right branch"
cd branches/left/

#$sm init
#svn commit -m "init svnmerge"

git cat-file blob 5873b67e:Makefile > Makefile
echo "Committing BRANCH UPDATE 1"
svn commit -m "left update 1"
cd ../..

cd trunk
git cat-file blob 75118b13:Makefile > Makefile
echo "Committing TRUNK UPDATE"
svn commit -m "trunk update"

cd ../branches/left
git cat-file blob ff5ebe39:Makefile > Makefile
echo "Committing BRANCH UPDATE 2"
svn commit -m "left update 2"

git cat-file blob b5039db6:Makefile > Makefile
echo "Committing BRANCH UPDATE 3"
svn commit -m "left update 3"

# merge to trunk

cd ../..
svn update
cd trunk

svn merge ../branches/left --accept postpone

git cat-file blob b51ad431:Makefile > Makefile

svn resolved Makefile

svn commit -m "Merge trunk 1"

# create commits on both branches

cd ../branches/left
git cat-file blob ff5ebe39:Makefile > Makefile
echo "Committing BRANCH UPDATE 4"
svn commit -m "left update 4"

cd ../right
git cat-file blob b5039db6:Makefile > Makefile
echo "Committing other BRANCH UPDATE 1"
svn commit -m "right update 1"

# merge to trun again

cd ../..
svn update
cd trunk

svn merge ../branches/left --accept postpone

git cat-file blob b51ad431:Makefile > Makefile

svn resolved Makefile

svn commit -m "Merge trunk 2"

cd ../..

svnadmin dump foo.svn > svn-mergeinfo.dump

rm -rf foo foo.svn