UNIX/Subversion のバックアップ(No.1)


UNIX/subversion

リポジトリ作成スクリプト

#!/bin/sh

### 引数チェック
if [ "$1" = "" ]; then
  echo "usage : svnrepcr.sh [REPOSITORY-DIR]"
  echo
  echo "ex. svnrepcr.sh /var/data/svn/category/newrepository"
  exit 0
fi
REPOSITORY_DIR=$1



### 初期設定
umask 0002
REPOSITORY_NAME=`basename ${REPOSITORY_DIR}`
REPOSITORY_CONF_DIR=${REPOSITORY_DIR}/conf
REPOSITORY_HOOKS_DIR=${REPOSITORY_DIR}/hooks



### リポジトリ作成
svnadmin create --fs-type=fsfs ${REPOSITORY_DIR}



### リポジトリ環境設定
sed "s/{REPOSITORY_NAME}/${REPOSITORY_NAME}/" /etc/subversion/svnserve.conf > ${REPOSITORY_CONF_DIR}/svnserve.conf



### リポジトリ初期登録
TEMP_DIR=`mktemp -d`
mkdir ${TEMP_DIR}/trunk
mkdir ${TEMP_DIR}/branches
mkdir ${TEMP_DIR}/tags
svn import ${TEMP_DIR} file://${REPOSITORY_DIR} -m "Initial import"
rm -rf ${TEMP_DIR}



### HOOKスクリプト設定
cp -p /etc/subversion/svnperms/pre-commit ${REPOSITORY_HOOKS_DIR}



echo "create repository done."