`
pcajax
  • 浏览: 2106982 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

vps配置笔记(10)架设svn服务

阅读更多

linux 下面架设svn服务器,有点难度,我找了好多资料,现在是安装成功了,服务也起动了,但就是不可以在客户端拉下来,下面是一篇相关的资料,如果想购买国外vps的可以找我,哈

介绍几个赚钱的项目,有兴趣可以联系我

 

 

非常惭愧的还没有抽出时间去学一学git,权且先在这里记录一下当下的比较主流的subversion(svn)的架设记录,网上已经有很多了,在这里只是整理记录一下而已。
svn目前作为服务总体上有两种常见形式svn自身协议的方式或者走http协议,svn自身协议自不待言搭建简单方便一条命令搞定:

sudo svnserve -d --listen-port 1234 --listen-host scm.myhost.com --pid-file /var/run/svnserved.pid -r /scm/svn/repos/myproject

各参数大致意义:
-d 指定后台daemon服务方式运行 <script language="JavaScript" src="http://book.book560.com/ads/ads728x15.js" type="text/javascript"></script>
listen-port 监听端口 1234
listen-host 监听域名 scm.myhost.com
pid-file 指定运行时进程PID号记录文件路径 /var/run/svnserved.pid
-r 指定项目svn库所在路径。/scm/svn/repos/myproject
一旦架设完成后面就可以用svn checkout检出源码了:

svn co svn://scm.myhost.com:1234/myproject

svn库创建命令

svnadmin create /scm/svn/repos/myproject

建立好基本库后一般都需要构建一下基本的源码管理layout布局:

mkdir -p /tmp/layout/{trunk,branches,tags}
cd /tmp/layout
svn import . file:////scm/svn/repos/myproject -m 'init project layout'

然后我们以后checkout主线代码就可以:

svn co svn://scm.myhost.com:1234/myproject/trunk

svn的http协议方式目前还依赖于apache容器,不过你愿意的话也可以前端用varnish/nginx把请求转发到apache容器上也可以达到对外统一服务的目的。
基本的安装就不细细叙述了,这里只写一下vhost下的配置方法。
首先需要创建几个共用文件:
/scm/svn/conf/accessfile
用来设定所有项目的各个账户权限,具体请参考svn的配置文件文档,这里仅给个例子:

[groups]
administrator = axiong <script language="JavaScript" src="http://book.book560.com/ads/ads728x15.js" type="text/javascript"></script>
[/]
@administrator = rw
* =

/scm/svn/conf/passwdfile
用来指定所有项目的用户和对应密码,当然这部分也可以在mysql里搞定,感觉小型项目没有什么必要,还是文本方便,可以用apache-util里的htpasswd生成。
指定完了后就是vhost的配置了:

<VirtualHost *:80>
        ServerName scm.myhost.com
        <Directory />
                Options Includes FollowSymLinks
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
    <Location /svn>
        DAV svn
        SVNParentPath /scm/svn/repos
        AuthType Basic
        AuthName "Subversion System"
        AuthUserFile /scm/svn/conf/passwdfile
        AuthzSVNAccessFile /scm/svn/conf/accessfile
        Satisfy Any
        Require valid-user
    </Location>
</VirtualHost>

这样就架设好了http://scm.myhost.com/svn/myproject的svn库,
以后还可以在/scm/svn/repos下建立更多的svn库使用统一管理的账户和密码。
注意/scm/svn/repos下的每一个项目都需要有apache所在组或用户的写入权限,否则代码会提交出错。

更新一下:修改了一下location地址方便和trac配合

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics