LNMP创建svn版本控制

1、安装subversion服务端

  yum install subversion

2、查看是否安装成功

  rpm -ql subversion      (可以查看到安装位置则安装成功)

3、创建svn版本库目录(下面以创建的svnrepos目录为案例)

  mkdir -p /var/svn/svnrepos    (目录自己指定 )

4、创建版本库 

  svnadmin create /var/svn/svnrepos

  执行完之后生成conf、db、format、hooks、locks、readme.txt 这几个文件 

5、进入conf目录 

  authz      文件是权限控制文件 
  passwd           帐号密码文件 
  svnserve.conf   svn服务配置文件  

6、设置帐号密码 

  vim passwd 
  在[users]块中添加用户和密码,格式:帐号=密码,如 myname=123 

7、设置权限 

  vim authz 
  在末尾添加如下代码: 
  [/]         #说明:用户权限从coinhello版本库目录起有效(最好 [] 内也不要有空格,有时候会报错Authentication failed)
  myname=rw     #说明:配置用户的读写权限  如果前面有空格存在,将会在svn checkout操作的时候报错:Invalid authz configuration

  意思是版本库的根目录刚才的用户名myname对其有读写权限。 

8、修改svnserve.conf文件 

  vim svnserve.conf 
  打开这几个注释: 
  anon-access = read (none可以看到提交信息)
  auth-access = write   (必须顶格写,前面不能有空格) 
  password-db = passwd 
  authz-db=authz 
  realm=/var/svn/svnrepos 这个修改成刚才创建的版本库 

9、启动svn版本库 

  svnserve -d -r /var/svn/svnrepos  

  (多版本为启动/var/svn,即外层)

  (尤其要注意不然会出现checkout时,提示:URL svn://192.**.**.**/svntest doesn't exist这一类错误)

10、利用svn的post-commit将svn服务器的文件同步到固定的目录 

  cd /var/svn/svnrepos/hooks
  cp post-commit.tmpl post-commit
  chmod a+x post-commit 
  编辑post-commit钩子脚本 
  vim post-commit 修改里面的如下内容 
    export LANG=zh_CN.UTF-8 
    SVN=/usr/bin/svn    这个是安装好的时候查看成功与否看到的那个目录(等号两边不能有空格)
    WEB=/home/myweb    这个就是你每次完成提交svn自动提交到的那个目录(等号两边不能有空格)
    ${SVN} update ${WEB} --username myname( 你刚才设置的用户名 ) --password 123( 你刚才设置的密码) 

  第一次检出生成 .svn 文件夹很重要,下面有两个方法检出

  windows检出:右键菜单里有“svn checkout”功能,单击然后输入地址: svn://120.77.xxx.xxx/svnrepos  ,接着输入用户和密码,这样就完成了创建项目版本库和导出项目

  linux检出:

    方法一:就是你需要切换到/home/myweb (你指定svn自动提交的那个目录)下面手动进行一次checkout:(命令行为后面那个) svn co svn://localhost(会在刚才的/home/web生成一个localhost文件夹) (多版本库为svn co svn://localhost/svnrepos(版本库名称))

      用ftp工具到/home/myweb/localhost (如果是多版本库,则为版本库名称)下面把里面的.svn放到你的/home/myweb里面这样以后只要从客户端提交代码就会自动同步到你的指定的目录了。

    方法二:用svn checkout svn://路径(目录或文件的全路径) [本地目录全路径] --username 用户名 检出 (下面有举例说明)

      svn  checkout  svn://120.77.xxx.xxx/svnrepos  /home/myweb/项目文件夹名(格式:svn  checkout  项目版本库路径  导出项目的存放路径)

11、需要注意的地方

  1.需要在安全组那里配置3690端口

  2.//打开防火墙
    iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
    service iptables save

  3.所有配置文件里面的修改前面都不允许存在空格 比如 vim authz  空格[/] 

  4.在最后需要重启svnserve服务端

  关闭svn killall svnserve
  重启svn svnserve -d -r /var/svn/ (说明:-d 表示以守护进程打开,-r 指的是SVN版本库路径)
  查看svn ps -ef|grep svnserve

 

希望大家共同进步,学习更多想学习的知识。
原文地址:https://www.cnblogs.com/lyzaidxh/p/9957969.html