linux下的subversion 配置

本文详细介绍在CentOS系统中安装、配置Subversion (SVN) 的过程,包括存储库的建立、权限设置、服务启动及客户端访问等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:刚刚新装的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,
这已超过了本文讨论的范围,不再赘述

本文来自优快云博客,转载请标明出处: http://blog.youkuaiyun.com/pwlazy/archive/2007/07/28/1713613.aspx
 
 
linux下 subversion 的单独安装和配置
@for&ever 2009-9-3
一、安装
首先,命令行:
#svnserve --version
如果显示:
svnserve,版本 1.4.2 (r22196)
 
则恭喜,系统已预装subversion,无需再安装。
 
否则,执行以下的操作步骤安装 svn.
 
解压缩
#tar zxvf subversion-1.4.2.tar.gz
 
校验configure
#./configure
 
编译
#make
 
安装
#make install
 
二、配置
2.1> 建存储库
# svnadmin create /home/svn-repos
 
2.2> 配置权限
# vi /home/svn-repos/conf/svnserve.conf
 
svnserve.conf 文件中,修改之后,内容如下:
 
[general]
anon-access = read  #允许匿名用户读。如果不允许匿名用户访问,这里的 read 修改为  none
auth-access = write #写入必须要通过认证
password-db = passwd #权限配置放在passwd文件
 
2.3> 配置用户
# vi /home/svn-repos/conf/passwd
 passwd 文件中,添加SVN的用户和密码,例如
 
[users]
forandever=abc123
 
三、启动服务
# svnserve --daemon --root /home/svn-repos
 
四、创建项目目录和客户端访问
例如,目前有项目 forandever_Project1,则执行下面的命令即可:
# svn mkdir -m "creating a project" svn://111.111.111.12/forandever_Project1
 
之后,通过svn客户端工具,例如TortoiseSVN或者eclipse的subversion插件,输入URL, svn://IP ,即可访问。
例如,我的IP是  111.111.111.12,那么对应的访问根目录的地址就是 :
svn://111.111.111.12
访问forandever_Project1的地址就是:
svn://111.111.111.12/forandever_Project1
 
五、可能的问题
5.1> 客户端不能访问
出现这个问题,首先通过 ps -ax  查看系统进程,确认是否已经有
svnserve --daemon --root /home/svn-repos
 
然后,检查防火墙 iptables
 
# iptables -L
查看是否已经添加端口 3690 的出口,如果未添加,
则执行命令
# vi /etc/sysconfig/iptables
修改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:
# service iptables restart
 
5.2> 客户端能访问,报错svn: /home/svn-repos/conf/svnserve.conf:13: Option expected
出现类似这样的错误,说明在修改svnserve.conf这个文件的时候,在行的开头有空格,
例如:
anon-access = read  #允许匿名用户读。如果不允许匿名用户访问,这里的 read 修改为  none
  auth-access = write #写入必须要通过认证
password-db = passwd #权限配置放在passwd文件
 
这里的“   auth-access = write #写入必须要通过认证 ” 这一行的开头就有空格,去掉空格即可解决。

本文来自优快云博客,转载请标明出处: http://blog.youkuaiyun.com/forandever/archive/2009/09/04/4515357.aspx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值