uranuslei

链接

SVN+Trac版本库的创建和Trac环境设置

2009年2月26日 19:46 | Comments(0) | Category:开发工具 | Tags:

上午接到一个小任务,老师让给点云小组在Trac上添加一个SVN仓库和项目管理平台。虽然我们组在Trac上已经工作了一年多了,但是之前的配置工作都是由唐大牛来做的,我只是做做版本控制。现在大牛毕业了,实验室另一位新生代大牛又不愿意管,老师找到了我,于是我决定试试。

用ssh登录到服务器上(操作系统为Ubuntu Server),然后用locate找到了其他项目组的SVN仓库的存放目录: /var/lib/svn/xxx,于是我就先创建一个新的空的SVN仓库:

$ sudo svnadmin create /var/lib/svn/pointset

然后再用locate找到了每个小组的Trac文件存放目录: /var/trac/xxx,于是为pointset创建Trac环境:

$ sudo trac-admin /var/trac/pointset initenv

程序会问你项目名称是什么(pointset),想把文件存放到哪里(/var/trac/pointset),所用的数据库是什么(SQLite),项目所用的版本控制软件是什么(SVN),以及模板文件所在的路径(默认)。填完之后,程序输出一条 “Congratulations!"

没想到这么快就搞定了,于是赶紧把Gauss给我的pointset现有代码拷贝到本地,然后在这个目录下建立一个指向服务器SVN版本库的本地SVN仓库:

$ cd ~/workspace/pointset
$ svn checkout http://dev.cgcad.com/svn/pointset

接下来把现有的代码加入本地仓库,再提交到服务器:

$ svn add *
$ svn commit -m "Init commit by copying files from Gauss."

碰到了一个问题,服务器说没有权限往svn/目录下拷贝东西,原来我忘记把相应的目录权限设置成apache能读写了,于是登录服务器,补上这一步,顺便把Trac的也补上:

$ sudo chown -R www-data:www-data /var/lib/svn/pointset/
$ sudo chown -R www-data:www-data /var/trac/pointset

现在svn commit终于成功了。

接下来是一些扫尾的工作,根据实验室要求,一个小组的成员不能看到其他组的代码,也不能访问其他组的trac(除非他同时参加了多个项目),所以要设置一下相应的权限。先在服务器上建立相应的pointset组:

$ sudo addgroup pointset

然后编辑/etc/group文件,在包含pointset那一行添加该组的成员名单:

pointset:x:1011:tom,jack,lucy

接下来在apache的配置文件中加入相应的权限控制。编辑/etc/apache2/conf.d/trac.conf,添加如下几行:

<Location /trac/pointset>
  Require group pointset
</Location>

类似地,在/etc/apache2/mods-enabled/dav_svn.conf中添加:

<Location /trac/pointset>
  Require group pointset
</Location>

搞定!现在http://dev.cgcad.com/svn/pointset和http://dev.cgcad.com/trac/pointset就只有该组的成员可以访问了。


由于服务器上的SVN+Trac环境已经搭好了,所以上面没有提到一开始的安装和配置等问题。这里这里分别有Linux下和Windows下搭建svn+Trac的方法,感兴趣的朋友可以去看看。