#!/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