由于需要将 linux 下的项目转移到 windows 平台进行编译,linux 平台下项目使用的 git + repo 进行管理的, Windows下不支持 repo, 所以动手搭建了 svn 服务器, 记录过程如下。

SVN 服务器的搭建与使用

由于需要将 linux 下的项目转移到 windows 平台进行编译,linux 平台下项目使用的 git + repo 进行管理的, Windows下不支持 repo, 所以动手搭建了 svn 服务器, 记录过程如下。

Ubuntu 上搭建 SVN 服务器

  1. 安装 svn

sudo apt-get install subversion

  1. 新建目录,作为 svn 根目录
    mkdir ~/svn

  2. 创建数据库
    svnadmin create ~/svn/Demo
    创建 Demo 数据库

  3. 配置数据库

  • cd ~/svn/Demo && ls
    可以发现目录下已经生成 conf db format hooks locks README.txt 文件和文件夹。conf文件夹下主要是一些配置文件,db文件夹存储的是svn转储后的数据。
  • conf 目录下文件说明
1
2
3
conf/svnserve.conf 主配置文件
conf/authz 用户权限文件
conf/passwd  存储用户和密码的文件
  • 配置版本库: vim conf/svnserve.conf 将以下参数去掉注释
1
2
3
4
5
6
7
8
#匿名用户访问权限,默认read,none为不允许匿名用户访问
anon-access = none
#认证用户权限 可写
auth-access = write
#密码文件为passwd(默认在版本库/conf下面,也可以绝对路径指定文件位置)
password-db = passwd
#权限文件为authz (默认在版本库/conf下面,也可以绝对路径指定文件位置)
authz-db = authz
  • 配置用户名和密码: vim conf/passwd
1
2
3
4
5
#前面是用户名,后面是密码
[users]
lilei = 123456
jack = 123456
wang = 123456
  • 配置用户组和用户组成员权限: vim conf/authz
1
2
3
4
5
6
7
8
9
10
[groups]
#定义用户组,以及用户组下面的成员
manager = lilei
guest = jack,wang
#manager用户组下面的成员对以根目录起始的Demo版本库具有读写权限
[Demo:/]
@manager = rw
#guest用户组下面的成员对Demo版本库下media目录只读权限
[ZYQ:/media]
@guest = r
  1. 启动 SVN 服务
1
2
3
sudo svnserve -d -r ~/svn/Demo
ps aux | grep svnserve 查看进程是否启动
sudo killall svnserve 关闭 SVN 服务
  1. 导入项目
    将已有文件或文件夹导入到 Demo 项目中
    svn import -m "First import" ~/learn/ svn://localhost/Demo

  2. 其他客户端的使用就不详细介绍了

  3. 踩过的坑

    • windows 对文件名的大小写不敏感,同名文件会直接覆盖,注意文件名大小写问题