将已有項目代碼加入svn版本控制 - TortoiseSVN入門篇
Windows下SVN實用教程(以TortoiseSVN作為用戶端(client))
翻譯: Bravo Young
Next: 版本庫的備份與存儲
目錄
- 導引
- 安裝Subversion
- 安裝TortoiseSVN
- 一步步地操作
- 步驟0. 設定全局忽略檔案類型(此步驟為可選)
- 步驟1. 建立版本庫Repository資料庫
- 步驟2. 導入初始化 - 将你的項目導入(import)到資料庫
- 步驟3. 建立工作目錄 - 将你的項目與資料庫連接配接起來
- 注意事項
- 參考資料
到目前有很多關于Subversion (SVN) 和 TortoiseSVN的優秀書籍和教程。其中有部分在本文的參考資料區有列出。這篇教程無疑是站在巨人的肩膀上。它隻覆寫了subversion (SVN)有限的一部分功能。 然而我希望此文能簡化你對SVN的認識。
Subversion 是一種跨平台的開源版本控制系統 (http://subversion.tigris.org/). 它由版本資料庫 (FSFS 或 BDB) 和一些指令行工具組成。目前有各種各樣的SVN前端工具。
Subversion是為多人參與的項目專門設計的。 但它也可用于管理個人項目。
此文僅限于基于Windows的本地SVN環境(未單獨配置遠端的伺服器)。
打開Tigris.org網站的下載下傳區,選擇 開源代碼軟體工程工具Subversion (http://subversion.tigris.org/)。 Windows下最新的指令行版Subversion的安裝檔案和庫都能在http://www.open.collab.net/downloads/subversion/下載下傳到。下載下傳安裝包。SVN的預設安裝目錄為C:\Program Files\Subversion,當然你也可以修改磁盤路徑。
現在你就可以開始使用SVN了。 如果你不習慣使用指令行工具,那你有必要安裝一個你覺得合适的GUI前端。
TortoiseSVN是一種Subversion用戶端, Windows下它是一個指令行擴充, Windows資料總管的一個插件(http://tortoisesvn.tigris.org/)。
最新版本可以在這下載下傳到 http://tortoisesvn.sourceforge.net/downloads. 截止到2015.12.18的最新版本為:TortoiseSVN-1.9.2.26806-x64-svn-1.9.2.msi,如果需要切換語言,還可以在官網上下載下傳相應語言包。
如果你電腦安裝的Windows是32位的請選擇32位的TortoiseSVN安裝包,如果你電腦安裝的Windows是x64的請選擇x64的TortoiseSVN安裝包。 下載下傳區域的另一個檔案TortoiseSVN-xxx-xxx.md5, 是安裝時不需要的。它包含安裝包的驗證編号checksum,該驗證編号能有效驗證你是否下載下傳到了合适的安裝包 (且它沒有損壞)。
你可以下載下傳程式HashFile (http://www.shokhirev.com/nikolai/programs/progmisc.html) 來驗證下載下傳到的安裝包的 MD5 哈希值 (checksum). 該驗證編号必須和TortoiseSVN-xxx-xxx.md5檔案上的資訊完全一緻。
這個安裝也是直接的,同意預設設定即可。 唯一有趣的是ASP.NET hack. 預設情況下, SVN 使用 .svn 工作目錄 (正如Linux下隐藏檔案的命名風格)。
預設的, 不含有 ASP.Net hack | 含有給VS.Net web項目用的ASP.Net hack |
這使得 微軟 ASP.Net 和 the hack 強制 SVN 去使用 _svn 作為工作目錄。 如果你要使用Subversion對ASP.Net項目進行版本控制,請不要安裝ASP.Net hack這一項。
注: 安裝完TortoiseSVN後,你的Windows 資料總管的主目錄上會出現下圖所示的新的按鈕:
同時這些新增按鈕也會添加到 (通過滑鼠右鍵單擊激活) 的上下文菜單中。
目前有很多Subversion管理方式(參看手冊). 現在我們主要考慮如下主要的情形:
- 你有一個現有的項目,你想将它加入版本控制。
- 這是你本地電腦上的個人項目。
在這種情形下你不應該會擔心安全性和開啟一個subversion伺服器。
假設你的項目駐放在 C:\Projects\MyProject 路徑下,它包含如下檔案,或許還有些子檔案夾:
步驟0 (可選). 設定全局忽略檔案類型。 你可能不想跟蹤臨時檔案 或 某些其他格式的檔案。滑鼠右擊任意一個檔案夾,然後打開TortoiseSVN的Settings:
當然你也可以滑鼠右擊檔案, 打開Windows資料總管主目錄中的TortoiseSVN/Settings。
"General" -> "Subversion"處,你可以列出各種各樣的檔案類型,并使用空格隔開 (比如上圖中示例的
*.bak *.~*
). 注意到這個設定會對所有的工作目錄有效。參看手冊的5.25可了解更多的設定。
步驟1.建立版本庫Repository。 在你的硬碟上為你的項目建立版本庫的目錄, 比如 C:\SVN. 在它裡面建立一個空的子目錄 \MyProject. 滑鼠右鍵點選MyProject,并選擇TortoiseSVN -> 在此建立版本庫:
選擇預設"原生檔案系統"(FSFS)選項,并單擊OK按鈕:
這一步将 C:\SVN\MyProject 轉化為含有如下内容的版本庫:
到目前為止,它還是一個空的版本庫,雖然Subversion已經建立了幾個目錄和檔案 ! 我們需要将我們的項目檔案中需要進行版本控制的檔案填充進去并将它連結到我們的工作項目的目錄。這些操作中可能會有幾個和大家的習慣操作不一樣、新的操作。
步驟2. 導入初始化。 在你的磁盤的某處 (比如 在 C:\tmp) 建立一個目錄 (比如 \new) ,含有如下3個子目錄:
C:\tmp\new\branches
C:\tmp\new\tags
C:\tmp\new\trunk
相應的檔案結構為:
為了能用更多進階的項目管理功能,這個結構是必須的, 如果事先建立它也不會帶來什麼損害。 有些手冊首推先導入此結構到版本庫,然後向裡面添加項目。我推薦使用如下的快捷方式:
- 備份你的項目檔案 (比如 C:\Projects\MyProject), 以防萬一.
- 删除所有不在全局忽略檔案清單中的不需要進行版本控制的檔案。
- 将 檔案夾 \MyProject 中需要進行版本控制的内容 移動 進 trunk 子目錄 (C:\tmp\new\trunk). 我們之後無論如何都将會需要一個空的檔案夾。
- 将目錄"new"導入Import到版本庫 (選擇"new",右鍵依次單擊TortoiseSVN->Import):
URL 選擇 file:///C:/SVN/Myproject (左斜杠"/" !):
"Import finished" 消息出現時,表明 C:\tmp\new\下的所有檔案及子檔案夾都已成功導入版本庫 :
不需要擔心"tmp\new" 消息, 隻要驗證哪些檔案真正地導入到了版本庫中即可。 書表右鍵單擊 C:\SVN\MyProject ,然後打開 TortoiseSVN -> Repo-browser(版本庫浏覽器):
導航 至 file///C:/SVN/MyProject/trunk:
注意到全局忽略清單的檔案都沒被導入。 并且也沒有 'C:\tmp\new' 目錄的痕迹了, 'C:\tmp\new' 目錄再沒有什麼用處了,可以删掉。
步驟3. 建立工作目錄 - 将你的項目與資料庫連接配接起來. 現在你已經成功增加了你對所有需要進行版本控制的檔案添加了版本控制,并且目前的空目錄 C:\Projects\MyProject (回憶一下, 我們之前已将改目錄中的所有檔案 移動 到了 目錄 C:\tmp\new\trunk 中,對麼?). "為了讓你的雙手移動檔案的這個行為獲得"贊美", 完全得到準許, 并且完全導入Subversion目錄, 你需要從版本庫中對它進行檢出Checkout" . 書表右擊 C:\Projects\MyProject 檔案夾,并選擇 "SVN Checkout"(SVN 檢出):
設定 URL 為 file:///C:/SVN/MyProject/trunk ,并設定檢出目錄為: C:\Projects\MyProject
點選OK. 會提示"Checkout (檢出) has finished":
"贊美" 以"對勾Check"小圖示的形式反映在你的項目目錄和裡面所有的檔案(和所有的子目錄)上。
這樣的含有"對勾Check"的目錄被稱為工作目錄。現在你可以開始使用SVN管理你的項目版本了,也可以學到更多關于Subversion的知識。
幾點注意事項
- 送出 (checking in) 你對版本庫的變更: 右擊滑鼠,然後選擇 "SVN Commit"(SVN送出)
- 添加檔案到版本庫。 這是一個兩步的過程:
- 先右擊選中的檔案,然後右鍵依次選擇 "TortoiseSVN"->"Add"
- 先右擊選中的檔案,然後右鍵依次選擇 "TortoiseSVN"->"SVN Commit"
- 除了參考書籍 [4] 和 [5], 我也推薦 Charlie Calvert 的文章 [6].
- 如果你使用 Lavasoft Ad-Aware, 不要删除可以忽略的對象: 這一步會删除系統資料庫中的圖示設定 !
- 祝開開心心 使用Subversion版本控制 !
- Subversion 首頁: http://subversion.tigris.org/
- By Hans Dietrich, Version Control for the Standalone Programmer - Part 1. - Code Project中的優秀文章.
- SVN 1-Click setup.- Windows下用單個安裝包搭建SVN環境:http://svn1clicksetup.tigris.org/
- Adam Pash, How to set up a personal home Subversion server (Windows下需另外配置Apache).
- RapidSVN, 一種用于SVN版本控制系統的跨平台GUI前端: http://rapidsvn.tigris.org/
- TortoiseSVN, 一種 Subversion 用戶端, 作為windows的指令行擴充: http://tortoisesvn.tigris.org/
- Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato. Subversion手冊: http://svnbook.red-bean.com/
- TortoiseSVN 使用者手冊, 來自 TortoiseSVN官方網站 https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/.
- Charlie Calvert. 在Subversion Trunk, Tags, Branches中建立版本庫、和項目。 Codefez: (http://www.codefez.com/Home/tabid/36/ctl/ArticleView/mid/364/articleId/144/Default.aspx)
- Sebastian Rahtz.Subversion簡介, 牛津大學: http://www.oucs.ox.ac.uk/oucsweb/svn.xml
- OUCS提供的一份Windows下TortoiseSVN的使用手冊.http://www.oucs.ox.ac.uk/oucsweb/tortoisesvn.xml
- TortoiseSVN 教程. http://www.mind.ilstu.edu/research/complete_inactive/iris4/iris40/developers/svntutorial/
- SVN vs CVS. http://www.pushok.com/soft_svn_vscvs.php
- 更多 SVN 連結
也可參看: Buildix - 磁盤上的靈活開發平台 http://buildix.thoughtworks.com/.
Buildix 包含以下幾部分:
- Subversion 用于源代碼控制
- Trac 用于提供Wiki,Bug跟蹤和日常的項目管理
- Cruise Control 用于做後續內建
英文源位址: http://www.shokhirev.com/nikolai/programs/SVN/svn.html
Practical guide to subversion on Windows with TortoiseSVN
by Nikolai Shokhirev
關注90後夢想大師,夢想從未止步.