1. 程式人生 > >在阿里雲伺服器上搭建 SVN 服務端

在阿里雲伺服器上搭建 SVN 服務端

一、SVN 服務端搭建流程

1、安裝 svn

apt-get install subversion
// 方式二:yum install subversion 

ps:檢視版本

svnserve --version

2、建立版本庫

先建目錄

mkdir /usr/xq/svn

建立版本庫

svnadmin create /usr/xq/svn

subversion目錄說明:
- db目錄:就是所有版本控制的資料存放檔案
- hooks目錄:放置hook指令碼檔案的目錄
- locks目錄:用來放置subversion見艱苦鎖定資料的目錄,用來追蹤存取檔案庫的客戶端
- format檔案:是一個文字檔案,裡面只放了一個整數,表示當前檔案庫配置的版本號
- conf目錄:是這個倉庫的配置檔案(倉庫的使用者訪問賬號、許可權等)

cd進入conf目錄(該svn版本庫的配置檔案):
- authz檔案是許可權控制檔案
- passwd是帳號密碼檔案
- svnserve.conf SVN服務配置檔案

3、配置檔案

設定帳號密碼 vi passwd

ps:格式為:使用者名稱 = 密碼

設定許可權 vi authz

修改svnserve.conf檔案 vi svnserve.conf
開啟下面的幾個註釋:

anon-access = read              # 匿名使用者許可權(none為不給許可權)
auth-access = write             # 授權使用者許可權
password-db = passwd # 使用哪個檔案作為賬號檔案 authz-db = authz # 使用哪個檔案作為許可權檔案 realm = My First /usr/xq/svn # 認證空間名,版本庫所在目錄

4、啟動svn版本庫

svnserve -d -r /usr/xq/svn

ps:停止SVN命令

killall svnserve

ps:檢視服務是否開啟

ps -ef |grep svn

二、在windows上測試時可能會出現的問題

1、Unable to connect to a repository at URL ‘svn://xxxxxxxxx’

SVN的預設埠是3690,網上有很多開啟Ubuntu3690埠的方法,但是還是沒有用,其實是要設定阿里雲伺服器 ECS 中例項的“本例項安全組”才行:



之所以會出現這種情況,是因為配置 authz 時少寫了這裡的“[/]”

ps:設定[/],代表根目錄下所有的資源,如果要限定資源,可以加上子目錄

3、URL ‘svn://xxxxxxxxx’ doesn’t exist

這個原因是:

直接指定“svn://xxxxxxxxx”就行,不用指定到詳細檔案路徑,因為配置啟動svn服務時,就已經自動關聯。

三、專案程式碼上傳

笨方法:AndroidStudio新建空白專案 –》右鍵 TortoiseSVN 選擇 Import –》起個專案資料夾名字

–》輸入使用者名稱和密碼 –》提交 –》刪除原專案 –》SVN Checkout –》AndroidStudio 匯入 Checkout 的專案 –》協同開發