#!/bin/ksh tmpdir=`pwd` master=file://$tmpdir/repos mirror=file://$tmpdir/depot/local/project export SVKROOT=$tmpdir/depot main() { init_master init_mirror create_branch_on_mirror 1 create_branch_on_master 1 sync_repos create_branch_on_mirror 2 sync_repos } headline() { echo echo echo "==== $1 ==============" } init_master() { headline "Init master" rm -rf repos svnadmin create repos svn mkdir -m 'create top dirs' $master/trunk $master/tags $master/branches svn co -q $master/trunk trunk echo a > trunk/a echo b > trunk/b echo c > trunk/c echo d > trunk/d svn add trunk/? svn ci -m 'add a,b,c,d (on master)' trunk rm -rf trunk } init_mirror() { headline "Init SVK depot" rm -rf depot svk depotmap --init svk mirror $master //mirror/project svk sync //mirror/project svk copy -m 'create local branch' //mirror/project //project } create_branch_on_mirror() { n=$1 headline "Create branch on mirror ($n)" svn copy -m "create dev${n} branch" $mirror/trunk $mirror/branches/dev${n} } create_branch_on_master() { n=$1 headline "Create branch on master ($n)" svn copy -m "create vrf${n} branch" $master/trunk $master/branches/vrf${n} } sync_repos() { headline "Synchronize" svk sync //mirror/project # NG svk pull //project svk push --verbatim //project # OK #svk push --verbatim //project #svk pull //project # NG #svk pull //project #svk push //project # OK #svk push //project #svk pull //project # OK #svk smerge -I //mirror/project //project #svk smerge -m "mirror -> master" //project //mirror/project # OK #svk smerge -I //project //mirror/project #svk smerge -m "master -> mirror" //mirror/project //project # NG #svk smerge -m "mirror -> master" //project //mirror/project #svk smerge -I //mirror/project //project # NG #svk smerge -m "master -> mirror" //mirror/project //project #svk smerge -I //project //mirror/project # NG #svk smerge -I //mirror/project //project #svk smerge -I //project //mirror/project # OK #svk smerge -m "master -> mirror" //mirror/project //project #svk smerge -m "mirror -> master" //project //mirror/project } main "$@"