一 安装SVN
sudo apt-get install subversion shell
二 用自动脚本配置SVN服务器 数据库
SVN服务器的分为以下几步:
1 在ubuntu上建立SVN用户及SVN用户组
2 建立SVN根目录及项目目录
3 建立SVN数据仓库
4 修改目录权限
5 导入初始数据(可选)
6 配置SVN用户权限
这下提供一个BASH脚本,能够完成上面6步工做的前面5步。“配置SVN用户权限”在下小节中将继续说明: ubuntu
#!/bin/bash ################################### # V1.0 # 做用:完成,SVN数据库的初始化工做,已经在Ubuntu上经过了测试 # 使用方法: 能够直接在终端输入 sudo init_svn_server.sh 来运行本脚本,若是 # 你想修改一些关键的设置 如用户名什么的,能够在“关键变量定义”处修改 # 做者: Jackey77681571@126.com ################################### #关键变量定义 SVN_USER=svnuser SVN_GROUP=subversion SVN_ROOT=/home/svn PROJECT_DIR=svn_manager IS_IMPORT=FALSE #soruce file directory LOCAL_DIR=/home/daydayup/work/project/svnmanager/src/source RES_STR=`grep $SVN_USER /etc/passwd` #添加svn管理用户及管理组 if [ -z "$RES_STR" ]; then echo "------------Add svn user-------------" sudo adduser "$SVN_USER" sudo addgroup "$SVN_GROUP" sudo addgroup "$SVN_USER" "$SVN_GROUP" else echo "The user:($SVN_USER), is exist." fi RES_STR=`grep $SVN_GROUP /etc/group` if [ -z "$RES_STR" ]; then echo "------------Add Group-------------" sudo addgroup "$SVN_GROUP" sudo addgroup "$SVN_USER" "$SVN_GROUP" else echo "The group:($SVN_GROUP), is exist." fi RES_STR=`grep "$SVN_GROUP:.*:$SVN_USER" /etc/group` if [ -z "$RES_STR" ]; then echo "------------Add user to group-------------" sudo addgroup "$SVN_USER" "$SVN_GROUP" else echo "The user:($SVN_USER), has been readly in group:($SVN_GROUP)." fi #建立项目目录 if [ -d "$SVN_ROOT" ]; then echo "SVN Root:($SVN_ROOT), is exist." else echo "------------Create svn root directory!-------------" sudo mkdir "$SVN_ROOT" fi cd "$SVN_ROOT" if [ -d "$PROJECT_DIR" ]; then echo "Project:($PROJECT_DIR), is exist." else echo "------------Create svn project directory!-------------" sudo mkdir "$PROJECT_DIR" #建立SVN文件仓库 echo "create:""$SVN_ROOT/$PROJECT_DIR" sudo svnadmin create "$SVN_ROOT/$PROJECT_DIR" sudo chown -R "root:$SVN_GROUP" "$PROJECT_DIR" sudo chmod -R g+rws "$PROJECT_DIR" fi if [ -d "$LOCAL_DIR" ]; then if [ "TRUE" == "$IS_IMPORT" ]; then #In the way the LOCAL_DIR will not become the work space. svn import -m "init import" "$LOCAL_DIR" "file://$SVN_ROOT/$PROJECT_DIR" else sudo svn co "file://$SVN_ROOT/$PROJECT_DIR" "$LOCAL_DIR" fi fi exit 0
三 配置权限文件
进入SVN项目目录。上一小节的脚本所生的的项目目录就是“/home/svn/svn_manager”.在项目目录下有一个名为“conf”的子目录。对权置的设置工做,主要是修改该子目录下的三个文件:
authz
passwd
svnserve.conf
svnserve.conf 主要用来设置用户信息文件的文件名的及匿名访问的权限。咱们打开 svnserve.conf 文件,后,一般首先要去“password-db = passwd” 及 “authz-db = authz”,这两句前面的注释便可(注意把空格也去掉)
password-db = passwd bash
做用就是把密码信息文件指定为同级目录下的“passwd”文件,这也是默认就会成成的密码文件。
authz-db = authz
这个是指定用信息信息文件,设定方法上面“password-db”差不一样。
接着设置 鉴权用户及非鉴权用户的权限,一样也是要去注释:
anon-access = read
auth-access = write
不过咱们一般会改为以下这样
anon-access = none
auth-access = write
这样非鉴权用户就无任何的访问权限了。 服务器
passwd文件主要用来设置用户名与密码的对应表。具体的设置方法能够参看本文件中已经有的例子。
authz 文件设置用户及用户组的权限,还有操做的目录。具体的设置方法能够参看本文件中已经有的例子。 svn
四 设置virtualbox端口转发
测试
看上图你们应该已经知道设置的要点了,这里只说明一下“子系统IP”就是在虚拟系统中查出的IP。能够在终端中输入“ifconfig”查询。“主机端口”与“子系统端口”并不要求相同,只是我为了方便记忆将其设置为同样罢了。 spa
五 启动SVN服务
sudo svnserve -d -r [服务的根目录] --listen-port [监听的端口号]
-d [--daemon] : 后台模式
-r [--root] ARG : 服务的根目录
--listen-port ARG : 监听端口
我是这样启动服务的: code
sudo svnserve -d -r /home/svn/ --listen-port 8036 server
六 checkout代码
svn checkout svn://127.0.0.1:8036/svn_manager --username mysvnuser --password mypassword