作为码农,我们在团队合作的工作中比较重要的一个技能就是版本控制器的使用,在面试过程中面试官也会问你有没使用过版本控制器。版本控制器中使用率比较大的就是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/test
即 svn://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 help
n help`