#!/bin/bash # automatic SVN merging # # when used for the first time, first run: # svn propset merge-point $revision # where $revision is the rev number when a branch was made root=`svn info . | perl -007 -ne 'm|URL: (.*?)/branches|s and print $1'` trunk=${root}/trunk # svn 1.2.x supports "svn info URL". Without that, a stupid # ls command is needed to find the current revision of the trunk #next=`svn info $trunk | sed -n '/^Revision: /{s/.*: //g;p}'` next=`svn ls --verbose $root | perl -ne 'm|^\s+(\d+).*trunk/$| and print $1'` last=`svn propget merge-point .` echo "$0: merging from trunk from r$last to r$next" echo + svn merge -r$last:$next $trunk . svn merge -r$last:$next $trunk . echo + svn propset merge-point $next svn propset merge-point $next . last=$((last + 1)) echo Merge r$last to r$next from trunk: > clog echo >> clog echo + svn log -r$last:$next $trunk svn log -r$last:$next $trunk | sed '/^------/,/^$/d' >> clog