centos6.5部署subversion(svn)

SVN默认端口:3690

svnserve -d -r/home/declan/svnproject--listen-port 21  #修改svn监听端口

一、安装svn

yum install subversion -y

二、检查是否安装成功

svnserver --version

svnserve, version 1.6.11 (r934486)
compiled Aug 17 2015, 08:37:43

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

#ok,安装成功,svn版本为1.6.11

三、创建代码仓库

mkdir -p /opt/svn/bokeyuan-xsj    #新建一个目录作为仓库
svnadmin create /opt/svn/bokeyuan-xsj/    #创建svn仓库

进入仓库查看如出现下面的图片所示的目录和文件,则创建成功

四、配置svn服务器

仓库conf目录下有三个文件,passwd、authz、svnserver.conf

#passwd     :存放用户和密码文件
#authz      :存放用户权限文件
#svnserver.conf:svn主配置文件

4.1修改passwd,添加用户密码

vim passwd
[users]
xushijie = bokeyuan.xsj  #格式:用户名 = 密码

4.2修改authz,添加用户权限

[bokeyuan-xsj:/]  #为一个项目配置用户权限
xushijie = rw    #设置开发者为读写权限

#这里也可以定义用户组
[groups]
#格式:user-group = username
groups1 = username1 #将用户1添加到开发组
groups2 = username2 #将用户2添加到设计组
[bokeyuan-xsj:/]
@username1 = rw
@username2 = r

4.3修改svnserver.conf

vim svnserver.conf
anon-access = none   #去掉注释,修改匿名用户访问权限
auth-access = write  #去掉注释,验证用户权限
password-db = /var/svn/projectname/passwd #去掉注释,指定密码文件路径
authz-db = /var/svn/project/authz #去掉注释,指定权限文件的路径

五、启动svn服务

svnserver -d -r /opt/svn/    # -r:svn仓库目录,-d:使用守护进程

还有一种方法启动,编辑启动脚本

vim /etc/init.d/svnserve
args="--daemon --pid-file=${pidfile} -r /opt/svn $OPTIONS"  #编辑svn启动目录 -r /opt/svn

六、测试

使用三台机器

svn :192.168.1.198

开发:192.168.1.199

运维:192.168.1.200

6.1在192.168.1.199上创建三个目录

mkdir trunk branches tags  #创建主干目录和分支目录

6.2创建三个文件导入到trunk上,提交到版本库中

echo a > trunk/a.txt
echo b > trunk/b.txt
svn import ./ svn://192.168.1.198/bokeyuan-xsj -m "n1"  #将创建的目录添加到版本库中
Password for 'xushijie':  #输入你在passwd中创建的密码

6.3在192.168.1.200上把trunk目录下载下来

svn checkout svn://192.168.1.198/bokeyuan-xsj

七、svn版本库常用命令:

1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)

例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.php(添加当前目录下所有的php文件) 
3、将改动的文件提交到版本库
svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)

例如:svn commit -m “add test file for my test“ test.php
简写:svn ci
4、更新到某个版本
svn update -r m path

例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up 
5、删除文件
svn delete path -m “delete test fle“
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
6、查看文件详细信息
svn info path

例如:svn info test.php
7、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di 
8、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 1:2 test.php(将版本1与2之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

原文地址:https://www.cnblogs.com/linux-xsj/p/6693525.html