SVN_TARGET_REPO, the target repository.
SVN_LOCAL_REPO, this is the new location of your files
SVN_BACKUP, this is the svn export directory
#!/bin/sh
SVN_TARGET_REPO="svn+ssh://LOGIN@SERVER/var/svn/nextretro"
SVN_LOCAL_REPO="/Users/degs/personal/projects.svn/nextretro.new"
SVN_BACKUP="/Users/degs/personal/projects.svn/nextretro/svnbackup"
#create the directory for the target, and checkout revision 0, if no .svn
if [[ ! -e $SVN_LOCAL_REPO/.svn ]]; then
echo "creating SVN repo"
mkdir -p $SVN_LOCAL_REPO
svn co $SVN_TARGET_REPO $SVN_LOCAL_REPO/.
else
echo "skipping export: $SVN_LOCAL_REPO/.svn"
fi
#now reimport everything
cd $SVN_BACKUP
for f in $(ls -d * |sort -n); do
if [[ -d $f ]]; then
echo "importing rev: $f"
rsync -r --exclude=.svn --exclude=commit.log $SVN_BACKUP/$f/* $SVN_LOCAL_REPO
svn add $SVN_LOCAL_REPO/* --force
COMMITLOG=`cat $SVN_BACKUP/$f/commit.log`
svn commit $SVN_LOCAL_REPO -m "$COMMITLOG"
fi
done
No comments:
Post a Comment