subversion(以下简称svn)是近年来崛起的版本管理工具,是cvs的接班人。
svn服务器有2种运行方式:
1. 独立服务器
2. 借助apache。
二种方式各有利弊,可以根据自己的需要进行配置,我不需要Http进行访问,只需要客户端可以Commit & update 就可以,所以我选择了第一种方式-独立的SVN服务器。
svn存储版本数据也有2种方式:
1. BDB
2. FSFS。
因为BDB方式在服务器中断时,有可能锁住数据(朋友在搞ldap时就深受其害,没法根治),所以还是FSFS方式更安全一点,我也选择这种方式。
我的环境:
1. svn服务器安装操作系统: Centos 5.3,安装步骤:
获取svn安装包:
# wget “http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz”
# wget “http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz”
编译svn以root用户登录:
# tar xfvz subversion-1.6.6.tar.gz
# tar xfvz subversion-deps-1.6.6.tar.gz
# cd subversion-1.6.6
# ./configure –prefix=/opt/svn –without-berkeley-db
(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db)
# make && make install
在/etc/profile最后加入 SVN Path 以方便操作:
# vi /etc/profile
PATH=$PATH:/opt/svn/bin
export PATH
测试是否安装成功:
# svnserve –-version
或
# /opt/svn/bin/svnserve –version
[root@hexu softs]# svnserve –version
如果显示如下,svn安装成功:
svnserve, version 1.6.6 (r40053)
compiled Dec 2 2009, 22:37:15
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
Cyrus SASL authentication is available.
2. svn配置建立svn版本库目录可建多个:
新建文件夹:
# mkdir -p /opt/svndata/repos
建立svn版本库:
# svnadmin create /opt/svndata/repos
修改svn版本库配置文件版本库:
# vi /opt/svndata/repos/conf/svnserve.conf
内容修改为:
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/conf/passwd.conf
authz-db = /opt/svn/conf/authz.conf
realm = repos
注意:对用户配置文件的修改立即生效,不必重启svn。
passwk.conf [users]是必须的,文件格式如下:
[users]
= = 下面列出要访问svn的用户,每个用户一行,示例:
[users]
username = password
配置svn用户访问权限:
# vi /opt/svn/conf/authz.conf
注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
[groups]
= ,
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svndata,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限
[repos2:/abc] 表示对版本库repos2中的abc项目设置权限
[repos2:/abc/aaa] 表示对版本库repos2中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups]
admin = alan
[/]
@admin = rw
[repos1:/abc/aaa]
king = rw
[repos2:/pass]
king =
svn配置完毕。
3. 启动svn建立启动svn的用户
# useradd svn
# passwd svn
根据提示为用户svn设置密码
允许用户svn访问版本库:
# chown -R svn:svn /opt/svndata
启动svn
# su - svn -c “svnserve -d –listen-port 9999 -r /opt/svndata”
其中:
su - svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台运行)运行
–listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
-r /opt/svndata指定根目录是/opt/svndata
检查:
ps -ef|grep svnserve
如果显示如下,即为启动成功:
svn 6941 1 0 15:07 ? 00:00:00 svnserve -d –listen-port 9999 -r /opt/svndata
通过web方式访问svn有很多方法,请参阅配置websvn或配置bsSvnBrowser的方法。
好了所有配置完成,可以使用客户端SVN进行操作了。
服务器测试:
# cd /tmp
# mkdir test
# touch test.txt
# svn import /tmp/test/ file:///opt/svndata/repos -m “this is thie first import”
# mkdir -p /tmp/test2
# cd /tmp/test2
# svn co file:///opt/svndata/repos /tmp/test2/
或者:
# svn co svn://{your-server-ip}:9999/repos/
这时应该可以看到文件test.txt.
另外的测试方法:
# telnet {your-server-ip} 9999 检查端口是不是通的
如果 上面检查不通,有可能是iptables中没有打开,设置iptables就可以:
# vi /etc/sysconfig/iptables
添加:
-A RH-Firewall-1-INPUT -p tcp –dport 9999 -j ACCEPT
相关推荐
### Linux Nginx环境下配置独立SVN服务器 #### 一、引言 在现代软件开发过程中,版本控制系统的使用越来越普遍。Subversion(SVN)作为一款广泛应用的集中式版本控制系统,对于团队协作开发有着不可替代的作用。...
在Linux下,使用Apache HTTPD或Nginx作为SVN前端,配置SSL模块。 **9. 备份和恢复** 定期备份SVN仓库是非常重要的。可以使用SVN的热备份功能,或者直接复制仓库文件。在恢复时,只需替换备份的仓库文件。 通过...
- 配置SVN服务器,包括创建仓库目录和设置权限 - 集成Apache或Nginx,以提供Web访问 - 设置SVN服务自动启动 3. **配置SVN仓库** SVN仓库是存储项目文件的地方。通常,你将在`/var/svn`或其他指定的目录下创建...
本文档总结了 CentOS7 下 Linux 环境下搭建多种资源的步骤,包括 JDK、Tomcat、SVN、Oracle、MySQL、Nginx 和 ZooKeeper 等。下面是每种资源的详细搭建过程。 JDK 搭建 JDK 是 Java Development Kit 的缩写,是 ...
2. **配置SVN**:安装完成后,可能需要设置SVN服务器的配置文件`/etc/subversion/svnserve.conf`,包括权限控制、日志记录等。 3. **启动服务**:使用`svnserve`命令启动SVN服务,或者将其设置为开机启动。 4. **...
4. **配置Apache服务器**:如果要通过Web访问SVN仓库,则需要配置Apache服务器。 ```bash sudo a2enmod dav sudo a2enmod dav_svn ``` 并编辑`/etc/apache2/mods-enabled/dav_svn.conf`文件,添加如下内容: `...
在Linux操作系统上运行,USVN结合了MySQL数据库来存储用户信息和权限设置,PHP作为服务器端脚本语言处理HTTP请求,以及Subversion作为核心的版本控制系统。这样的架构使得USVN能够实现远程访问,便于团队协作,尤其...
在Linux系统中,将Redmine和SVN整合到Nginx服务器是一项常见的任务,特别是对于那些需要高效项目管理和版本控制的团队。Redmine是一个强大的Web应用程序,用于项目管理,包括任务跟踪、问题追踪、时间跟踪等功能,而...
3. **启动服务**:根据操作系统,可能需要配置DAV(WebDAV)或者通过Apache、Nginx等HTTP服务器来托管SVN仓库。 **三、SVN客户端使用** 1. **检出(Checkout)**:使用`svn checkout url`命令获取仓库中的项目到...
SVN-Subversion 是一个版本控制软件,帮助开发者管理源代码。本文将教大家如何在Linux环境安装一个SVN服务器,并且配置成http可以访问的模式,也是浏览器可以直接访问。 背景 我的Linux机器环境是CentOS ...
文件“remove-svn.sh”可能是一个清理脚本,用于从源代码中移除Subversion(SVN)的相关信息,因为在部署时通常不需要这些版本控制的元数据。 部署步骤通常包括以下几个环节: 1. 准备服务器:设置好操作系统,...
在CentOS 7上,可以使用YUM安装,配置仓库,创建用户和权限,然后客户端可以通过svn命令行工具进行操作。 Jenkins是一个开源的持续集成工具,它能够自动化构建、测试和部署软件。与Git和GitLab结合,可以实现在代码...