`
aben328
  • 浏览: 1451321 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类

svn-for-linux(2007-04-22 14:53:56)

    博客分类:
  • SVN
阅读更多
svn-for-linux(2007-04-22 14:53:56)

版权信息:  该文章版权由Bill chen所有。可在非商业目的下任意传播和复制。
对于商业目的下对本文的任何行为需经作者同意。
联系方式:goclient@yahoo.com.cn

1.  本文需要两个文件,httpd和subversion。
·httpd是web服务器,用来通过web访问subversion,这里(http://apache.justdn.org/httpd/httpd-2.2.2.tar.bz2)是它的下载网页,可以下载到httpd-2.2.2.tar.bz2。
·subversion就是本文的主角,这里(http://subversion.tigris.org/downloads/subversion-1.3.1.tar.bz2)是它的下载网页,可以下载到subversion-1.3.1.tar.bz2
2.  新建一个用户:svn, 切换到svn下,将下好的两个文件拷到svn的home(/usr/svn)下

3.  编译安装httpd (root用户操作):
//解压apache2安装包
$ tar jxvf httpd-2.2.2.tar.bz2
//进入解压后的目录
$ cd httpd-2.2.2
//配置apache安装,前两个参数是必须要加的,你还可以根据您的需要添加其他的参数。
//后面的参数(prefix=...)由你制定,指明你要把apache安装哪里,本文中我放到/usr/svn/下
$ ./configure --enable-dav --enable-so --prefix=/usr/svn/apache2/
$ make
//安装
$ make install
$ cd /usr/svn/apache2/bin
//启动apache服务
$ ./apachectl start
//打开浏览器http://localhost/如果有测试页"It works!"出现则证明已经安装成功。


3.  安装Subversion
//解压SubVersion安装包 (root用户进行下面的操作)
$ tar jxvf subversion-1.3.1.tar.bz2
//进入解压后的目录
$ cd subversion-1.3.1
//配置subversion安装
$./configure --with-apxs=/usr/svn/apache2/bin/apxs --prefix=/usr/svn/subversion --with-apr=/usr/svn/apache2 --with-apr-util=/usr/svn/apache2
$ make
//安装
$ make install
//创建库文件所在的目录
$ mkdir /usr/svn/repository
//进入subversion的bin目录
$ cd /usr/svn/subversion/bin
//创建仓库"test"
$ /usr/svn/subversion/bin/svnadmin create /usr/svn/repository/test
$ cd /usr/svn/repository/test
//看看是不是多了些文件,如果是则说明Subversion安装成功了
$ ls –l
$ cd /usr/svn/subversion/bin
//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,
//提交后的修订版为1。
$ export SVN_EDITOR=vi
$ ./svn import /usr/svn/import file:///usr/svn/repository/test -m "first import"
("/home/user/import" 这个目录是指任意一个你需要导入的工程,这个工程就是你希望让svn进行版本控制的工程,这么写只是我举了例子。。。你可以把这个路径改成你自己工程的路径)


4.  修改Apache配置文件
# vi /usr/svn/apache2/conf/httpd.conf
找到文件中的这行:
User daemon // 将daemon改为svn  
//在最下面添加

找到文件中的这行:
Listen 80 // 改为Listen 你的IP:你的端口,例如 Listen 192.168.1.1:80  
//在最下面添加

   <Location /svn>
   DAV svn
   SVNParentPath /usr/svn/repository/
   AuthzSVNAccessFile /usr/svn/authz.conf 
   AuthType Basic 
   AuthName "Subversion.zoneyump" 
   AuthUserFile /usr/svn/authfile 
   Require valid-user 
    //其中authfile是通过"htpasswd [–c] /usr/svn/authfile username password"来创建的
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
   //则只能第一个用户可以访问新建库
   </Location>

然后
增加用户
$ htpasswd -c /usr/svn/repository/authfile bill
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
$ htpasswd /usr/svn/repository/authfile shirely
 

$ vi /usr/svn/repository/authz.conf
   [test:] 
   bill = rw 
   shirely = r 
   [test2:/] 
   bill = r 
   shirely = 
   [/] 
   * = r 
   [groups] 
   svn1-developers = bill, shirely 
   svn2-developers = bill
   [svn1:/]
   @svn1-developers = rw

//[test:/] //这表示,仓库test的根目录下的访问权限
 //  bill = rw //test仓库bill用户具有读和写权限
 //  shirely = r //test仓库shirely用户具有读权限
 //  [test2:/] //test2仓库根目录下的访问权限
 //  bill = r //bill用户在test2仓库根目录下只有读权限
 //  shirely = //shirely用户在 test2仓库根目录下无任何权限
 //  [/] //这个表示在所有仓库的根目录下
 //  * = r //这个表示对所有的用户都具有读权限
//   #[groups] //这个表示群组设置
 //  #svn1-developers = bill, shirely //这个表示某群组里的成员
  // #svn2-developers = bill
 //  #[svn1:/]
 //  #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置
//对目录的写权限,目录不能是中文名


5.切换到root用户
# cd /usr/svn/apache2/bin
//重启Apache
# ./apachectl restart
//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

6. #vi /etc/profile //在结尾设置一些系统启动时要做的工作,加如下三行:
# start apache server for svn
/usr/svn/apadche2/apachectl start
export SVN_EDITOR=vi

<!-- -->
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics