Linux上搭建SVN服务

环境:centos7

一、搭建svn服务

1. 安装svn

  yum -y install subversion

2. 创建一个目录作为svn服务的地址(svn://192.168.0.2:3690 访问的目录,作为所有仓库的根目录)

  mkdir /home/svn

3. 在svn目录下为一个需要版本控制的项目创建仓库,一个svn服务可以有多个仓库

  svnadmin create /home/svn/tp5

  tp5目录下不要直接添加,删除,随意修改文件,要使用svn客户端操作。否则仓库可能报废

4. 为项目配置用户和权限

  cd /home/svn/tp5/conf 

  (1)设置访问的用户和密码 

    vim passwd  #加入如下代码:

    [users]  #表示访问svn服务根目录

    user1 = 1234 #创建了2个用户及密码

       user2 = 123

    (2)设置用户的权限(可分组)

    vim authz  加入如下代码:

    [/]  #仓库的权限

    user1 = rw  #可读可写

    user2 = r     #只读

    *=      #其它用户没有任何权限

    或分组给权限:

    [group]

    group1 = user1,user2  #group1组里有2个用户:user1,user2

    [/]  #访问根目录的权限

    @group1 = rw    #这样user1和user2都有rw权限 

 5. 在服务配置文件中引入设置

    vim svnserve.conf  #加入如下代码    

[general]
auth-access = write  #授权用户访问仓库的权限。值有3个:none  read write  ,write代表可读可写
anon-access = read  #匿名用户只读
password-db = passwd  #使用的密码文件
authz-db = authz     #使用的授权文件
realm = /home/svn/tp5    #仓库根目录

    6. 启动配置好的SVN服务

        svnserve -d -r /home/svn  # -d 以守护进程启动   -r 仓库目录

二、svn客户端使用(win10)

  1. 下载客户端工具tortoiseSVN  https://tortoisesvn.net/downloads.html

  2.  从仓库检出代码

  3.  编写核心代码并更新到仓库

三、linux上svn常用命令

  1. svn checkout svn://xxx  或 svn  co  svn://xxx

  2. svn add filename  #往版本库添加新的文件

  3. svn commit -m “提交描述信息“ [-N] [--no-unlock] file1 file2 简写 svn ci   #将改动的文件提交到版本库

  4. svn lock -m “lock test file“ test.php  #加锁

  5. svn unlock test.php  #解锁

  6. svn delete path -m “delete test fle” 简写 svn rm

  7. svn status -v path  #path是项目工作根目录 

  8. svn log path   #查看项目的日志

  9. svn info filename  #查看文件详细信息

  10. svn diff filename  #将修改的文件和基础版比较差异

  11. svn diff -r m:n filename  # 比较文件在m版和n版的差异

  12 . svn list path  简写 svn ls  #列出path目录下所有属于版本库的文件和目录

三、创建钩子脚本使web目录项目与仓库代码同步   

   1. 在web目录下检出项目

  svn checkout svn://localhost/tp5  #回车后要输入linux用户密码,svn用户名和密码

  2. 在svn仓库下,hooks目录下创建钩子脚本

  cd /home/svn/tp5j/hooks

  cp post-commit.temp  post-commit  

  chmod 775 post-commit

  vim post-commit  #加入如下代码:

#!/bin/sh
export LANG=en_US.UTF8    #设置文件导出的编码方式
SVN=/usr/bin/svn          #svn命令的路径
WEB=/usr/local/nginx/www/tp5    #项目路径
$SVN update $WEB --username xiaobao --password 1234  #执行更新操作

  并注释掉原来文件中的代码。这样每次提交代码到仓库后,web目录下的项目会自动执行更新操作

原文地址:https://www.cnblogs.com/fanshehu/p/11899217.html