一、SVN架构图
二、SVN服务器部署(三种方案)
配置第一种服务:Apache + mod_dav_svn
第一步: 准备工作:
CentOS 6.8 Server Linux 系统基础配置工作
第二步:安装httpd 与 svn
yum install -y httpd
yum install -y subversion mod_dav_svn
确认Apache已经安装mod_dav_svn, 与 authz_svn 模块
# ls /etc/httpd/modules/ | grep svn mod_authz_svn.so mod_dav_svn.so
第三步:建立SVN根目录
mkdir -p /var/www/svn svnadmin create /var/www/svn/project vim /var/www/svn/project/conf/svnserve.conf anon-access = none auth-access = write
chown apache:apache -R /var/www/svn/
第四步:SVN 整合apache,配置/etc/httpd/conf.d/subversion.conf文件
<Location /project> DAV svn SVNPath /var/www/svn/project SVNAutoversioning on AuthType Basic AuthName "SVN Authorization Realm" AuthUserFile /var/www/svn/project/conf/passwd Require valid-user </Location>
第五步:创建SVN用户
cd /var/www/svn/project/conf #使用htpasswd创建用户,首次创建用户 htpasswd -cb passwd user password #添加用户 htpasswd -b passwd new-user new-password #删除用户 htpasswd -D passwd user #修改用户密码 htpasswd passwd user
第六步:配置SVN权限,编辑authz文件
vi /var/www/svn/project/conf/authz
[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
guest = test,abc,user
[/]
guest = rw
* = r
#设置根目录下guest组为可读写,其他用户可读
# [/foo/bar]
# harry = rw
第七步:启动SVN服务
svnserve -d -r /var/www/svn/project
查看服务
[root@localhost conf]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1020/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1100/master tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 1396/svnserve tcp 0 0 :::22 :::* LISTEN 1020/sshd tcp 0 0 ::1:25 :::* LISTEN 1100/master
SVN端口号为3690
第八步:使用浏览器确认
使用客户端确认
三、SVN使用
# svn help usage: svn <subcommand> [options] [args] Subversion command-line client, version 1.6.11. Type 'svn help <subcommand>' for help on a specific subcommand. Type 'svn --version' to see the program version and RA modules or 'svn --version --quiet' to see just the version number. Most subcommands take file and/or directory arguments, recursing on the directories. If no arguments are supplied to such a command, it recurses on the current directory (inclusive) by default. Available subcommands: add blame (praise, annotate, ann) cat changelist (cl) checkout (co) cleanup commit (ci) copy (cp) delete (del, remove, rm) diff (di) export help (?, h) import info list (ls) lock log merge mergeinfo mkdir move (mv, rename, ren) propdel (pdel, pd) propedit (pedit, pe) propget (pget, pg) proplist (plist, pl) propset (pset, ps) resolve resolved revert status (stat, st) switch (sw) unlock update (up) Subversion is a tool for version control. For additional information, see http://subversion.tigris.org/
使用功能 1. 导入数据到你的版本库 (svn import && svn add)
SVN 推荐版本布局
$ svn list file:///var/svn/single-project-repo trunk/ branches/ tags/
$ svn list file:///var/svn/multi-project-repo project-A/ project-B/
$ svn list file:///var/svn/multi-project-repo/project-A trunk/ branches/ tags/ $
svn import /path/to/you/want/to/upload \ http://192.168.112.193/project \ -m "Initial Import"
svn list http://192.168.112.193/project
使用功能2. 创建工作副本 (svn checkout http://192.168.112.193/project)