共计 14656 个字符,预计需要花费 37 分钟才能阅读完成。
CentOS 6.8 搭建 SVN(版本控制系统)及 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
安装 SVN
1、修改 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 subversion
2、查找查找 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
配置并启动 SVN
1、创建 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 files
2、启动 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/authz
3、配置 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
vi
/application/svnpasswd/passwd
添加如下:
[
users
]
solin = bdyun
test
= bdyun
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
svn
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/143093p2.htm
Windows(客户端)安装 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 服务搭建及客户端测试就完全结束了。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-04/143093.htm
CentOS 6.8 搭建 SVN(版本控制系统)及 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
安装 SVN
1、修改 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 subversion
2、查找查找 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
配置并启动 SVN
1、创建 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 files
2、启动 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/authz
3、配置 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
vi
/application/svnpasswd/passwd
添加如下:
[
users
]
solin = bdyun
test
= bdyun
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
svn
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2017-04/143093p2.htm