[经验总结]源代码管理=Ubuntu+Apache+SVN

最近公司的Windows服务器中毒了,同事决定改用Linux。听说我以前弄过Linux,且还比较闲,于是被拉过去装服务器。

以前实验室的SVN服务器是加老板配的,这次只能自己硬着头皮上了。

 

Google搜到下面这篇文章http://writeblog.csdn.net/PostEditPlain.aspx) :

=========================================

一、安装Apache2.2服务器(如果你安装了这个步骤就可以省略了)

#sudo apt-get install apache2

#sudo apt-get install apache2-common

#sudo apt-get install apache2-mpm-prefork

#sudo apt-get install apache2-utils

#sudo apt-get install libapache2-svn

#sudo apt-get install libapache2-mod-auth-pam(可选,用于PAM)

#sudo apt-get install libapache2-mod-auth-sys-group(可选,用于PAM)

#sudo apt-get install subversion

#sudo apt-get install subversion-tools
二 SVN配置

1.创建SVN的版本仓库(将定我把我的库名字叫svn,项目名称叫myproject 我的用户名石tokyo2006)
#sudo mkdir /home/svn
#sudo mkdir /home/svn/myproject
2.创建一个用户组来拥有文件仓库所在的目录   (如果你不想通过组来分配权限,也可以单独用用户分配权限)
#sudo vi /etc/group
# cat /etc/group|grep subversion subversion:x:1001:www-data,tokyo2006

创建组的权限

#/home/svn# sudo chown -R root:subversion myproject

#/home/svn# sudo chmod -R g+rws myproject
单独给用户创建权限
# sudo chown -R www-data:www-data /home/svn/myproject
创建文件仓库
#sudo svnadmin create /home/svn/myproject
三 Apache配置
#sudo gedit /etc/apache2/mods-available/dav_svn.conf
在文件中添加以下内容
<Location /svn/myproject>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName “myproject subversion repository”
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>(如果想每次登陆都输入密码请把这个引掉)
Require valid-user
</LimitExcept>

</Location>
添加好上述内容后保存退出,然后重启Apache
#sudo /etc/init.d/apache2 restart
接下来,创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。
#sudo htpasswd -c /etc/subversion/passwd 要创建的用户名
它会提示您输入密码,当您输入了密码,该用户就建立了。
在浏览器里面输入
http://localhost/svn/myproject 你就可以看见你的版本了
我们来提交一个文件做测试,在/home/tokyo2006/truck里面有文件我们提交,用如下命令
#svn -import -m “操作注释” /home/tokyo2006/truck
http://localhost/svn/myproject
在浏览器中浏览一下是不是发现变成版本一了,好了,我们来checkout一下,呵呵
#svn checkout
http://localhost/svn/myproject /home/tokyo2006/test
看看test文件夹里面是不是有文件了?
就这么多了,笔记MARK

在网上找了个更详细的MRAK   http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/

=================================================

 

上面的步骤比较清晰,但还有以下三点值得注意

       1.  新建组和为用户添加组时,需要重新登录Shell才能生效,感谢水木社区LinuxApp版的网友提示。

 

       2.  一个新的版本库就被创建出来之后,用svn import 命令导入代码的过程中,出现了Permission denied的错误,这时需要在库目录下sudo chmod -R o+wxr添加其他用户的全部权限,这样可能不安全,但还没找到解决办法。

 

       3. 有关Ubuntu的,apache2-common和 apache2-utils改名了,不需要单独安装; libapache2-mod-auth-pam和libapache2-mod-auth-sys-group这两个包在新立德源里找不到。

 

       4 一般要用SVN管理 多个项目,所以配置文件要加上以下两行:

                 SVNListParentPath   on   # 访问父目录 

                 SVNParent   /svn             # 父目录指向位置

           注意Windows和Unix平台中配置文件不同: 
                     windows    配置文件:  apache/conf/httpd.conf
	        Unix/Linux 配置文件:/etc/apache2/mods-available/dav_svn.conf  


=================================================
最后秀一下我的配置文件:

-----------------------------------------------------------

Windows apache/conf/httpd.conf:

      

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

 

#http://localhost:8086/svn/

<Location /svn/>

         DAV svn

         SVNListParentPath on

         SVNParentPath E:/Apache_Svn/_svn_root

         AuthName "PAM's SVN"

         # 基本验证模式

         AuthType Basic

         AuthUserFile E:/Apache_Svn/Apache2.2/conf/svn-passwd

         AuthzSVNAccessFile E:/Apache_Svn/Apache2.2/conf/svn-access

         Require valid-user

</Location>

 

--------------------------------------------------------

--------------------------------------------------------

Linux /etc/apache2/mods-available/dav_svn.conf  :

<Location /svn/>

DAV svn

SVNListParentPath on

SVNParentPath /svn

 

AuthType Basic

#Satisfy Any

Require valid-user

#Require valid-group

Options Indexes MultiViews

 

AuthName "PAM subversion repository"

AuthUserFile /etc/subversion/passwd

AuthzSVNAccessFile /etc/apache2/dav_svn.authz

 

#Require valid-user

#Satisfy Any

#</LimitExcept>

</Location>

 

===============================================================








展开阅读全文

没有更多推荐了,返回首页