腾讯云服务器CENTOS7下搭建SVN服务器

腾讯云服务器CENTOS7下搭建SVN服务器

1.yum安装svnserve
  1. [root@haopythonsvn ~]# yum -y install subversion

安装完成后,可查看svn安装位置

  1. [root@haopythonsvn ~]# rpm -ql subversion
  2. /etc/subversion  
  3. /etc/sysconfig/svnserve  
  4. /run/svnserve  
  5. /usr/bin/svn  
  6. /usr/bin/svnadmin  
  7. /usr/bin/svndumpfilter  
  8. /usr/bin/svnlook  
  9. /usr/bin/svnrdump  
  10. /usr/bin/svnserve  
  11. /usr/bin/svnsync  
  12. /usr/bin/svnversion  
  13. /usr/lib/systemd/system/svnserve.service  
  14. /usr/lib/tmpfiles.d/svnserve.conf  
  15. …  
2.创建版本库目录

选择在var路径下创建版本库,当前处理根目录

  1. [root@haopythonsvn ~]# pwd
  2. /root  
  3. [root@haopythonsvn ~]# mkdir /var/svnrepos
  4. [root@haopythonsvn ~]# 
3.创建svn版本库

在上面建立的/var/svnrepos基础上,创建版本库并进入目录

  1. [root@haopythonsvn /]# svnadmin create /var/svnrepos/haopython2019
  2. [root@haopythonsvn /]# cd /var/svnrepos/haopython2019/
  3. [root@haopythonsvn haopython2019]# 

进入目录后,可以看见如下信息

  1. [root@haopythonsvn haopython2019]# ls -ll
  2. 总用量 8  
  3. drwxr-xr-x 2 root root  54 4月   4 15:30 conf  
  4. drwxr-sr-x 6 root root 233 4月   4 15:30 db  
  5. -r--r--r-- 1 root root   2 4月   4 15:30 format  
  6. drwxr-xr-x 2 root root 231 4月   4 15:30 hooks  
  7. drwxr-xr-x 2 root root  41 4月   4 15:30 locks  
  8. -rw-r--r-- 1 root root 229 4月   4 15:30 README.txt  
4.配置修改

进入已经创建的版本库目录,进入conf

  1. [root@haopythonsvn conf]# pwd
  2. /var/svnrepos/haopython2019/conf  
  3. [root@haopythonsvn conf]# ls -ll
  4. 总用量 12  
  5. -rw-r--r-- 1 root root 1080 4月   4 15:30 authz  
  6. -rw-r--r-- 1 root root  309 4月   4 15:30 passwd  
  7. -rw-r--r-- 1 root root 3090 4月   4 15:30 svnserve.conf  
  8. [root@haopythonsvn conf]# 

其中:

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

1)编辑authz文件

在编辑之前先进行备份,下面两个文件也一样做好备份工作。

  1. ### This file is an example authorization file for svnserve.
  2. ### Its format is identical to that of mod_authz_svn authorization
  3. ### files.
  4. ### As shown below each section defines authorizations for the path and
  5. ### (optional) repository specified by the section name.
  6. ### The authorizations follow. An authorization line can refer to:
  7. ###  - a single user,
  8. ###  - a group of users defined in a special [groups] section,
  9. ###  - an alias defined in a special [aliases] section,
  10. ###  - all authenticated users, using the '$authenticated' token,
  11. ###  - only anonymous users, using the '$anonymous' token,
  12. ###  - anyone, using the '*' wildcard.
  13. ###
  14. ### A match can be inverted by prefixing the rule with '~'. Rules can
  15. ### grant read ('r') access, read-write ('rw') access, or no access
  16. ### ('').
  17. [aliases]  
  18. # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
  19. [groups]  
  20. # harry_and_sally = harry,sally
  21. # harry_sally_and_joe = harry,sally,&joe
  22. # [/foo/bar]
  23. # harry = rw
  24. # &joe = r
  25. # * =
  26. # [repository:/baz/fuz]
  27. # @harry_and_sally = rw
  28. # * = r
  29. [/]  
  30. moon = rw  

上面[/]表示根目录,即/var/svnrepos

moon = rw表示moon用户对根目录具有读写权限。

2)编辑passwd文件
  1. ### This file is an example password file for svnserve.
  2. ### Its format is similar to that of svnserve.conf. As shown in the
  3. ### example below it contains one section labelled [users].
  4. ### The name and password for each user follow, one account per line.
  5. [users]  
  6. # harry = harryssecret
  7. # sally = sallyssecret
  8. moon = rong123456  

其中:

用户名:moon

认证密码:rong123456

3)编辑svnserve.conf文件
  1. [general]  
  2. anon-access = none  
  3. auth-access = write
  4. password-db = passwd  
  5. authz-db = authz  
  6. realm = /var/svnrepos  
  7. [root@haopythonsvn conf]# 

anon-access = none:表示禁止匿名用户访问。

auth-access = write:表示授权用户拥有读写权限。

password-db = passswd:指定用户名口令文件,即 passwd 文件。

authz-db = authz:指定权限配置文件,即 authz 文件。

realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。

5.防火墙上开启3690端口
  1. [root@haopythonsvn /]# firewall-cmd --permanent --add-port=3690/tcp
  2. success  
  3. [root@haopythonsvn /]# firewall-cmd --reload
  4. success  
  5. [root@haopythonsvn /]# firewall-cmd --permanent --list-all
  6. public  
  7.   target: default  
  8.   icmp-block-inversion: no  
  9.   interfaces:   
  10.   sources:   
  11.   services: dhcpv6-client ftp ssh  
  12.   ports: 3690/tcp  
  13.   protocols:   
  14.   masquerade: no  
  15.   forward-ports:   
  16.   sourceports:   
  17.   icmp-blocks:   
  18.   rich rules:   
  19. [root@haopythonsvn /]# 
6.启动svn服务器
  1. [root@haopythonsvn /]# svnserve -d -r /var/svnrepos
  2. [root@haopythonsvn /]# ps -ef | grep 'svnrepos'
  3. root      1431     1  0 16:07 ?        00:00:00 svnserve -d -r /var/svnrepos  
  4. root      1433   844  0 16:08 pts/0    00:00:00 grep --color=auto svnrepos  
三.搭建SVN客户端
1.windows客户端

这里推荐使用TortoiseSVN-1.11.1.28492-x64-svn-1.11.1

下载地址

http://subversion.apache.org/packages.html

安装完成后,输入下列地址访问

svn://192.168.150.96:3690/haopython2019

弹出用户名:moon

密码:rong123456

2.LIINUX客户端安装
  1. [root@node02 ~]# yum install -y subversion
  2. [root@svnclient ~]# svn help
  3. 用法: svn <subcommand> [options] [args]  
  4. Subversion 命令行客户端,版本 1.7.14。  
  5. 使用“svn help <subcommand>” 显示子命令的帮助信息。  
  6. 使用“svn --version”查看程序的版本号和版本库访问模块,或者  
  7. 使用“svn --version --quiet”只查看程序的版本号。  
  8. 大多数的子命令可接受文件或目录参数,对目录进行递归处理。  
  9. 如果没有指定参数,默认对当前目录(包含当前目录)递归处理。  
  10. 可用的子命令:   
  11.    add  
  12.    blame (praise, annotate, ann)  
  13.    cat  
  14.    changelist (cl)  
  15.    checkout (co)  
  16.    cleanup  
  17.    commit (ci)  
  18. copycopy (cp)  
  19.    delete (del, remove, rm)  
  20.    diff (di)  
  21.    export  
  22.    help (?, h)  
  23. import
  24.    info  
  25. list (ls)  
  26.    lock  
  27.    log  
  28.    merge  
  29.    mergeinfo  
  30.    mkdir  
  31.    move (mv, rename, ren)  
  32.    patch  
  33.    propdel (pdel, pd)  
  34.    propedit (pedit, pe)  
  35.    propget (pget, pg)  
  36.    proplist (plist, pl)  
  37.    propset (pset, ps)  
  38.    relocate  
  39.    resolve  
  40.    resolved  
  41.    revert  
  42.    status (stat, st)  
  43.    switch (sw)  
  44.    unlock  
  45. update (up)  
  46.    upgrade  
  47. Subversion 是版本控制工具。  
  48. 欲取得详细资料,请参阅 http://subversion.apache.org/  
  49. [root@svnclient ~]# 
  50. [root@svnclient ~]# svn list svn://192.168.150.96/haopython2019
  51. 认证领域: <svn://192.168.150.96:3690> /var/svnrepos  
  52. “root”的密码:   
  53. 认证领域: <svn://192.168.150.96:3690> /var/svnrepos  
  54. 用户名: moon  
  55. “moon”的密码:   
  56. -----------------------------------------------------------------------  
  57. 注意!  你的密码,对于认证域:  
  58.    <svn://192.168.150.96:3690> /var/svnrepos  
  59. 只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion  
  60. 可以保存加密后的密码。请参阅文档以获得详细信息。  
  61. 你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,  
  62. 来避免再次出现此警告。  
  63. -----------------------------------------------------------------------  
  64. 保存未加密的密码(yes/no)?y  
  65. 自动取款机项目1功能代码/  
  66. [root@svnclient ~]# 
  67. [root@svnclient ~]# svn co svn://192.168.150.96:3690/haopython2019
  68. A    haopython2019/自动取款机项目1功能代码  
  69. A    haopython2019/自动取款机项目1功能代码/main.py  
  70. A    haopython2019/自动取款机项目1功能代码/package  
  71. A    haopython2019/自动取款机项目1功能代码/package/person.py  
  72. A    haopython2019/自动取款机项目1功能代码/package/card.py  
  73. A    haopython2019/自动取款机项目1功能代码/package/view.py  
  74. A    haopython2019/自动取款机项目1功能代码/package/operation.py  
  75. 取出版本 1。  
  76. [root@svnclient ~]#