I've a repository that's grown incredibly big and we're going to start breaking out each project in the repo to separate repos. However I've ran into a couple of issues in regards of Node-copyfrom-rev which doesn't match up properly upon dump/load resulting in the following:
svnadmin: E160006: Relative source revision -18169 is not available in current repository svnadmin: E160013: File not found: transaction '37-1c', path 'tags/1.6.1/file.php' I've done some efforts to rewrite the dump-files and revision-definitions but it doesn't seem to match up properly making it hard to automate the process. Any suggestions of changes are welcome, please notice however that using svndumpfilter isn't really an option due to the size of the repo it takes hours to break out just a single project and this repo contains several thousand. #!/bin/bash project=$1 repo=/root/svn-copy/oldrepo rm -fr $project* mkdir $project cd $project svnadmin create $project i=1 svn log file://$repo $project | grep -e ".*r[0-9].*|.*" | awk '{ print substr($1,2) }' | sort -g | while read rev; do revs[$rev]=$i svnadmin dump $repo --quiet -r $rev --incremental >> $project.$rev.bak # Rewrite revision number to ease rewrite of Node-copyfrom perl -pi -e "s/Revision-number: $rev/Revision-number: $i/;" $project.$rev.bak # Rewrite node-paths perl -pi -e "s/Node-path: $project\//Node-path: /;" $project.$rev.bak # Rewrite Node-copyfrom-path perl -pi -e "s/Node-copyfrom-path: $project\//Node-copyfrom-path: /;" $project.$rev.bak # Rewrite Node-copyfrom-rev for rev in $(grep Node-copyfrom-rev $project.$i.bak | awk '{ print $2 }'); do perl -pi -e "s/Node-copyfrom-rev: $rev/Node-copyfrom-rev: ${revs[$rev]}/;" $project.$i.bak done # Remove prop for old project-folder sed -i "/Node-path: $project/,/PROPS-END/d" $project.$rev.bak svnadmin load --ignore-uuid $project < $project.$rev.bak let i=$i+1 rm -fr $project.$rev.bak done svnadmin setuuid $project Please notice that the rewrite of the revision-numbers has mitigated the node-copyfrom-rev somewhat but not entirely as it seems like node-copyfrom-repo points incorrectly sometimes when dumping this way. Best