CentOS搭建SVN
查看系统环境(1)查看系统版本
[root@node-005 ~]# cat /etc/redhat-release CentOS release 6.8 (Final)(2)查看系统全部信息
[root@node-005 ~]# uname -a Linux node-005 2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux(3)查看系统内核
[root@node-005 ~]# uname -r 2.6.32-642.15.1.el6.x86_64安装SVN1、修改yum仓库配置(可不做,我这里做事保留SVN安装包)
[root@node-005 ~]# sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf [root@node-005 ~]# grep keepcache /etc/yum.conf #rpm包不删除 keepcache=1 [root@node-005 ~]# yum -y install subversion2、查找查找SVN安装包
[root@node-005 ~]# find / -name subversion-1.6.11-15.el6_7.x86_64.rpm /var/cache/yum/x86_64/6/base/packages/subversion-1.6.11-15.el6_7.x86_64.rpm [root@node-005 ~]# tree /var/cache/yum/x86_64/6/base/packages/ /var/cache/yum/x86_64/6/base/packages/ ├── apr-1.3.9-5.el6_2.x86_64.rpm ├── apr-util-1.3.9-3.el6_0.1.x86_64.rpm ├── libproxy-0.3.0-10.el6.x86_64.rpm ├── libproxy-bin-0.3.0-10.el6.x86_64.rpm ├── libproxy-python-0.3.0-10.el6.x86_64.rpm ├── neon-0.29.3-3.el6_4.x86_64.rpm ├── pakchois-0.4-3.2.el6.x86_64.rpm ├── perl-URI-1.40-2.el6.noarch.rpm ├── subversion-1.6.11-15.el6_7.x86_64.rpm └── tree-1.5.3-3.el6.x86_64.rpm 0 directories, 10 files [root@node-005 packages]# rpm -aq subversion subversion-1.6.11-15.el6_7.x86_64配置并启动SVN1、创建SVN版本库根目录(svndata)及密码权限目录(svnpasswd)
[root@node-005 ~]# mkdir -p /application/svndata [root@node-005 ~]# mkdir -p /application/svnpasswd [root@node-005 ~]# tree /application/svn* /application/svndata /application/svnpasswd 0 directories, 0 files2、启动SVN服务指定服务的SVN根目录
[root@node-005 ~]# svnserve -d -r /application/svndata/ # -d 后台运行;-r 指定运行目录# 注:查看svnserver命令帮助
[root@node-005 ~]# svnserve --help 用法: svnserve [-d | -i | -t | -X] [options] 有效选项: -d [--daemon] : 后台模式 -i [--inetd] : inetd 模式 -t [--tunnel] : 隧道模式 -X [--listen-once] : 监听一次方式(调试用) -r [--root] ARG : 服务的根目录 -R [--read-only] : 强制只读;覆盖版本库配置文件 --config-file ARG : 从文件 ARG 读取配置 --listen-port ARG : 监听端口 [方式: daemon, listen-once] --listen-host ARG : 监听主机名称或IP地址 [方式: daemon, listen-once] -T [--threads] : 使用线程代替进程 [方式: daemon] --foreground : 在前台运行(调试用) [方式: daemon] --log-file ARG : svnserve 日志文件 --pid-file ARG : 写进程 PID 到文件 ARG [方式: daemon, listen-once] --tunnel-user ARG : 隧道用户名(默认是当前UID对应的用户名) [方式: tunnel] -h [--help] : 显示本帮助 --version : 显示程序版本信息3、查看服务是否启动
(1)查看进程
[root@node-005 ~]# ps -ef |grep svn root 67481 0 15:25 ? 00:00:00 svnserve -d -r /application/svndata/ root 67526658 0 15:34 pts/0 00:00:00 grep svn(2)查看端口
[root@node-005 ~]# netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local AddressForeign AddressState PID/Program name tcp 00 0.0.0.0:36900.0.0.0:* LISTEN 6748/svnserve tcp 00 0.0.0.0:3306 0.0.0.0:* LISTEN 5217/mysqld tcp 00 0.0.0.0:210.0.0.0:* LISTEN 2160/vsftpd tcp 00 0.0.0.0:220.0.0.0:* LISTEN 5581/sshd tcp 00 127.0.0.1:6310.0.0.0:* LISTEN 1315/cupsd tcp 00 127.0.0.1:250.0.0.0:* LISTEN 1905/sendmail tcp 0 0 :::80 :::* LISTEN 1925/httpd tcp 00 :::22:::* LISTEN 5581/sshd tcp 00 ::1:631:::* LISTEN 1315/cupsd udp 00 0.0.0.0:6310.0.0.0:*1315/cupsd(3):已知端口号查看进程
[root@node-005 ~]# lsof -i tcp:3690 COMMAND PID USERFD TYPE DEVICE SIZE/OFF NODE NAME svnserve 6748 root 3u IPv448866 0t0 TCP *:svn (LISTEN) [root@node-005 ~]# netstat -lntup |grep 3690 tcp 00 0.0.0.0:36900.0.0.0:* LISTEN 6748/svnserve创建SVN版本库1、新的Subversion项目
(1)创建一个新的Subversion项目(版本库)
[root@node-005 ~]# svnadmin create /application/svndata/sadoc [root@node-005 ~]# ll /application/svndata/sadoc/ 总用量 24 drwxr-xr-x 2 root root 4096 4月 20 15:47 conf drwxr-sr-x 6 root root 4096 4月 20 15:47 db -r--r--r-- 1 root root 2 4月 20 15:47 format drwxr-xr-x 2 root root 4096 4月 20 15:47 hooks drwxr-xr-x 2 root root 4096 4月 20 15:47 locks -rw-r--r-- 1 root root 229 4月 20 15:47 README.txt(2)查看帮助
[root@node-005 ~]# svnadmin --help 一般用法: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...] 使用“svnadmin help <subcommand>” 得到子命令的帮助信息。 使用“svnadmin --version”查看程序的版本号和文件系统模块。 可用的子命令: crashtest create deltify dump help (?, h) hotcopy list-dblogs list-unused-dblogs load lslocks lstxns pack recover rmlocks rmtxns setlog setrevprop setuuid upgrade verify [root@node-005 ~]# svnadmin help create create: 用法: svnadmin create REPOS_PATH 在 REPOS_PATH 创建一个新的空版本库。 有效选项: --bdb-txn-nosync : 在提交事务时禁用fsync [BDB] --bdb-log-keep : 禁用自动删除日志文件 [BDB] --config-dir ARG : 从目录 ARG 读取用户配置文件 --fs-type ARG : 版本库类型: “fsfs”(默认)或“bdb” --pre-1.4-compatible : 使用与1.4之前版本兼容的格式 --pre-1.5-compatible : 使用 Subversion 1.5 之前版本的格式 --pre-1.6-compatible : 使用与 1.6 之前版本兼容的格式2、仓库用户权限配置
(1)配置允许用户solin读写访问
①备份配置文件
[root@node-005 ~]# cd /application/svndata/sadoc/conf/ [root@node-005 conf]# /bin/cp svnserve.conf svnserve.conf.solin$(date +%F)②过滤要修改的配置
[root@node-005 conf]# egrep "\-access|\-db =" svnserve.conf # anon-access = read # auth-access = write # password-db = passwd # authz-db = authz③修改后的参数(可以用sed替换,也可用vi/vim直接修改)
[root@node-005 conf]# egrep "\-access|\-db =" svnserve.conf # anon-access = none #不允许匿名访问 # auth-access = write #允许可写 # password-db = /application/svnpasswd/passwd #密码数据库,存放SVN吗 # authz-db = /application/svnpasswd/authz #控制权限的数据库另:修改后对比
[root@node-005 conf]# egrep "\-access|\-db =" svnserve.conf # anon-access = read anon-access = none # auth-access = write auth-access = write # password-db = passwd password-db = /application/svnpasswd/passwd # authz-db = authz authz-db = /application/svnpasswd/authz [root@node-005 conf]# diff svnserve.conf.solin2017-04-20 svnserve.conf 12a13 > anon-access = none 13a15 > auth-access = write 20a23 > password-db = /application/svnpasswd/passwd 27a31 > authz-db = /application/svnpasswd/authz3、配置authz、passwd证书文件
(1)把密码证书文件模板复制到相关目录并修改文件权限
[root@node-005 conf]# cp authz passwd /application/svnpasswd/ [root@node-005 conf]# ll /application/svnpasswd/ 总用量 8 -rw-r--r-- 1 root root 1080 4月 20 17:22 authz -rw-r--r-- 1 root root 309 4月 20 17:22 passwd [root@node-005 conf]# chmod 700 /application/svnpasswd/* [root@node-005 conf]# ll /application/svnpasswd/ 总用量 8 -rwx------ 1 root root 1080 4月 20 17:22 authz -rwx------ 1 root root 309 4月 20 17:22 passwd(2)authz、passwd的配置
vi /application/svnpasswd/authz添加如下: [groups] bd_sa = solin,test # [/foo/bar] [sadoc:/] # [repository:/baz/fuz] @bd_sa = rw test1 = r
4、重启SVN
[root@node-005 conf]# pkill svnserve [root@node-005 conf]# ps -ef |grep svn root 68326658 0 17:52 pts/0 00:00:00 grep svn [root@node-005 conf]# svnserve -d -r /application/svndata/ [root@node-005 conf]# ps -ef |grep svn root 68341 0 17:52 ? 00:00:00 svnserve -d -r /application/svndata/ root 68366658 0 17:52 pts/0 00:00:00 grep svnWindows(客户端)安装TortoisSVN
1、官网下载TortoisSVN
https://tortoisesvn.net/downloads.html
2、安装
(1)下载软件后,双击程序进行安装,点击“Next”,我这里选择的试64位SVN;
(2)在许可证协议页面,选择“I Accept the terms in the License Agreement”,点击“Next”;
(3)在自定义选项页面,可以选择安装目录,也可以直接点击“Next”进行安装;
(4)点击“Install”开始安装;
(5)安装完成后,点击“Finsh”;
Windows使用SVN版本控制系统
连接的方式,账户及密码
svn;//192.168.119.91/sadoc #你自己的服务器IP
用户名:solin
密码:bdyun
1、选择本地目录或创建目录作为拉取(同步)SVN项目的库的目录,在目录中选择SVN Checkout
2、设置地址,分别输入SVN地址和本地地址,点击OK继续
3、输入用户名和密码,点击OK继续
4、成功连接(可以感觉个人喜好现在语言,官网下载语言包,下面图片是我汉化后的截图)
(1)汉化下载地址:https://tortoisesvn.net/downloads.html
(2)SVN checkout完成
5、在test_svn目录中创建文件test.txt,提交
6、填写提交信息
7、提交完成,版本变成1
到这里SVN服务搭建及客户端测试就完全结束了。