您的位置:首页 > 运维架构 > Linux

linux下的subversion 配置

2009-09-04 19:54 375 查看
背景:刚刚新装的centos5 发布版,
敲上命令: svnserve --version
得出:svnserve,版本 1.4.2 (r22196)
看来系统已为我预装了subversion,我无需安装了

下面开始配置

Step1) 建立存储库



svnadmin create
/
home
/
svn

-
repos

Step2)开始配置

vi /home/svn
-repos/conf/svnserve.conf
修改svnserve.conf
最终该文件如下:



[general]



anon
-
access
=
read



auth
-
access
=
write



password
-
db
=
passwd



上面的意思是可以匿名读,但写入必须要有权限,权限配置
在passwd文件中

vi /home/svn
-repos/conf/passwd
修改passwd文件
最终该文件如下:

[users]



weip
=
123

Step3) 启动服务
经过step1),step2),服务已配置
好,可以启动了



svnserve
--
daemon
--
root
/
home
/
svn

-
repos

关于--root的使用请参看:http://svnbook.subversion.org.cn/1.2/svn
.serverconfig.svnserve.html

文档中说 :



如果一个版本库是位于/usr/local/repositories/project1,则一个客户端可以使用 svn
://host.example.com/usr/local/repositories/project1 来进行访问





你可以使用svnserve的-r选项,这样会限制只输出指定路径下的版本库:





$ svnserve -d -r /usr/local/repositories









使用-r可以有效地改变文件系统的根位置,客户端可以使用去掉前半部分的路径,留下的要短一些的(更加有提示性)URL:





$ svn
checkout svn
://host.example.com/project1



所以通常情况下,如果你应该将产生的库根目录放在启动脚本的-r 或者--root后面
正如我们上面的两句:



svnadmin create
/
home
/
svn

-
repos

svnserve --daemon --root /home/svn
-repos

Step4)客户端访问
刚开始访问不了
于是检查iptables
简单的配置
方法是vi /etc/sysconfig/iptables文件,在里面找到这样的一行:



-
A RH
-
Firewall
-
1
-
INPUT
-
j REJECT
--
reject
-
with icmp
-
host
-
prohibited

在这行上面加上:



-
A RH
-
Firewall
-
1
-
INPUT
-
m state
--
state NEW
-
m tcp
-
p tcp
--
dport
3690

-
j ACCEPT

然后



.
/
iptables restart

这样客户端就可以访问svn
服务了,别的linxu可能没有这个问题

服务端启动了,但储存库还没有储存任何项目,此时你除了check out root之外(这个没什么意义),你不能check out其他任何东西,所以你必须要往储存库添点东西
比如我刚做了个项目visdot,但还未入库,怎么办
首先建立trunk



svn
mkdir
-
m
"
creating a project
"
svn
:
//
192.168.1.100/visdot



svn
mkdir
-
m
"
creating a trunk
"
svn
:
//
192.168.1.100/visdot/trunk

然后你就可以将这个trunk checkout到本地目录比如d:/projects/visdot,此时checkout下来是空目录
这时你就可以将你的项目内容拷贝到d:/projects/visdot,接着可以check in了

上面的192.168.1.100就是你启动了svn
服务的Linux
机器地址,到此你的项目完全入库
接下来你就可以check in, check out 你的项目了

上面的几部操作你可以使用命令行来完成,也可以使用gui 客户端,比如eclipse的subversion 插件

后记:
假设你的trunk已经上线,那么接下来要不断升级的话,你应该创建分支来根踪项目
比如:



svn
mkdir
-
m
"
creating a new branch
"
svn
:
//
192.168.1.100/visdot/branches



svn
copy
-
m
"
create release branch for 1.0
"
svn
:
//
192.168.1.100/visdot/trunk /



svn
:
//
192.168.1.100/visdot/branches/rb-1.0

当然还有merge,
这已超过了本文讨论的范围,不再赘述
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: