作为码农,我们在团队合作的工作中比较重要的一个技能就是版本控制器的使用,在面试过程中面试官也会问你有没使用过版本控制器。版本控制器中使用率比较大的就是SVN跟git了。我介绍下在centos下svn服务器的搭建与使用。

首先安装svn服务器

yum install subversion

创建svn目录

mkdir -p /home/svn

修改svn目录权限

cd /home/

chmod 777 -R svn

创建版本仓库

svnadmin create /home/svn/test

修改svn配置

cd /home/svn/test/conf

vi svnserve.conf

修改

//未授权用户可选选项none,read,write

#anon-access = read

//授权用户权限

#auth-access = write

//账号密码位置

#password-db = passwd

//授权文件位置

#authz-db = authz

//仓库(名字任意)

#realm = repos 

去掉注释(切记去掉#号的时候把配置代码前面的空格删掉,否则检出代码的时候有可能报错:svnserve.conf:12: Option expected)

anon-access=none
auth-access = write
password-db = passwd
authz-db = authz
realm = /home/svn/test

保存退出

vi passwd

[users]

test = test123

保存退出

vi authz

[groups]

[/]

test = rw

* = r

保存退出

修改防火墙

vi /etc/sysconfig/iptables

在最后添加:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

保存退出,重启防护墙:

service iptables restart

查看svn状态

ps -ef|grep svn|grep -v grep

结果:

root 14866 1 0 21:24 ? 00:00:00 svnserve -d -r /home/svn/test

重启svn:

killall svnserve

svnserve -d -r /home/svn/test

导入代码

svn import /var/www/test file:///home/svn/test/test -m 'first repos

客户端检出地址:

svn://11.22.22.22/testsvn://ip地址/库名

username:test

password:test123

checkout/co
svn co svn地址 #全部检出
svn co svn地址 -r 版本号  #检出指定版本的内容
commit/ci
svn ci 文件名 -m '日志记录'
update
svn up #更新当前目录
svn up -r 1234 #更新内容到1234版本
svn up test.php #更新指定的文件
svn up -r 1234 test.php #更新1234版本点test.php
resolved
版本冲突以后文件修改完成解决冲突
svn resolved test.php #解决test.php文件的冲突
log
svn log #显示所有的信息
svn log test.php #查看test.phpx文件的所有信息
svn log --limit X -v #显示X条的信息
export
svn export svnurl  #导出版本
svn export -r 114 svnurl #导出版本114的代码
info
svn info  #进入项目目录,可以通过该命令的svn地址等等信息
switch
svn switch --relocate (old svnurl) (new svn url)  #svn地址更换之后,进行重定向
locek
svn lock -m "LockMessage" [--force] PATH
svn lock -m "lock test file" test.php
svn unlock PATH
diff
svn diff path(将修改的文件与基础版本比较)
svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
svn diff -r 200:201 test.php
svn di
delete
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)

其它命令可参考:

svn helpn help`