在Mac上建立SVN伺服器

征途LN發表於2014-03-25

其實我一直都在用Cornerstone來管理程式碼,也挺好用的,我之所以寫這篇文章是因為Mac本身支援建立SVN,也算是練習一下,僅能滿足基本的需求。(本文參考http://www.cnblogs.com/mjios/archive/2013/03/10/2952258.html)


總的來說分下面幾個步驟:

一、建立程式碼倉庫

為了表達的方便,我就建立在桌面上,首先,在桌面上建立一個名為SVN的資料夾

開啟終端建立一個儲存某個專案的資料夾,名為SQLDemo(這個資料夾下儲存的是運算元據庫的工程),輸入指令:

svnadmin create  /Users/liuning/Desktop/SVN/SQLDemo,執行後,會在SQLDemo檔案載入多出一個目錄結構,如下:



二、配置SVN使用者許可權

主要是修改SQLDemo/conf資料夾下的三個檔案

開啟svnserve.conf,把下面配置前的#和空格去掉(使用文字編輯器開啟即可)


[general]
### The anon-access and auth-access options control access to the
### repository for unauthenticated (a.k.a. anonymous) users and
### authenticated users, respectively.
### Valid values are "write", "read", and "none".
### Setting the value to "none" prohibits both reading and writing;
### "read" allows read-only access, and "write" allows complete 
### read/write access to the repository.
### The sample settings below are the defaults and specify that anonymous
### users have read-only access to the repository, while authenticated
### users have read and write access to the repository.
anon-access = read
auth-access = write

### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
# realm = My First Repository
### The force-username-case option causes svnserve to case-normalize
### usernames before comparing them against the authorization rules in the
### authz-db file configured above.  Valid values are "upper" (to upper-
### case the usernames), "lower" (to lowercase the usernames), and
### "none" (to compare usernames as-is without case conversion, which
### is the default behavior).
# force-username-case = none



其中,anon-access = read 代表匿名訪問時是隻讀的



開啟passwd,在[users]線面新增賬號和密碼

[users]

zhangsan=123
lisi=lisi

上面表示第一個賬號是zhangsan密碼是123,第二個賬號是lisi密碼是lisi


開啟authz配置使用者組合許可權

可以講在Passwd裡面新增的使用者分到不同的使用者組裡,可以對不同的組設定不同的許可權,這樣就省去了對每個使用者單獨設定許可權

在[groups]下面新增組名和使用者名稱,多個使用者之間用逗號隔開,接下來進行許可權配置,使用[/]代表svn伺服器上的所有資源庫,如下圖


三、啟動伺服器

在終端輸入下列指令,svnserve -d -r  /Users/liuning/Desktop/SVN,如果沒有任何反應說明啟動成功了。如下:


當然,如果你要退出伺服器,可以從“活動監視器”裡退出這個程式

目前為止,svn伺服器的搭建已經完成了,下面從本地匯入程式碼到伺服器

在終端輸入

svn import /Users/liuning/Desktop/SQLiteDemo svn://localhost/SQLDemo --username=zhangsan --password=123 -m "first input"

再輸入你設定的使用者的使用者名稱和密碼,就會出現程式碼上傳的狀態.


四、從伺服器下載程式碼到本地

在終端輸入

localhost:~ liuning$ svn checkout svn://localhost/SQLDemo --username=zhangsan --password=123 /Users/liuning/Desktop/checkFrmoSVN

這樣桌面上會建立一個checkFromSVN的資料夾,裡面就是你下載的那個程式

五、提交更新過的程式碼到svn伺服器
開啟終端進入到checkFromSVN資料夾

localhost:~ liuning$ cd /Users/liuning/Desktop/checkFrmoSVN

輸入提交命令:

localhost:checkFrmoSVN liuning$ svn commit -m



六、更新svn上的程式碼到客戶端

首先還是進入到checkFromSVN資料夾,輸入下列命令:

localhost:checkFrmoSVN liuning$ svn update

至此,完成了svn上程式碼同步的基本操作,如果要使用svn的其他用法,在終端輸入svn help


相關文章