天天看點

在自己電腦上建立SVNserver

傳統的Subversionserver配置方法:

一、準備工作

1、擷取 Subversion server程式

到官方站點(​​http://subversion.tigris.org/​​)下載下傳最新的server安裝程式。

2、擷取 TortoiseSVN client程式

從官方站點 ​​http://tortoisesvn.net/downloads​​ 擷取最新的 TortoiseSVN 。TortoiseSVN 是一個client程式,用來與 subvers server端通訊。

Subversion 自帶一個client程式 svn.exe ,但 TortoiseSVN 更好操作,提高效率。

二、安裝server端和client

安裝 Subversion(以下簡稱SVN)的server端和client。

下載下傳下來的server端是個 zip 壓縮包。直接解壓縮就可以。比方我解壓到 E:\subversion 。

client安裝檔案是個 exe 可執行檔案,直接執行按提示安裝就可以,client安裝完畢後提示重新啟動。

三、建立版本号庫(Repository)

執行Subversionserver須要首先要建立一個版本号庫(Repository)。

版本号庫能夠看作是server上集中存放和管理資料的地方。

開始建立版本号庫。首先建立 e:\svn 空目錄作為全部版本号庫的根目錄。

然後,進入指令行并切換到subversion的bin目錄。輸入例如以下指令:

svnadmin create E:\svn\repos1

此指令在 E:\svn 下建立一個版本号庫 repos1 。

repos1 以下會自己主動生成一些目錄和檔案。

我們也能夠使用 TortoiseSVN 圖形化的完畢這一步:

先建立空目錄 E:\svn\repos1 ,注意一定是要空的。然後在 repos1 目錄上“右鍵->TortoiseSVN->Create Repository here…”,然後能夠選擇版本号庫模式,這裡使用預設的FSFS就可以,然後就建立了一系列目錄和檔案。同指令行建立的一樣。

四、執行獨立server

此時 subversion 服務還沒有開始,僅僅是通過它的指令建立了版本号庫。繼續在剛才的指令窗體輸入:

svnserve.exe –daemon

svnserve 将會在端口 3690 等待請求,–daemon(兩個短橫線)選項告訴 svnserve 以守護程序方式執行,這樣在手動終止之前不會退出。注意不要關閉指令行窗體,關閉窗體會把 svnserve 停止。

為了驗證svnserve正常工作,使用TortoiseSVN -> Repo-browser 來檢視版本号庫。

在彈出的 URL 對話框中輸入:

svn://localhost/svn/repos1

點 OK button後就能夠看見 repos1 版本号庫的目錄樹結構了,僅僅隻是這時 repos1 是個空庫。

你也能夠使用–root選項設定根位置來限制server的訪問目錄,進而添加安全性和節約輸入svnserve URL的時間:

svnserve.exe –daemon –root drive:\path\to\repository

曾經面的測試作為例,svnserve 将會執行為:

svnserve.exe –daemon –root e:\svn

然後TortoiseSVN中的版本号庫浏覽器URL縮減為:

svn://localhost/repos1

 你可能會問這樣豈不是每次啟動SVNserver都要輸入一次指令?如何才幹讓SVNserver在開機的時候自己主動啟動呢?

答案就是将SVN服務注冊到Windows系統服務,在Windows指令提示符裡執行指令

sc create SVN binpath= “\”d:\subversion\bin\svnserve.exe\” –service -r F:\SVN” displayname= “SVN Service” depend= Tcpip start= auto,這個指令是不是有點長?事實上非常easy了解,sc是Windows自帶的系統服務注冊工具,微軟支援中心提供了具體的說明,這裡我就不再複述了,參數binpath= “\”d:\subversion\bin\svnserve.exe\” –service -r F:\SVN”和我們前面手動啟動SVNserver的指令非常像吧?僅僅是把-d改成了–service,這不難了解,由于如今是服務嘛。好了,如今已經大功告成了,重起一下試試吧。

PS:假設想從系統服務裡删除剛才注冊的SVN服務能夠使用sc delete SVN指令。

五、配置使用者和權限

用文本編輯器打開E:\svn\repos1\conf目錄。改動svnserve.conf:

将:

# password-db = passwd      

改為:

password-db = passwd      

即去掉前面的 # 凝視符,注意前面不能有空格。然後改動同目錄的passwd檔案。添加一個帳号:

[users]
# harry = harryssecret
# sally = sallyssecret      

添加帳号:

[users]
#harry = harryssecret
#sally = sallyssecret
test = test      

六、初始化導入

以下就是将我們的資料(項目)導入到這個版本号庫,以後就由版本号庫管理我們的資料。

我們的不論什麼改動都回被版本号庫記錄下來,甚至我們自己丢失、改錯資料時版本号庫也能幫我們找回資料。

比方。我在 d:\wwwroot 下有個 guestbook 目錄,裡面存放的是我編寫的留言簿程式。

在此目錄上“右鍵 -> TortoiseSVN -> Import…” ,在彈出對話框的“URL of repository”輸入“svn://localhost/repos1/guestbook”。在“Import message”輸入“導入整個留言簿”作為凝視。

點 OK 後要求輸入帳号。

我們在username與password處都輸入 test 。完畢後 guestbook 中的内容全部導入到了 svn://localhost/svn/repos1/guestbook 。

我們看到在 e:\svn\repos1 沒有不論什麼變化,連個 guestbook 目錄都沒有建立,唯一的變化就是e:\svn\repos1容量變大了。

實際上我們源guestbook中的内容已經導入 repos1 版本号庫了。源 guestbook 目錄能夠删除了。

須要注意的是,這一步操作能夠全然在還有一台安裝了 TortoiseSVN 的客戶機上進行。比如執行svnserve的主機的IP是133.96.121.22。則URL部分輸入的内容就是“svn://133.96.121.22” 。

七、基本操作流程

1、取出(check out)

取出版本号庫到一個工作拷貝:

來到随意空目錄下。比方在f分區建立一個空目錄 f:\work 。

“右鍵 -> SVN Checkout”。在“URL of repository”中輸入“svn://localhost/svn/repos1/guestbook”。這樣我們就得到了一份 guestbook 中内容的工作拷貝。

2、存入(check in)/送出(commit)

在工作拷貝中作出改動并送出:

在 guestbook 工作拷貝中随便打開一個檔案。作出改動,然後“右鍵 -> SVN Commit… ”。這樣我們就把改動送出到了版本号庫,版本号庫依據情況存儲我們送出的資料。

在改動過的檔案上“右鍵 -> TortoiseSVN -> Show Log” 。能夠看到對這個檔案全部的送出。在不同的 revision 條目上“右鍵 -> Compare with working copy”,我們能夠比較工作拷貝的檔案和所選 revision 版本号的差别。