“我的TDD實踐”系列之SVN架設
寫在前面:
我的TDD實踐這幾篇文章主要是圍繞測試驅動開發所展開的,其中涵蓋了一小部分測試理論,更多的則是關注工具的使用及環境的搭建,做到簡單實踐先行,后理論專精的目的。
TDD實踐系列文章:
1.TDD概念篇
2.CI持續集成
3.SVN架設篇
1. 介紹:
本文主要是介紹Source control system(源文件管理系統),這是CI的基礎,當然你也完全可以用它只做數據存儲,並行開發,源代碼控制等等,這里就不詳細介紹了,網上有很多資料描述SVN以及源代碼管理,TFS也是一個不錯的選擇。
這里我選擇了Subversion+TortoiseSVN的選擇,因為開源以及應用廣泛,免費。
通常所說的SVN其實是分為2個部分的:
服務端Server:Subversion
客戶端Client:TortoiseSVN (廣泛引用,功能強大,操作簡單)
a) 意義:
i. 提供獲取歷史版本功能,恢復錯誤版本之前的狀態。或比較版本之間的不同。
ii. 鎖定正在編輯的文件,訪問控制鎖定,防止提交沖突。(不同產品,實現功能略有不同。)
iii. 良好的版本管理、版本分發。
iv. 提供文檔,工具,測試,源代碼的一體化管理。
b) 權衡
說明:Centralized集中式管理 與 Distributed分布式管理(要是開源的建議可以分布式管理,反之集中式管理)
Transactional支持事務性與nontransaction不支持事務性(是否支持還原代碼版本,很重要。曾經的慘痛教訓告訴我,即使能回滾的情況下已經很鬧心何況不能還原數據。)
File blocking文件鎖or non-file blocking非文件鎖定方式。(文件鎖定方式屬於樂觀鎖,即檢出時(checkout)有權限的人都可以獲取,但是提交時(checkin)會進行版本控制,簡而言之,如果你和某人同時改寫了同一個文件,一般情況下誰先提交到服務器上,第二個人就無法提交並報告文件沖突。)
2. 環境搭建
Server :Subversion
Subversion官網 (建議下載1.6.x)
Client:TortiseSVN
目前,官網只有1.8.x 64位版本,請找到適合您的客戶端。
本文中建議配合Subversion請使用TortoiseSVN-1.6.8.19260-win32-svn-1.6.11版本
步驟Steps:
- 點擊Subversion安裝包,並將程序安裝到“指定目錄”(默認是C盤下),默認安裝后重啟。
- 安裝完成,測試是否安裝成功。
打開CMD程序,輸入 svnserve --help。沒有提示錯誤就是安裝成功。
3.SVN服務端配置:
a) 在CMD中輸入:sc create SVNService binpath= "C:\Program Files\Subversion\bin\svnserve.exe --listen-port 3691 --service -r D:\SVN\Server\RepositoryRoot" displayname= "SVNService" start= auto depend= Tcpip
其中C:\Program Files\Subversion\bin\svnserve.exe是安裝程序的路徑;D:\SVN\Server\RepositoryRoot是目標路徑,在此之前要提前創建好該目錄下的RepositoryRoot文件夾。
啰嗦一句,win7下要管理員權限,沒有權限會返回“失敗5:拒絕訪問”。
也可以用批處理的方式注入cmd命令。
成功后會返回: CreatServer 成功。
b) 啟動SVNService服務:(管理員權限)cmd 執行 net start SVNService (SVNService是上面定義的服務名稱)
c) 使用SVN集成命令(或TSVN創建),cmd-> input:svnadmin create D:\SVN\Server\RepositoryRoot(此路徑必須是服務開啟的路徑)。然后你會在此目錄下看到生成了很多文件,具體不一一介紹了,在這個文件夾中創建tags,trunk,branches文件夾。
d) 配置Svn服務端:
在conf文件夾下,
Svnserve文件修改如下:
anon-access = none
auth-access = write
password-db = passwd
realm = My First Repository
passwd文件修改如下:
[users]
qq=229063661
至此,服務端配置基本完成,更多的設置文件中有說明,或者去訪問SVN中文站,這里筆者要強調一下的是:SVN服務端和客戶端的版本要一致,不然可能會出現莫名其妙的錯誤。更有意思的是,您可以不建立SVN服務端而直接聯接Git的開源程序,但目前只支持只讀。
4.SVN客戶端配置:
a) 安裝TortoiseSVN-1.6.8.19260-win32-svn-1.6.11.exe。基本都是默認設置,安裝完之后可以更改語言。
b) 完成本地磁盤和Svn服務端磁盤的映射。
i. 在本地文件夾下右鍵---checkout---按照圖片上的設置(注意我是本地所以用localhost,IP可以跨機器訪問;我更改了端口3691,所以要顯示指明一下,要不然會出錯。),最后輸入passwd中的用戶名和密碼即可。(qq:229063661)
至此,SVN客戶端也配置完畢了,SVN的使用方法這里就不舉例了,網上資料非常豐富,而且大家也可以查看T-SVN的操作手冊,或者訪問SVN中文站獲得更多信息。
這里羅列一下相關資源:
T-SVN手冊:http://www.subversion.org.cn/tsvndoc/