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:43Copyright (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 = usernamegroups1 = username1 #将用户1添加到开发组groups2 = username2 #将用户2添加到设计组
[bokeyuan-xsj:/] @username1 = rw @username2 = r
4.3修改svnserver.conf
vim svnserver.confanon-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.txtecho 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 co2、往版本库中添加新的文件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 ci4、更新到某个版本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.php7、比较差异svn diff path(将修改的文件与基础版本比较)例如:svn diff test.phpsvn 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之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)