腾讯云服务器CENTOS7下搭建SVN服务器
1.yum安装svnserve
- [root@haopythonsvn ~]# yum -y install subversion
安装完成后,可查看svn安装位置
- [root@haopythonsvn ~]# rpm -ql subversion
- /etc/subversion
- /etc/sysconfig/svnserve
- /run/svnserve
- /usr/bin/svn
- /usr/bin/svnadmin
- /usr/bin/svndumpfilter
- /usr/bin/svnlook
- /usr/bin/svnrdump
- /usr/bin/svnserve
- /usr/bin/svnsync
- /usr/bin/svnversion
- /usr/lib/systemd/system/svnserve.service
- /usr/lib/tmpfiles.d/svnserve.conf
- …
2.创建版本库目录
选择在var路径下创建版本库,当前处理根目录
- [root@haopythonsvn ~]# pwd
- /root
- [root@haopythonsvn ~]# mkdir /var/svnrepos
- [root@haopythonsvn ~]#
3.创建svn版本库
在上面建立的/var/svnrepos基础上,创建版本库并进入目录
- [root@haopythonsvn /]# svnadmin create /var/svnrepos/haopython2019
- [root@haopythonsvn /]# cd /var/svnrepos/haopython2019/
- [root@haopythonsvn haopython2019]#
进入目录后,可以看见如下信息
- [root@haopythonsvn haopython2019]# ls -ll
- 总用量 8
- drwxr-xr-x 2 root root 54 4月 4 15:30 conf
- drwxr-sr-x 6 root root 233 4月 4 15:30 db
- -r--r--r-- 1 root root 2 4月 4 15:30 format
- drwxr-xr-x 2 root root 231 4月 4 15:30 hooks
- drwxr-xr-x 2 root root 41 4月 4 15:30 locks
- -rw-r--r-- 1 root root 229 4月 4 15:30 README.txt
4.配置修改
进入已经创建的版本库目录,进入conf
- [root@haopythonsvn conf]# pwd
- /var/svnrepos/haopython2019/conf
- [root@haopythonsvn conf]# ls -ll
- 总用量 12
- -rw-r--r-- 1 root root 1080 4月 4 15:30 authz
- -rw-r--r-- 1 root root 309 4月 4 15:30 passwd
- -rw-r--r-- 1 root root 3090 4月 4 15:30 svnserve.conf
- [root@haopythonsvn conf]#
其中:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
1)编辑authz文件
在编辑之前先进行备份,下面两个文件也一样做好备份工作。
- ### This file is an example authorization file for svnserve.
- ### Its format is identical to that of mod_authz_svn authorization
- ### files.
- ### As shown below each section defines authorizations for the path and
- ### (optional) repository specified by the section name.
- ### The authorizations follow. An authorization line can refer to:
- ### - a single user,
- ### - a group of users defined in a special [groups] section,
- ### - an alias defined in a special [aliases] section,
- ### - all authenticated users, using the '$authenticated' token,
- ### - only anonymous users, using the '$anonymous' token,
- ### - anyone, using the '*' wildcard.
- ###
- ### A match can be inverted by prefixing the rule with '~'. Rules can
- ### grant read ('r') access, read-write ('rw') access, or no access
- ### ('').
- [aliases]
- # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
- [groups]
- # harry_and_sally = harry,sally
- # harry_sally_and_joe = harry,sally,&joe
- # [/foo/bar]
- # harry = rw
- # &joe = r
- # * =
- # [repository:/baz/fuz]
- # @harry_and_sally = rw
- # * = r
- [/]
- moon = rw
上面[/]表示根目录,即/var/svnrepos
moon = rw表示moon用户对根目录具有读写权限。
2)编辑passwd文件
- ### This file is an example password file for svnserve.
- ### Its format is similar to that of svnserve.conf. As shown in the
- ### example below it contains one section labelled [users].
- ### The name and password for each user follow, one account per line.
- [users]
- # harry = harryssecret
- # sally = sallyssecret
- moon = rong123456
其中:
用户名:moon
认证密码:rong123456
3)编辑svnserve.conf文件
- [general]
- anon-access = none
- auth-access = write
- password-db = passwd
- authz-db = authz
- realm = /var/svnrepos
- [root@haopythonsvn conf]#
anon-access = none:表示禁止匿名用户访问。
auth-access = write:表示授权用户拥有读写权限。
password-db = passswd:指定用户名口令文件,即 passwd 文件。
authz-db = authz:指定权限配置文件,即 authz 文件。
realm = /var/svnrepos:指定认证域,即 /var/svnrepos 目录。
5.防火墙上开启3690端口
- [root@haopythonsvn /]# firewall-cmd --permanent --add-port=3690/tcp
- success
- [root@haopythonsvn /]# firewall-cmd --reload
- success
- [root@haopythonsvn /]# firewall-cmd --permanent --list-all
- public
- target: default
- icmp-block-inversion: no
- interfaces:
- sources:
- services: dhcpv6-client ftp ssh
- ports: 3690/tcp
- protocols:
- masquerade: no
- forward-ports:
- sourceports:
- icmp-blocks:
- rich rules:
- [root@haopythonsvn /]#
6.启动svn服务器
- [root@haopythonsvn /]# svnserve -d -r /var/svnrepos
- [root@haopythonsvn /]# ps -ef | grep 'svnrepos'
- root 1431 1 0 16:07 ? 00:00:00 svnserve -d -r /var/svnrepos
- 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客户端安装
- [root@node02 ~]# yum install -y subversion
- [root@svnclient ~]# svn help
- 用法: svn <subcommand> [options] [args]
- Subversion 命令行客户端,版本 1.7.14。
- 使用“svn help <subcommand>” 显示子命令的帮助信息。
- 使用“svn --version”查看程序的版本号和版本库访问模块,或者
- 使用“svn --version --quiet”只查看程序的版本号。
- 大多数的子命令可接受文件或目录参数,对目录进行递归处理。
- 如果没有指定参数,默认对当前目录(包含当前目录)递归处理。
- 可用的子命令:
- add
- blame (praise, annotate, ann)
- cat
- changelist (cl)
- checkout (co)
- cleanup
- commit (ci)
- copycopy (cp)
- delete (del, remove, rm)
- diff (di)
- export
- help (?, h)
- import
- info
- list (ls)
- lock
- log
- merge
- mergeinfo
- mkdir
- move (mv, rename, ren)
- patch
- propdel (pdel, pd)
- propedit (pedit, pe)
- propget (pget, pg)
- proplist (plist, pl)
- propset (pset, ps)
- relocate
- resolve
- resolved
- revert
- status (stat, st)
- switch (sw)
- unlock
- update (up)
- upgrade
- Subversion 是版本控制工具。
- 欲取得详细资料,请参阅 http://subversion.apache.org/
- [root@svnclient ~]#
- [root@svnclient ~]# svn list svn://192.168.150.96/haopython2019
- 认证领域: <svn://192.168.150.96:3690> /var/svnrepos
- “root”的密码:
- 认证领域: <svn://192.168.150.96:3690> /var/svnrepos
- 用户名: moon
- “moon”的密码:
- -----------------------------------------------------------------------
- 注意! 你的密码,对于认证域:
- <svn://192.168.150.96:3690> /var/svnrepos
- 只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
- 可以保存加密后的密码。请参阅文档以获得详细信息。
- 你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
- 来避免再次出现此警告。
- -----------------------------------------------------------------------
- 保存未加密的密码(yes/no)?y
- 自动取款机项目1功能代码/
- [root@svnclient ~]#
- [root@svnclient ~]# svn co svn://192.168.150.96:3690/haopython2019
- A haopython2019/自动取款机项目1功能代码
- A haopython2019/自动取款机项目1功能代码/main.py
- A haopython2019/自动取款机项目1功能代码/package
- A haopython2019/自动取款机项目1功能代码/package/person.py
- A haopython2019/自动取款机项目1功能代码/package/card.py
- A haopython2019/自动取款机项目1功能代码/package/view.py
- A haopython2019/自动取款机项目1功能代码/package/operation.py
- 取出版本 1。
- [root@svnclient ~]#