系统环境:
uname -a
cat /proc/version
lsb_release -a
CentOS release 6.4
检查已安装版本
# rpm -qa subversion
卸载旧版本SVN
# yum remove subversion
安装svn
# yum install subversion
# mkdir -p /opt/svn/repos
# svnadmin create /opt/svn/repos
# 杀死svn进程
pkill -9 svn
# 用3690端口启动svn
/usr/bin/svnserve -d --listen-port 3690 -r /opt/svn --log-file=/opt/svn/svn.log --pid-file=/opt/svn/svn.pid
配置:
上面的操作很简单,几个命令就搞定, 下面的操作也不难。
进入上面生成的文件夹conf下,进行配置, 有以下几个文件authz, passwd, svnserve.conf
其中authz 是权限控制,可以设置哪些用户可以访问哪些目录, passwd是设置用户和密码的, > svnserve是设置svn相关的操作。
[users]
xzdesk = woshishui
[/]
xzdesk = rw
#这一步操作的时候忘了
[general]
anon-access = none
auth-access = write
password-db = password
authz-db = authz
realm = /opt/svn/repos
采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
添加以下内容:
#这个位置如果用 -A 的话必须放在iptables规则链第一条才行,
#或者直接用-I INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙[测试时可以先关闭防火墙]
systemctl restart iptables.service
查看SVN进程和端口
# ps -ef|grep svnserve
# netstat -ln |grep 3690
常用命令
# 导入版本库
svn import /myobj svn://127.0.0.1/myobj -m "说明信息"
# 显示项目列表
svn list svn://127.0.0.1/myobj
# 常用SVN命令
剪出版本库中的可用的工作目录
svn co svn://127.0.0.1/myobj
添加文件到版本库
svn add *.php
删除文件( delete rm remove)
svn del Test.java
更新SVN版本库
svn up *.php
提交到版本库
svn ci -m “commit dir and file” test
移动或者重命名SVN工作目录
svn move Test.java Test2.java
打印SVN工作目录和文件状态
svn status -v *(可以使用通配符)
连接测试
启动svn:
# svnserve -d -r /opt/svn/repos
如果已经有svn在运行,可以换一个端口运行
# svnserve -d -r /opt/svn/repos --listen-port 3391
这样同一台服务器可以运行多个svnserver
好了,启动成功后,就可以使用了。
建议采用TortoiseSVN, 连接地址为: svn:
连接后可以上传本地的文件,有效的管理你的代码。