Chinaunix首页 | 论坛 | 博客
  • 博客访问: 751223
  • 博文数量: 98
  • 博客积分: 4934
  • 博客等级: 上校
  • 技术积分: 1151
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-12 19:55
文章分类

全部博文(98)

文章存档

2014年(1)

2013年(2)

2012年(4)

2011年(25)

2010年(33)

2009年(33)

分类: LINUX

2011-07-20 14:19:37

Subversion 是一款开放源代码的版本控制系统。使用 Subversion,可以重新加载源代码和文档的历史版本。Subversion 管理了源代码在各个时期的版本。一个文件树被集中放置在文件仓库中。这个文件仓库很像是一个传统的文件服务器,只不过它能够记住文件和目录的每一次变化。SVN在合作开发中使用是相当广泛的。

首先,subversion是基于apache服务器的,所以首先需要安装apache

$ sudo apt-get install apache2

接着,是安装 subversion

通常大家习惯 直接 apt-get install subversion,或者直接在新立德里面点击,但光这样是不行的,这样会缺少库。正确的方法应该还要安装libapache2-svn。

    $ sudo apt-get install subversion     
    $ sudo apt-get install libapache2-svn

或者去 下载相应的版本

然后,创建SVN仓库

先要使自己和局域网计算机能够具有访问的权限,这也是经常容易出错的地方。添加一个叫subversion的组,然后把自己和网络访问加入其中。

    $ sudo addgroup subversion    
    $ sudo usermod -G subversion -a www-data
    你可以通过     
    $ cat /etc/group|grep subversion
    来查看是否更改正确

注销后自己就成为subversion组的一员了。假设你要设置的SVN仓库路径是/home/svn

    $ sudo mkdir /home/svn  
    $ cd /home/svn
    $ sudo mkdir project
    $ sudo chown -R root:subversion project

下面的命令用于创建 SVN 文件仓库:

$ sudo svnadmin create /home/svn/project

赋予组成员对所有新加入文件仓库的文件拥有相应的权限:

$ sudo chmod -R g+rws project

这样,一个SVN server就基本搭建好了,但这样访问连密码都不需要,只要知道路径就OK了,所以就想到了用WebDAV协议来访问(http://),本想用https://的但考虑到局域网内不需要这么严密,就避繁就简了。

要通过 WebDAV 协议访问 SVN 文件仓库,必须配置 Apache 2 Web 服务器。加入下面的代码片段到 /etc/apache2/mods-available/dav_svn.conf中:

      
    DAV svn
    SVNPath /home/svn/project
    AuthType Basic 
    AuthName "project subversion repository"
    AuthUserFile /etc/subversion/passwd
    Require valid-user 
    
当添加了上面的内容,必须重新起动 Apache 2 Web 服务器,输入下面的命令:
sudo /etc/init.d/apache2 restart

接下来,创建 /etc/subversion/passwd 文件,该文件包含了用户授权的详细信息。要添加用户,可以执行下面的命令:

$ sudo htpasswd -c /etc/subversion/passwd user_name

它会提示你输入密码,当你输入了密码,该用户就建立了。“-c”选项表示创建新的/etc/subversion/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:

$ sudo htpasswd /etc/subversion/passwd other_user_name

这样以后,就可以通过下面的命令来访问文件仓库:

$ svn co  myproject --username
user_name

它会提示你输入密码。你必须输入您使用 htpasswd 设置的密码。当通过验证,项目的文件就被签出了。或者在客户机上使用GUI界面的SVN工具,比如TortoiseSVN(windows)或者 esvn (linux) 来访问。另外很多IDE,比如NetBeans, eclipse, anjuta, VS 都是有SVN插件的,这为开发也提供了相当的便利。

经验教训:

  搭好后一直出现本机可以访问,局域网其他机器无法访问的情况,查了好多资料,也没有解决。最后一惊醒发现linux下也有防火墙,刚装系统的时候设置成了禁止外部访问,这就悲剧了。。。不过也因此知道了很多apache在ubuntu环境下的特点,比如httpd.conf下是空的之类的,默认的服务器访问地址是/var/www。

如果想更改访问目录,首先在/etc/apache2/sites-available/下面复制一份default并重命名,如:$ sudo cp /etc/apache2/sites-available/default/etc/apache2/sites-available/svn 修改其中的DocumentRoot 和 Directory,并使用
sudo a2dissite default && sudo a2ensite svn 来开启新的网页目录。

阅读(1481) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~