As mentioned, the repository is incredibly huge and it would take hours for each project.
On Fri, Mar 1, 2013 at 7:36 PM, Bob Archer <bob.arc...@amsi.com> wrote: > > 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. > > > You are manually trying to modify the dump file? Is there a reason you > are not using svndumpfilter? > > BOb >