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配合
作者:水木