IT项目管理的第一步就是文档的管理。文档包括需求文档、详细设计文档、源代码、测试用例等等。对文档的管理,主要工作就是对文档版本的管理。
Subversion(SVN)就是一个最常用的版本控制系统,本文主要提供一个简易的安装指南。
1、apr-1.4.6.tar.gz
2、apr-util-1.4.1.tar.gz
下载地址:http://apr.apache.org/
3、httpd-2.2.22.tar.gz
下载地址:http://httpd.apache.org/
4、pcre-8.30.tar.gz
下载地址:http://sourceforge.net/projects/pcre
5、subversion-1.6.18.tar.gz
6、subversion-deps-1.6.18.tar.gz
下载地址:http://httpd.apache.org/
把以上安装包上传至/usr/local目录,cd /usr/local 进入该目录。
1、安装APR
tar zxvf apr-1.4.6.tar.gz#解压包
cd apr-1.4.6
./configure
make
make install
2、安装APR-UTIL
tar zxvfapr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure--with-apr=/usr/local/apr
make
make install
3、安装PCRE
tar zxvf pcre-8.30.tar.gz
cd pcre-8.30
./configure--prefix=/usr/local/pcre
make
make install
4、安装Apache
tar zxvf httpd-2.2.22.tar.gz
cd httpd-2.2.22
./configure --prefix=/usr/local/apache2.2.22--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 --with-pcre=/usr/local/pcre
#--prefix表示把apache安装在指定目录
make
make install
5、安装subversion
tar zxvf subversion-1.6.18.tar.gz
tar zxvf subversion-deps-1.6.18.tar.gz
cd subversion-1.6.18
./configure--prefix=/opt/svn --with-apxs=/usr/local/apache2.2.22/bin/apxs--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr
make
make install
至此,安装基本完毕,接下来为Apache和Subversion的集成配置。注意:因为这些安装包需要gcc编译,所以要确保linux上装有gcc程序,否则是没办法进行安装的。
验证安装Subversion是否已经自动修改Apache的配置:
vi /usr/local/apache2.2.22/conf/httpd.conf
1、如果你看到如下两句,说明安装是成功的
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModuleauthz_svn_module modules/mod_authz_svn.so
如果有下面一句就用#注释掉
#LoadModule foo_modulemodules/mod_foo.so
做完以上配置后,启动Apache HTTP Server,如果出现:
It works!
即表示集成Subversion到Apache成功。
建立一个SVN的文件库路径很简单,使用如下命令即可:
svnadmin create /opt/SVN/BlogDemo
其中/opt/SVN为SVN文件库存放路径,BlogDemo为仓库名,可以理解为项目名。
创建完成后,仓库目录中的目录结构如下图所示:
在{Apache_Hoot}/conf/httpd.conf中添加如下路径配置段:
<Location/svn>
DAV svn
#如果为SVNPath,那么/svn为/svn/BlogDemo
#SVNPath /opt/SVN/BlogDemo
SVNParentPath /opt/SVN
AuthName "Subversion repository"
#指定了文件库访问政策文件
AuthzSVNAccessFile /opt/SVN/conf/AuthzSVNAccessFile.txt
#只有经过认证的用户才可以访问
Require valid-user
#表示允许匿名访问
Satisfy Any
#The following is Basic authenticationsetting
AuthType Basic
#用来指示使用htpasswd创建的密码文件的位置
AuthUserFile /opt/SVN/conf/AuthUserFile.txt
</Location>
其中"/svn"就是用户端存取特定文件库的URI(Uniform ResourceIndentifier),SVNPath后面指定的路径则是文件库的绝对路径,假设我们的文件库实际存放的路径是/opt/SVN/BlogDemo,并且希望用户端使用 "http://localhost:8888/svn/BlogDemo"的URL来存取文件库,那么要加入 httpd.conf的內容就是:
<Location /svn/BlogDemo>
DAV svn
SVNPath /opt/SVN/BlogDemo
</Location>
SVNParentPath后面指定的路径是文件库的绝对路径,表示可以让任何人都可以通过http://localhost:8888/svn/<文件库名称>的方式,存取位于/opt/SVN这个目录以下的所有文件库。也就是说,这个设定动作只需要一次,如果使用SVNPath,那么你必须为各个文件库分别指定对应的路径。
用Apache的htpasswd指令生成用户名和密码:
/usr/local/apache2.2.22/bin/htpasswd –cm /opt/SVN/conf/AuthUserFile.txtadmin
/usr/local/apache2.2.22/bin/htpasswd -m /opt/SVN/conf/AuthUserFile.txtken
htpasswd的参数-c 是创建文件的意思,故只在首次使用,使用命令后会提示输入密码和确认密码,仅使用-m参数时也可用来修改密码。
vi /opt/SVN/conf/AuthzSVNAccessFile.txt
加入以下内容:
[groups]
admin= admin
development= ken
[/]
@admin= r
@development= rw
代表admin组里面有admin用户,development组里面有ken用户,多个用户用“,”号分隔。
启动服务,即可通过http协议访问SVN中的内容,如果出现以下内容,那么证明已经安装成功。
BlogDemo - Revision 0: /
如果我们要在BlogDemo文件库中引入多个项目,比如再将 /opt/SVN/BlogDemo/SVNProject项目放到BlogDemo/SVNProject目录下,则进入 SVNProject目录,用下面的命令引入SVNProject:
svn import /opt/SVN/BlogDemo/SVNProjecthttp://localhost/svn/BlogDemo/SVNProject-m "Initialrepository layout"