1、卸载SVN
查看自己是否安装了svn
svn
上图显示已安装,可用以下命令进行卸载
sudo apt-get remove --purge subversion
(–purge 选项表示彻底删除改软件和相关文件)
2、安装SVN
安装前先更新一下
sudo apt-get update
接下来安装
sudo apt-get install subversion
3、创建SVN版本库
创建home下的svn文件夹
sudo mkdir  /home/svn
创建svn下的repository文件夹
sudo mkdir /home/svn/repository
更改repository的权限(第一次搭建没有赋予权限,客户端访问服务器被拒绝)
sudo chmod -R 777 /home/svn/repository
创建版本库(可创建多个自定义的库,操作一样,添加新的库不需要重启SVN)
sudo svnadmin create /home/svn/repository
完成后会在repository文件夹下生成以下文件
然后对db进行权限设置
sudo chmod -R 777 db
设置访问权限:需要对conf文件夹下的文件进行修改
①修改配置文件conf/svnserve.conf
sudo vim /home/svn/repository/conf/svnserve.conf
 
#匿名用户可读
anon-access = read(可改成none,即不可读)
#权限用户可写
auth-access = write
#密码文件为passwd
password-db = passwd
#权限文件为authz
authz-db = authz
(去掉前面的#,并且顶格,不然可能会报错)
②添加访问用户conf/passwd
sudo vim /home/svn/repository/conf/passwd 
③设置用户权限conf/authz
sudo vim /home/svn/repository/conf/authz
 
1. admin = smwang //用户smwang属于admin权限组
2. @admin = rw //admin权限组的权限是读和写
3. * = rw 所有的组都具有读权限和写权限
4、测试SVN服务器
①启动服务器
svnserve -d-r /home/svn
(-d:表示在后台运行 ,-r:指定服务器的根目录)
用如下命令查看svnserve是否已经运行
ps aux | grep svnserve
(表示服务器已经在后台运行了,这个时候我没就可通过svn://服务器ip/repository从svn客户端访问服务器了)
②停止服务器
如果需要关闭服务器,可以用下面的命令
killall svnserve
5、常见错误
①svn出现Authorizationfailed 和 connect 服务器失败
进入svn的conf目录下
修改svnserve.conf
  [general]
    anon-access = read
    auth-access = write
    password-db = passwd
    authz-db = authz
修改passwd文件
  添加用户名和密码
修改authz文件
  将新增的用户和密码添加
    格式(username =password)
    [gourp]
    添加组成员
      格式 development=d1,d2,d3
    [/] 所有文件权限
      @development=rw(r读w写)
②错误:svn: Can’t connect ‘svn://.... Permission denied
在Linux环境下安装好SVN服务器后,在Linux环境下可以正常地检出、提交,在Windows PC上把已有的Repository检出后,结果在提交的时候出现以下
 出现这种问题的原因在于搭建SVN服务器,包括创建Repository目录/home/svn目录下的一切子目录和文件都是在root用户下进行的,所以在root用户下检出、提交都没有问题。可在Windows PC上从客户端访问就有问题了,因为是只有拥有管理器权限的人才能对Repository目录进行完全控制,而在Windows从客户端访问的话,因为是Users用户组的,对Repository没有修改权限,所以不能提交。
解决办法: 在服务器上把Users对Repository的完全控制权限加上就可以了,执行如下命令对/home/svn目录下的所有文件和子目录添加Users的读写权限
执行下面的命令:
chmod -R o+rw/home/svn    
#这里的路径是你项目库的根目录现在可以正常地从Windows客户端下面进行检出和提交了。
提示: 当用非root账号操作时,要用sudo 命令
更改conf下的authz、passwd、svnserve.conf内容时可以借助xshell和xftp。
更改权限: sudo chmod-777  /home/svn/root/conf/authz
6、创建仓库自定义目录
首先在服务器端创建一个SVN库,这时是只有一个顶级文件夹的空仓库(比如:/home/svn/root),然后:
1、从客户端checkout这个空的SVN库;
2、在客户端checkout出来的这个空文件夹中,按自己的需要新建各级子文件夹,以形成所需的目录结构;
3、对checkout出来的这个文件夹执行add操作,将新建的各级子文件夹纳入SVN控制;
4、对checkout出来的这个文件夹执行commit操作,将刚add进来的各文件夹提交到SVN服务器端。
基本操作就如上所述了,顺便说一下SVN官方推荐的文件夹结构:
根目录下分成trunk、branches、tags三个子文件夹,其中trunk用于存放开发主干,branches用于存放各种分支,tags用于存放各种标记。
其他
1、点击右键TortoiseSVN  Repo-browser可以查看SVN浏览器 
2、在URL中输入svn://ip/dir  ,查看SVN仓库的目录结构。