转自:http://blog.sina.com.cn/s/blog_6cb543ef0100vgfk.html
安装的详细信息:http://wiki.ubuntu.org.cn/SubVersion
1安装SubVersion
sudo apt-get installsubversion
2安装apache2服务器
sudo apt-get installlibapache2-svn
sudo apt-get installapache2-mpm-*
在上面第二个命令中有几个包可以安装,但是必须安装其中的一个,如果不安装的话,在我们使用
sudo /etc/init.d/apache2restart
命令重启apache服务的时候会报下面错误
No apache MPM packageinstalled
重启apache服务器
sudo /etc/init.d/apache2restart
此时会报
Restarting web serverapache2
apache2: Could not reliablydetermine the server's fully qualified domain name, using127.0.0.1 forServerName
apache2: Could not reliablydetermine the server's fully qualified domain name, using127.0.0.1 forServerName
但是此时在浏览器中输入http;//localhost也可以正常显示
ItWorks!
这是一种正常现象,控制台出现这个提示只需要编辑
/etc/apache2/http.conf
最后加上
ServerName127.0.0.1
就可以了,不改其实也没有太大关系。浏览器的提示就是表示apache正常工作了.
3服务器配置
根据上述过程应该安装SubVersion和apache2服务器应该都已经成功了,下面创建SVN文件仓库。
许多位置都可以放置Subversion文件仓库,其中两个最常用的是:/usr/local/svn以及/home/svn。为了在下面的描述中简单明了,我们假设您的Subversion文件仓库放在/home/svn,并且你的项目名称是简单的“myproject”。
同样的,也有许多常用的方式设置文件仓库的访问权限。然而,这也是安装过程中最经常出现错误的地方,因此我们会对此进行一个详细说明。典型的情况下,您应该创建一个名为“Subversion”的组来拥有文件仓库所在的目录。下面是一个快速的操作说明,有关内容请参考相关文档的详细说明:
在Ubuntu菜单上选择“系统->系统管理->用户和组”;
创建一个新用户www-data(Apache用户)和另外一个你自定义的用户,假设名字为somebody(添加用户www-data的目的是为了能让apache2服务器能访问该代码仓库)
点击“管理组”按钮,添加组subversion,并将www-data和somebody加入到该组中;
点击“OK”以确认修改,关闭该程序。
注销然后再登录以便你能够成为subversion组的一员,然后就可以执行签入文件(Checkin,也称提交文件)的操作了。
现在执行下面的命令
$ sudo mkdir/home/svn
$ cd/home/svn
$ sudo svnadmin createmyproject
$ sudo chown -Rwww-data:subversion myproject
$ sudo chmod -R g+rwsmyproject
最后的一条命令赋予组成员对所有新加入文件仓库的文件拥有相应的权限。
注意:如果使用WebDAV访问代码仓库的话,必须再执行一遍
$ sudo chmod -R g+rwsmyproject
这是因为svnadmin在创建目录和文件的时候没有赋予写的权限,同时必须讲第四条命令中myproject的拥有者设为www-data,否则在使用WebDAV提交数据的时候会失败,
4访问方式
Subversion文件仓库可以通过许多不同的方式进行访问(CheckOut,签出)——通过本地硬盘,或者通过各种网络协议。无论如何,文件仓库的位置总是使用URL来表示。下表显示了不同的URL模式对应的访问方法:
模式 | 访问方法 |
file:/// | 直接访问本地硬盘上文件仓库 |
http:// | 通过WebDAV协议访问支持Subversion的Apache 2Web服务器 |
https:// | 类似http://,支持SSL加密 |
svn:// | 通过自带协议访问svnserve服务器 |
svn+ssh:// | 类似svn://,支持通过SSH通道 |
4.1直接访问文件仓库(file://)
直接运行下面命令:
svn cofile://localhost/home/svn/myproject#从服务器上签出myproject
cdmyproject
新建一个文件test.txt
svn add test.txt#向代码仓库中添加一个文件
svn commit -m "This is thefirst file to commit" test.txt #提交文件
svn lsfile://localhost/home/svn/myproject#查看代码仓库中的代码
4.2通过WebDAV协议访问(http://)
要通过WebDAV协议访问SVN文件仓库,您必须配置您的Apache 2 Web服务器。您必须加入下面的代码片段到您的/etc/apach2/apache2.conf中:
<Location/svn/myproject>
DAVsvn
SVNPath/home/svn/myproject
AuthTypeBasic
AuthName "myproject subversionrepository"
AuthUserFile/etc/subversion/passwd
<LimitExcept GETPROPFIND OPTIONSREPORT>
Requirevalid-user
</LimitExcept>
</Location>
当添加了上面的内容,您必须重新起动Apache 2Web 服务器,请输入下面的命令:
sudo /etc/init.d/apache2restart
接下来,需要创建/etc/subversion/passwd文件,该文件包含了用户授权的详细信息。要添加用户,可以执行下面的命令:
如果文件/etc/subversion/passwd不存在,使用
sudo htpasswd -c/etc/subversion/passwd somename
如果文件/etc/subversion/passwd存在,使用
sudo htpasswd/etc/subversion/passwd somename
上述命令为subversion创建了一个someone的用户,为该用户创建了密码
现在使用以下命令来访问代码仓库
svn cohttp://localhost/svn/myproject myproject --usernamesomename
cdmyproject
新建一个文件test2.txt
svn add test2.txt#向代码仓库中添加一个文件
svn commit -m "This is a secondfile to commit using webdav" test.txt#提交文件
svnlshttp://localhost/svn/myproject#查看代码仓库中的代码
注意:在这里http://localhost/svn/myproject的目录和之前直接访问的目录稍微有点不同(少了一个/home),这是因为在/etc/apach2/apache2.conf文件中指定的地址<Location/svn/myproject>
注:详细配置方法请https://help.ubuntu.com/community/Subversion,有些时候网上的垃圾成堆,浪费了大量的时间,最好还是关注官方的帮助文档