1.新建仓库
svnadmin create /alidata/svn/treehole
2.配置相关权限
cd /alidata/svn/treehole/conf/
vi svnserve.conf
vi passwd
vi authz
3.将项目导入到svn中
终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
a.从服务器本地导入
项目在服务器的位置
/alidata/secret-garden/
将项目导入库内
svn import /alidata/secret-garden/ "svn://localhost/treehole" -m "app1"
b.从电脑本地导入
svn import D:\eclipse-android-workplace\FamePic
"svn://192.168.1.108:3690/project-android/framepic" -m "init import"
mac:
svn import /Applications/MAMP/htdocs/Secret "svn://xxx.xxx.156.2/secret" -m "secret"
4.纳入版本管理
从版本库导出:
导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:svn co [版本库路径] [导出目标路径]
svn co file:///alidata/svn/treehole/ /alidata/treehole
5.同步
/alidata/svn/treehole/hooks/
cp post-commit.tmpl post-commit
编辑post-commit,在文件最后添加以下内容
事先在hooks下建立log目录,在其下建立post-commit.log用于记录提交的日志
export LANG=en_US.UTF-8
#仓库的路径
REPOS="$1"
#新提交的版本号
REV="$2"
#脚本的标准输出和标准错误输出都打印到日志文件中
TIME=$(date "+%Y-%m-%d %H:%M:%S")
BINSVN=/usr/bin/svn
SVNLOOK=/usr/bin/svnlook
LOGFILE=/alidata/svn/treehole/hooks/log/post-commit.log
#SVN客户端配置
WEBROOT=/alidata/treehole
MESSAGE=$($SVNLOOK log -r $REV "$REPOS")
echo "-- $TIME" >> $LOGFILE
echo "******************************************************************" >> $LOGFILE
echo "提交版本:$REV" >> $LOGFILE
echo "提交备注:$MESSAGE" >> $LOGFILE
if [ ! -d $WEBROOT/.svn ];then
echo "$BINSVN co file://$REPOS/ $WEBROOT" >> $LOGFILE
$BINSVN co file://$REPOS/ $WEBROOT
if [ $? -eq 0 ];then
echo "checkout ok" >> $LOGFILE
else
echo "checkout error" >> $LOGFILE
fi
else
echo " $BINSVN up $REV $WEBROOT " >> $LOGFILE
$BINSVN up $REV $WEBROOT >> $LOGFILE
if [ $? -eq 0 ];then
echo "update sucess " >> $LOGFILE
else
echo "update fial " >> $LOGFILE
fi
fi
echo "--" >> $LOGFILE
增加脚本执行权限
chmod +x post-commit