嘗試着去架設一個svn服務器,由於有一天可能你也要帶領一個團隊去開發,不是嗎?瀏覽器
* 傳統的Subversion 服務器程序:安全
1、準備工做服務器
一、獲取 Subversion 服務器程序編輯器
到官方網站下載最新的服務器安裝程序。svn
二、獲取 TortoiseSVN 客戶端程序工具
從 官方網站獲取最新的 TortoiseSVN 。TortoiseSVN 是一個客戶端程序,用來與 subvers 服務器端通信。Subversion 自帶一個客戶端程序 svn.exe ,但 TortoiseSVN 更好操做,提升效率。測試
2、安裝服務器端和客戶端網站
安裝 Subversion(如下簡稱SVN)的服務器端和客戶端。下載下來的服務器端是個 zip 壓縮包,直接解壓縮便可,好比我解壓到 E:\subversion 。客戶端安裝文件是個 exe 可執行文件,直接運行按提示安裝便可,客戶端安裝完成後提示重啓。spa
3、創建版本庫(Repository)命令行
方法一:運行Subversion服務器須要首先要創建一個版本庫(Repository)。版本庫能夠看做是服務器上集中存放和管理數據的地方。
開始創建版本庫。首先創建 e:\svn 空文件夾做爲全部版本庫的根目錄。而後,進入命令行並切換到subversion的bin目錄。輸入以下命令:
svnadmin create E:\svn\repos1
此命令在 E:\svn 下創建一個版本庫 repos1 。repos1 下面會自動生成一些文件夾和文件。
方法二:咱們也可使用 TortoiseSVN 圖形化的完成這一步:
先 創建空目錄 E:\svn\repos1 ,注意必定是要空的。而後在 repos1 文件夾上「右鍵->TortoiseSVN->Create Repository here...」,而後能夠選擇版本庫模式,這裏使用默認的FSFS便可,而後就建立了一系列文件夾和文件,同命令行創建的同樣。
4、運行獨立服務器
此時 subversion 服務尚未開始,只是經過它的命令創建了版本庫。繼續在剛纔的命令窗口輸入:
svnserve.exe --daemon
svnserve 將會在端口 3690 等待請求,--daemon(兩個短橫線)選項告訴 svnserve 以守護進程方式運行,這樣在手動終止以前不會退出。注意不要關閉命令行窗口,關閉窗口會把 svnserve 中止。
爲了驗證svnserve正常工做,使用TortoiseSVN -> Repo-browser 來查看版本庫。在彈出的 URL 對話框中輸入:
svn://localhost/svn/repos1
點 OK 按鈕後就能夠看見 repos1 版本庫的目錄樹結構了,只不過這時 repos1 是個空庫。
你也可使用--root選項設置根位置來限制服務器的訪問目錄,從而增長安全性和節約輸入svnserve URL的時間:
svnserve.exe --daemon --root drive:\path\to\repository
之前面的測試做爲例,svnserve 將會運行爲:
svnserve.exe --daemon --root e:\svn
而後TortoiseSVN中的版本庫瀏覽器URL縮減爲:
svn://localhost/repos1
你可能會問這樣豈不是每次啓動SVN服務器都要輸入一次命令?怎樣才能讓SVN服務器在開機的時候自動啓動呢?答案就是將SVN服務註冊到Windows系統服務,在Windows命令提示符裏執行命令
sc create SVN binpath= "\"d:\subversion\bin\svnserve.exe\" --service -r F:\SVN" displayname= "SVN Service" depend= Tcpip start= auto,這個命令是否是有點長?其實很容易理解,sc是Windows自帶的系統服務註冊工具,微軟支持中心提供了詳細的說明,這裏我就再也不復述了,參 數binpath= "\"d:\subversion\bin\svnserve.exe\" --service -r F:\SVN"和咱們前面手動啓動SVN服務器的命令很像吧?只是把-d改爲了--service,這不難理解,由於如今是服務嘛。好了,如今已經大功告 成了,重起一下試試吧。
PS:若是想從系統服務裏刪除剛纔註冊的SVN服務可使用sc delete SVN命令。
5、配置用戶和權限
用文本編輯器打開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
6、初始化導入
下面就是將咱們的數據(項目)導入到這個版本庫,之後就由版本庫管理咱們的數據。咱們的任何改動都回被版本庫記錄下來,甚至咱們本身丟失、改錯數據時版本庫也能幫咱們找回數據。
比 如,我在 d:\wwwroot 下有個 guestbook 文件夾,裏面存放的是我編寫的留言簿程序。在此文件夾上「右鍵 -> TortoiseSVN -> Import...」 ,在彈出對話框的「URL of repository」輸入「svn://localhost/repos1/guestbook」。在「Import message」輸入「導入整個留言簿」做爲註釋。
點 OK 後要求輸入賬號。咱們在用戶名和密碼處都輸入 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」 。
7、基本操做流程
一、取出(check out)
取出版本庫到一個工做拷貝:
來 到任意空目錄下,好比在f分區創建一個空文件夾 f:\work 。「右鍵 -> SVN Checkout」。在「URL of repository」中輸入「svn://localhost/svn/repos1/guestbook」,這樣咱們就獲得了一份 guestbook 中內容的工做拷貝。
二、存入(check in)/提交(commit)
在工做拷貝中做出修改並提交:
在 guestbook 工做拷貝中隨便打開一個文件,做出修改,而後「右鍵 -> SVN Commit... 」。這樣咱們就把修改提交到了版本庫,版本庫根據狀況存儲咱們提交的數據。
在 修改過的文件上「右鍵 -> TortoiseSVN -> Show Log」 ,能夠看到對這個文件全部的提交。在不一樣的 revision 條目上「右鍵 -> Compare with working copy」,咱們能夠比較工做拷貝的文件和所選 revision 版本的區別。