近期实验室开了新项目,由于实验室的服务器(呵呵,其实也就是拿普通PC做的服务器)换了,所以需要重新搭建一个SVN服务器,操作系统是Ubuntu 12.04.4。
1. 下载安装subversion:
$ sudo apt-get install subversion
2. 创建svn仓库
$ sudo mkdir ~/svn
$ sudo svnadmin create ~/svn/projects
$ sudo chmod -R 777 ~/svn/projects
然后会在projects目录下生成一些文件
3. 设置用户、密码和权限
在projects/conf下面有三个文件:svnserve.conf 基本配置文件、passwd 用户名和密码文件、authz权限配置文件
$vim ~/svn/projects/svnserve.conf
anon-access = read 匿名用户可以看
auth-access = write 验证用户可以写
password-db = passwd 用户名、密码文件所在位置
authz-db = authz 权限配置文件所在位置
$vim ~/svn/projects/passwd
kobe = xxxx 设置用户名密码(竟然是明文。。。)
$vim ~/svn/projects/authz
[groups]
admin = kobe 把用户kobe加入admin组
[projects:/]
@admin = rw 表示在库projects根目录下,admin组都可以读写
*=r 表示任何用户都可以读
4. 启动svn服务器
$ svnserve -d -r ~/svn
-d 表示以守护进程运行
-r 指定了文件的根路径,也就是我们可以以svn://IP/projects方式访问我们的库
搭建Http访问
1. 安装apache2及相关软件
$ sudo apt-get install apache2
$ sudo apt-get install libapache2-svn
2. 创建版本仓库
同上,但要把这个目录授权给apache2读写
$sudo chown -R xxx:xxx /库目录
3. 修改配置
$vim /etc/apache2/mods-available/dav_svn.conf
我的配置:
<Location /svn> //定义http访问路径
DAV svn //启用库
SVNPath /var/www/svn/projects //库位置
AuthType Basic //验证类型
AuthName 'Kobe Repository'
AuthorUserFile "/var/www/svn/projects/conf/svn_passwd" //用户名密码文件位置(这个是密文的,需要生成)
<IfModule mod_authz_svn.c>
AuthzSVNAccessFile "/var/www/svn/projects/conf/authz" //权限文件所在位置
</IfModule>
Require valid-user
</Location>
根据上面配置需要创建访问用户
$sudo htpasswd -c /var/www/svn/projects/conf/svn_passwd kobe
输入密码:xxxx
(这个是加密的)
4. 重启apache
$ sudo /etc/init.d/apache2 restart
就可以在http://IP/svn访问
svn常用命令:
$svn import -m 'xxx' 库 文件 [导入项目]
$svn checkout 地址 --username xx --password xx 本地位置 [导出项目]
$svn add 文件 [添加文件]
$svn update [更新]
$svn delete [删除]
$svn move [移动]
$svn copy [拷贝,开分支的时候可以用]
$svn ci -m 'xxxx' [提交,上面的一些操作需要在提交后才能生效]