Linux SVN的安装使用
The goal of the Subversion project is to build a version control system that is a compelling replacement for CVS in the open source community. The software is released under an Apache/BSD-style open source license.
SVN是一个版本控制软件,类似CVS,但是SVN的的有点是开源的,而且SVN的版本控制能力给CVS还要强多。
SVN可以用于项目管理,还可以用于版本同步,功能可是十分强呢:)
下载:http://subversion.tigris.org
当前日期稳定版SVN1.32
http://subversion.tigris.org/downloads/subversion-1.3.2.tar.gz
安装:
解压:#: tar zxvf subversion-1.3.2.tar.gz
依次输入./configure , make , make install 进行编译安装完成。
开启SVN服务:svnserve -d
检测服务是否开启:netstat -ntlp如果看到3690的端口正常开放了,证明SVN启动了。
正式使用:
首先我们得建立一个SVN的项目,一般人都认为建立项目就只需要一个文件,在我第一次使用SVN之前都有这样的看法,SVN建立项目需要建立文件夹
建立项目命令:svnadmin create project_name project_name 为你的project名字,可以任意取。
建立完毕后,project_name是一个文件夹,进入文件夹,可以看到一个conf的文件夹。进入文件夹可以看到2个文件(如果没有passwd文件,可以用vi创建),编辑 svnserve.conf 把anon-access = read ,auth_access = write
还有password-db = passwd 的注释去掉,还有[general]的注释也要去掉。
vi passwd文件,如果是新文件,则输入:
[user]
your_name = your_password
这里设置的your_name是你的用户名,your_password是你的密码,这个是访问SVN必要的通行证。
好了,现在终于把准备功夫做完了,下面可以正是使用了。
首先找到你的项目源代码文件夹,使用下面命令:
cd your project
in your project dircetory
use:svn co /home/project_name --username = your_name --password=your_password
好了,现在你可以在客户机上使用以下命令获得你想要的项目源代码文件
svn co svn://home/project_name --username=your_name --password = your_password
把增加的svn文件添加入svn库:
svn add /home/your_project/*.* --username=your_name --password = your_password
提交文件:
svn commit /home/your_project/*.* --username=your_name --password=your_password
更新文件:svn update /home/your_project/*.* --username=your_name --password=your_password
当然你可以编辑一个脚本文件来一次完成所有的操作:
vi svnupdate.sh
#!/bin/sh
svn add /home/your_project/*.* --username=your_name --password = your_password
svn commit /home/your_project/*.* --username=your_name --password=your_password
svn update /home/your_project/*.* --username=your_name --password=your_password
chmod +x svnupdate.sh
Finish
关键词: SVN apache linux subversion
1、安装APR-1.2.7和APR-util-1.2.7
下载地址:
http://apr.apache.org/
tar zxvf apr-1.2.7.tar.gz
./configure
make
make install
tar zxvf apr-util-1.2.7.tar.gz
./configure --with-apr=/usr/local/apr/
make
make install
2、编译安装APACHE。
tar zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
./configure --prefix=/opt/apache --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config
make
make install
3、安装subversion-1.4.0
tar zxvf subversion-1.4.0.tar.gz
./configure --with-apxs=/opt/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
make
make install
4、查看subversion两个动态库有没有安装成功
vi /opt/apache/conf/httpd.conf
看到下面两个模块说明安装成功
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
5、配置SVN
vi /opt/apache/conf/httpd.conf
以下大概是我的配置:
<Location /svn>
DAV svn
SVNParentPath /data/svn/repos
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /data/svn/passwd
AuthzSVNAccessFile /data/svn/auth
Require valid-user
</Location>
6、建立SVN存储仓库
#mkdir -p /data/svn/repos
#svnadmin create /data/svn/repos/tony.tang
备份以前的SVN库
#svnadmin dump /data/svn/repos/tony.tang/ > /root/tony.tang
把备份出来的数据恢复到本地
#svnadmin load /data/svn/repos/tony.tang/ < /home/tony.tang
7、建立本地访问控制文件
/opt/apache/bin/htpasswd -c /data/svn/passwd clay.li
会提示你输入密码,默认是MD5加密
8、建立本地项目控制文件
touch /data/svn/auth
我的文件内容为:
[groups]
[hms.rd.ikang.com:/]
#wxy = rw
chen.shanshan = rw
nuo = rw
jonathan.sun = rw
[php.ikang.com:/]
#wxy = rw
peter = rw
[tony.tang:/]
tony.tang = rw
jonathan.sun = rw
clay.li =rw
9、安装客户端,访问服务器
因为我的apache配置端口为88所以访问服务器的时候必须加上端口号。
http://192.168.7.10:88/svn/tony.tang
注意:SVN是APACHE配置的时候加上去的。
10、到此安装基本结束
修改一下/data/svn/repos属性,否则会导致文件上传失败。
cd /data/svn/
chmod -R apache.apache repos
主要参考文章:
http://www.01cn.net/cgi-bin/topic_show.cgi?id=3073&bpg=1&age=0
要在新服务器上装版本控制系统了。本来打算和以前一样用 CVS 来进行源代码管理,碰巧看到 duduwolf 对 SVN 大力推荐,加上这篇文章对于各种版本控制系统功能的完整比较,一直为 CVS 的各种缺陷感到郁闷的我自然毫不犹豫投奔了 SVN 的怀抱。
安装过程算不上一帆风顺,但我不打算在这里写出一篇完整的安装手册来,只简单记录几点体会。
服务模式
SVN 可以通过内置的 svnserve 提供服务,也可以和 Apache 配合通过标准的 http/https 来提供服务。用 svnserve 的好处是配置相对简单,但不足是 svnserve 所能提供的权限管理最小粒度只能到版本库(和 CVS 一样)。这对于开源软件的开发使用可能问题不大,但对于用作公司内部源代码控制来说就太简单了。所以我选择用 Apache + SSL + SVN 。
当 初使用 CVS 最让我觉得美中不足的就是它的目录权限控制。因为针对每个用户只能控制其访问整个版本库的读写权限,以至于我不得不创建了N个独立的版本库。即便这样,每 个版本库下面还是有许多项目是希望能分别控制权限的。当时采用的方法是禁用了CVS的目录浏览功能,并对每个项目目录名增加随机编号。只有知道确切的目录 名称才可以访问到该项目。现在既然改用 SVN ,如果还是无法对版本库里面的每一个子目录进行精确的权限控制的话,还不如用 CVS 。通过配置AuthzSVNAccessFile文件来控制每一个项目目录的访问权限虽然算不上特别方便,但总比 CVS 那样完全没办法好。
数据存储
SVN 同样可以使用两种数据存储方式: Berkeley DB 和 FSFS 。在我看来, Berkeley DB 的优势在于其成熟性,但需要更多的日常管理和维护,并且是平台依赖的。所以我选择更简便的 FSFS 。
APR libraries
安 装 SVN 的时候最好指定 --with-apr= 和 --with-apr-util= 参数到 Apache 安装的根目录(ServerRoot)下,而不是使用缺省的 SVN 安装包中自带的 apr 。否则如果你安装的 Apache 版本不同有可能导致 APR 库不匹配,出现类似 Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的错误。Updated 2006-04-20 16:30 -- 比如说如果你安装的是apache 2.2.0版本,就需要在编译安装svn的时候指定--with-apxs和--with-apr参数到你的apache2.2.0安装目录下:
./configure --prefix=${subversionInstallFolder} /
--with-apxs=${apacheInstallFolder}/bin/apxs /
--with-apr=${apacheInstallFolder} /
--with-apr-util=${apacheInstallFolder} /
--with-ssl /
--with-zlib /
--enable-maintainer-mode
make clean && make && make install
签署证书
既然是公司内部的源码控制系统,通过 SSL 来加密保护登录信息还是很有必要的。证书的制作所 填写的信息其他都关系不大,只要注意生成根证书和服务器请求签证文件时的两次 Common Name 不能一样(理论上Common Name 应该是用户将会用来访问的完整域名字符串),否则会导致证书生成的时候出现 error 18 at 0 depth lookup:self signed certificate 错误。
Updated 2006-06-29 12:52 -- 似乎还是有不少朋友在安装svn的时候碰到各种各样的问题,所以我把自己用来进行 svn server 恢复的完整脚本提供给大家下载( 点击下载 svn_recover.rar 13,473 字节),仅供大家参考。需要说明的几点:
请不要直接运行 reinstall.sh 脚本。因为这个脚本是针对我自己的 svn 服务器的情况来写的,目的是在重装服务器的时候可以完全实现自动化。所以如果你不去了解脚本的实际工作就放服务器上执行,由此造成的任何后果我可不负责
我的 svn server 不需要提供其他的服务,所以我的安装脚本是完全以 svn 服务为中心的,如果你的服务器还需要提供 php / mysql 等服务的话,这个脚本可能并不适合你。
为 了 recover 的方便,我把 svn 所需要的一些关键文件放在了 resource 目录下面,安装脚本自动从 resource 目录下读取相关的文件拷贝到对应的目标目录下。你如果想用这个脚本,需要在 resource 目录下提供你自己服务器环境下的真实文件。本压缩包中的资源文件仅作示例。
分享到:
相关推荐
在没有网络连接的情况下,即离线状态下安装Linux SVN,需要提前下载好所有必要的依赖包,然后在本地进行安装。以下是详细的操作步骤和相关知识点: 1. **了解SVN**: SVN是一种集中式版本控制系统,它允许用户跟踪...
Linux SVN安装手册旨在指导用户在Linux环境中安装Subversion(SVN)版本控制系统。Subversion是一个开源的版本控制系统,用于管理文件和目录版本的历史记录,便于团队协作开发。以下是详细的安装步骤: 1. 首先,...
在Linux环境中,Subversion(简称svn)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的变更。本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和...
Linux SVN的安装使用笔记 .
在Linux环境下安装SVN服务器可以帮助团队有效地进行软件项目的版本控制。以下是一个详细的Linux SVN服务器安装教程。 一、安装依赖库 在安装SVN之前,需要确保系统上已经安装了必要的依赖库。对于基于Debian或...
### Linux (CentOS 6.2) 下安装SVN服务 #### 一、概述 本文将详细介绍如何在Linux(CentOS 6.2)环境下安装SVN服务。SVN(Subversion)是一种分布式版本控制系统,广泛应用于软件开发过程中对源代码进行版本控制。...
linux 下 SVN 1.6.1 的安装部署流程,包含软件下载的路径。后续我会在我的CSDN中提供相关软件下载。 tag 均以 linux SVN 1.6.1 开头。
linux下安装SVN支持http;linux下安装SVN支持http;linux下安装SVN支持http
Linux服务器离线安装SVN,所需要的依赖包,包括apr-1.7.0.tar.gz、apr-util-1.6.1.tar.gz、expat-2.0.1.tar.gz、sqlite-autoconf-.tar.gz、subversion-1.14.1.tar.gz、zlib-1.2.11.tar.xz,比从官网下载快N倍
2. **解压安装包**:使用`tar`命令解压下载的压缩文件,例如`tar -zxvf linux离线安装SVN_1.8.17所需安装包.tar.gz`。 3. **编译和安装apr及apr-util**:先解压并进入apr的目录,执行`./configure && make && sudo ...
linux安装svn文档,文档描述相关的linux安装svn的命令
为了在Linux环境下使用SVN,用户需要根据自己的需求选择合适的安装方式和配置策略。接下来,我将详细介绍Linux下SVN的安装配置过程。 首先,在安装SVN之前,需要了解SVN的基本概念。SVN(Subversion)是一个开源的...
### Linux SVN 安装与部署 #### 一、概述 版本控制系统在软件开发过程中扮演着极其重要的角色。Subversion(SVN)作为一种流行的集中式版本控制系统,在Linux环境下部署SVN服务器能够有效地支持团队协作,提高代码...
3. "SVN使用说明.doc" - 这是SVN的基础操作指南,可能包含如何添加、提交、更新、比较文件等基本命令的说明。 4. "svn-apache安装.doc" - 这部分可能涉及将SVN与Apache web服务器集成的教程,以便通过HTTP/HTTPS协议...
在Linux系统中安装SVN,通常需要以下步骤: 1. 更新系统包列表: 首先确保你的系统包列表是最新的,通过运行命令`sudo apt-get update`(对于基于Debian或Ubuntu的系统)或`sudo yum update`(对于基于RPM的系统如...
根据给定的文件信息,我们可以...总之,配置SUSE Linux下的SVN服务器涉及多个步骤,包括系统准备、软件安装、权限管理、问题排查等。遵循官方文档和社区指南,可以有效避免常见错误,实现高效稳定的版本控制系统部署。
在Linux环境中,版本控制系统Subversion(SVN)广泛用于团队协作和代码管理。为了确保数据安全,定期备份SVN库是至关重要的。本篇将详细解释如何在Linux下创建一个自动备份SVN仓库的shell脚本,并将其设置为计划任务...
在Linux系统中,Subversion(SVN)是一个广泛使用的版本控制系统,用于管理源代码、文档等文件的变更历史。本文将详细介绍如何在Linux上安装SVN,包括可能遇到的问题及解决方法。 首先,确保你的Linux系统已经更新...
本文将指导读者在 Linux 环境下安装 SVN(Subversion),并使用钩子脚本实现本地提交后自动同步代码文件到服务器的网站目录下。 安装 SVN 首先,使用 yum 命令安装 SVN: `yum install subversion` 安装完成后,...