1. 安装apache
# tar -xvf httpd-2.2.13.tar.gz –C /opt/apache2/
# cd /opt/apache2/httpd-2.2.13
# ./configure --enable-dav --enable-so --enable-nonportable-atomics --prefix=/usr/local/apache2/
# make
# make install
2. 安装subversion
# tar -xvf subversion-1.6.5.tar.bz2 -C /opt/subversion/
# tar -xvf subversion-deps-1.6.5.tar.bz2 -C /opt/subversion/
# cd /opt/subversion/subversion-1.6.5/
# ./configure
--with-apxs=/usr/local/apache2/bin/apxs
--with-apr=/usr/local/apache2
--with-apr-util=/usr/local/apache2/
--prefix=/usr/local/subversion
# make
# make install
将bin目录添加到PATH
# vi /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/subversion/bin
# source /etc/profile
3. 创建repository
创建用户组和用户
# groupadd svn
# useradd –g svn –p svnroot svnroot
# cd /home/svnroot/
# mkdir repository
# svnadmin create repository/test
创建了名为test的版本库
4. 权限设置
(1) 创建用户,生成身份认证文件
# htpasswd –mc /home/svnroot/repository/pwdfile svnroot
New password: *******
Re-type new password: *******
# htpasswd –mc /home/svnroot/repository/pwdfile svntest
New password: *******
Re-type new password: *******
(2) 创建授权文件
将test版本库中的授权文件拷贝至repostitory目录下
# cp /home/svnroot/repostitory/test/conf/authz /home/svnroot/repostitory/authz.conf
修改此文件,为test下各目录设置权限
[groups] //群组设置
g_pm = svnroot //某群组里的成员
g_dev = svntest
[test:/] //仓库test的根目录的访问权限
@g_pm = r //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = r //g_dev用户具有读写权限
[test:/trunk] //仓库test的trunk目录的访问权限
@g_pm = rw //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = rw //g_dev用户具有读写权限
[test:/branches] //仓库test的branches目录下的访问权限
@g_pm = rw //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = rw //g_dev用户具有读写权限
[test:/tags] //仓库test的tags目录下的访问权限
@g_pm = rw //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = rw //g_dev用户具有读写权限
(3) 设置版本库所有者
# chown -R svnroot:svn /home/svnroot/
# chmod 700 /home/svnroot/repostitory/
5. 配置apache
配置以svnroot用户运行apache
首先,打开apache配置文件/usr/local/apache2/conf/httpd.conf,确保将User和Group 设置为
User svnroot
Group svnroot
接着,在httpd.conf的最后添加以下内容(不包括后面的注释)
<Location /svn>
DAV svn
SVNParentPath /home/svnroot/repository/ //svn父目录
AuthType Basic //客户端认证机制
AuthName "Subversion Repository" //认证域名称
AuthUserFile /home/svnroot/repository/pwdfile //身份认证文件
AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
Satisfy Any //先尝试匿名访问
Require valid-user //仅通过验证的用户可访问版本库
</Location>
6. 导入源代码
创建目录
# cd /home/svnroot
# mkdir –p import/{trunk,branches,tags}
将源代码拷贝到truck目录下,比如我将本地的eclipse项目jco_sap上传到该目录,
导入到版本库
# svn import /home/svnroot/import file:///home/svnroot/repository/test –m "Init repository"
7. 启动服务
按照以上的配置,启动apache后可以通过http访问到版本库,如果不想这样做,也可以启动svnserver来提供服务
8. eclipse导入项目
安装subclipse(subversion的eclipse插件)后导入项目时多出了一项
如果是apache提供的服务,在创建资源库位置时为http://ip/svn/test,如果是svnserver提供的服务:svn://ip/svn/test
# tar -xvf httpd-2.2.13.tar.gz –C /opt/apache2/
# cd /opt/apache2/httpd-2.2.13
# ./configure --enable-dav --enable-so --enable-nonportable-atomics --prefix=/usr/local/apache2/
# make
# make install
2. 安装subversion
# tar -xvf subversion-1.6.5.tar.bz2 -C /opt/subversion/
# tar -xvf subversion-deps-1.6.5.tar.bz2 -C /opt/subversion/
# cd /opt/subversion/subversion-1.6.5/
# ./configure
--with-apxs=/usr/local/apache2/bin/apxs
--with-apr=/usr/local/apache2
--with-apr-util=/usr/local/apache2/
--prefix=/usr/local/subversion
# make
# make install
将bin目录添加到PATH
# vi /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:/usr/local/subversion/bin
# source /etc/profile
3. 创建repository
创建用户组和用户
# groupadd svn
# useradd –g svn –p svnroot svnroot
# cd /home/svnroot/
# mkdir repository
# svnadmin create repository/test
创建了名为test的版本库
4. 权限设置
(1) 创建用户,生成身份认证文件
# htpasswd –mc /home/svnroot/repository/pwdfile svnroot
New password: *******
Re-type new password: *******
# htpasswd –mc /home/svnroot/repository/pwdfile svntest
New password: *******
Re-type new password: *******
(2) 创建授权文件
将test版本库中的授权文件拷贝至repostitory目录下
# cp /home/svnroot/repostitory/test/conf/authz /home/svnroot/repostitory/authz.conf
修改此文件,为test下各目录设置权限
[groups] //群组设置
g_pm = svnroot //某群组里的成员
g_dev = svntest
[test:/] //仓库test的根目录的访问权限
@g_pm = r //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = r //g_dev用户具有读写权限
[test:/trunk] //仓库test的trunk目录的访问权限
@g_pm = rw //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = rw //g_dev用户具有读写权限
[test:/branches] //仓库test的branches目录下的访问权限
@g_pm = rw //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = rw //g_dev用户具有读写权限
[test:/tags] //仓库test的tags目录下的访问权限
@g_pm = rw //g_pm组用户具有读和写权限,’@’开头的表示群组设置
@g_dev = rw //g_dev用户具有读写权限
(3) 设置版本库所有者
# chown -R svnroot:svn /home/svnroot/
# chmod 700 /home/svnroot/repostitory/
5. 配置apache
配置以svnroot用户运行apache
首先,打开apache配置文件/usr/local/apache2/conf/httpd.conf,确保将User和Group 设置为
User svnroot
Group svnroot
接着,在httpd.conf的最后添加以下内容(不包括后面的注释)
<Location /svn>
DAV svn
SVNParentPath /home/svnroot/repository/ //svn父目录
AuthType Basic //客户端认证机制
AuthName "Subversion Repository" //认证域名称
AuthUserFile /home/svnroot/repository/pwdfile //身份认证文件
AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
Satisfy Any //先尝试匿名访问
Require valid-user //仅通过验证的用户可访问版本库
</Location>
6. 导入源代码
创建目录
# cd /home/svnroot
# mkdir –p import/{trunk,branches,tags}
将源代码拷贝到truck目录下,比如我将本地的eclipse项目jco_sap上传到该目录,
导入到版本库
# svn import /home/svnroot/import file:///home/svnroot/repository/test –m "Init repository"
7. 启动服务
按照以上的配置,启动apache后可以通过http访问到版本库,如果不想这样做,也可以启动svnserver来提供服务
8. eclipse导入项目
安装subclipse(subversion的eclipse插件)后导入项目时多出了一项
如果是apache提供的服务,在创建资源库位置时为http://ip/svn/test,如果是svnserver提供的服务:svn://ip/svn/test