一、引言
筆者曾經試圖在網上搜尋一篇關於SVN原始碼伺服器搭建方面的中文技術文章,可惜,所找到的,要麼是不完整,要麼就是對筆者沒什麼協助的文章,TortoiseSvn的協助文檔固然強大,但因為是英文,不是很適合來作為入門者使用;畢竟,TortoiseSvn是一個用戶端,伺服器端的配置也很重要。
一年前,筆者剛剛畢業,初入公司,在進行開發時,由於沒有進行軟體代碼版本管理,導致的結果是
•軟體一天一個版本
•Bug日益增加且隱藏很深
•代碼無法向前回溯
•幾個月前修正過的Bug在幾個月後又重新出現
由於最近公司決定架設SVN原始碼伺服器,來解決以上問題,故筆者經過一段時間的摸索和使用,便有了此文。
二、學習本文先決條件
如果作為讀者的你符合以下情況,那麼本文可以對你起到一個很大的協助作用:
•具備基本的軟體開發知識
•瞭解Client/Server模型
•正在被日益更新的軟體代碼版本所困擾
本文旨在指導讀者如何利用現有的軟體工具進行軟體代碼版本管理工作,如果你對軟體版本控制與管理,維護與備份較為感興趣,可以閱讀此文來擷取一定的知識。
三、安裝SVN伺服器端軟體
首先,你必須下載兩款軟體包:VisualSVN Server和TortoiseSVN,兩者都是開源軟體,至於在哪裡下載,百度或Google之,盡量使用最新版就好,我使用的版本如下:
伺服器端:VisualSVN-Server-2.5.5.msi
用戶端:TortoiseSVN-1.7.5.22551-win32-svn-1.7.3.msi
雙擊以標,開啟安裝包:
單擊“Next”
勾選“I accept...”,然後單擊“Next”
選擇第一個“安裝VisualSVN Server(可視化SVN伺服器)”和“Management Console”
Location是你的安裝目錄,C盤或D盤都可以,Repositories是你的原始碼倉庫,也就是你SVN幫你管理代碼放置的位置,這裡我選擇放置在D盤根目錄下,將“Use secure connection”複選框的勾去掉,然後在Server Port中填寫8080(填其他連接埠號碼也可以,但是確保該連接埠號碼未被佔用),在這裡不使用安全連線的原因是,它會導致通訊速度減慢(PS:當時在公司配置時使用的secure connection,每次Checkout一次要15秒多的時間,無法忍受),然後單擊“Next”:
單擊“Install”
等待……
Finish!
單擊“Finish”後,會啟動VisualSVN Server,可以看到,它的Status是:
VisualSVN Server is running
Server URL is http://motor-109133.hanslaser.com:8080/svn/
至此,伺服器端軟體安裝完畢!
四、SVN伺服器設定項目
按右鍵“Repositories”,選擇“Create New Repository...”
在“Repository Name”下方文字框填入“TestSvn”(作為測試用),將“Create default structure(trunk,branches,tags)”選項勾選上,單擊OK
可以看到在Repositories樹下面,有一個TestSvn庫,這個TestSvn庫中有三個檔案夾:
branches(分支,修改特殊功能或者新功能的分支代碼,可與主幹進行合并)tags(標記,設定milestone版本)trunk(主幹,存放當前正在編輯的代碼工程)
開始建立使用者(使用者組管理請各位自己研究),按右鍵“Users”,選擇“Create User...”
在“Create New User”對話方塊中填寫帳號密碼,:
可以看到Users檔案夾下面有了一個使用者:
記得將Repositories倉庫的屬性修改一下,因為它預設的屬性是Everyone Read/Write,意思是任何人都可以對該庫中的內容進行讀寫,現在我們要將其修改成Everyone No Access,然後再自己添加使用者,給予使用者讀或寫的能力,按右鍵“Repositories”,選擇“Properties”:
選中“Everyone”,然後勾選“No Access”:
現在開始為TestSvn添加一個使用者,也就是剛剛添加的帳號:zhengshuo,按右鍵“TestSvn”,選擇“Properties...”:
單擊“Add...”,選擇Users下的zhengshuo,單擊OK
這樣使用者zhengshuo就被添加到TestSvn項目中(即目前只有zhengshuo才有對TestSvn的讀寫權利):
五、安裝SVN用戶端軟體
雙擊如下安裝包:
單擊“Next”
選擇“I accept...”,單擊“Next”
選擇安裝目錄,單擊“Next”:
開始Install:
Wait...
安裝完畢!
六、從SVN伺服器簽出工程代碼
在任意一個位置建立一個檔案夾TestSvn,比如說D盤,按右鍵該檔案夾,選擇“SVN Checkout...”
填寫好“URL of Repository”,格式是http://你電腦的IP地址:8080/svn/TestSvn,連接埠號碼是之前設定好的8080,IP地址填寫你當前電腦的IP地址,然後單擊OK:
SVN會提示輸入帳號密碼進行驗證,因為zhengshuo這個帳號在伺服器中已經添加,所以可以用該帳號進行登入:
驗證成功後,會提示“Checkout Finished!”:
七、向SVN伺服器簽入工程代碼
第一次簽出會獲得當前項目TestSvn中的目錄結構,即branches,tags和trunk:
我們的代碼要放在trunk(主幹)檔案夾中,代碼如下:
按右鍵TestSvn檔案夾,選擇“SVN Commit...”
填寫好上傳理由Message,單擊OK
提示“Commit Finished!”
八、後記
本文講述的內容雖然較為簡單,但是,它卻給了初學者一個最佳的切入點,讓初學者能夠在最短的時間內,對SVN原始碼伺服器的搭建和初步使用有一個通盤的瞭解。
通過對SVN源碼伺服器的搭建,也讓我明白了軟體代碼版本管理的重要性,正所謂君子善假於物也,我們作為一個合格的軟體工程師,要善於合理利用身邊一切可以利用的資源,來最佳化我們的工作環境,提高工作效率,為公司為自己寫出Bug較少的完美軟體。