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服务方式运行
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
[/]
@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配合