軟件公司最重要的就是軟件的代碼了,代碼是程序員辛勤工做的成果。針對代碼的控制是很是重要的,天天程序員們寫了新的代碼,修改了哪些代碼,升級發佈了一個版本,但願都須要被記錄,版本管理軟件這時候就發揮做用了。通常,咱們在各類IDE上面看到的集成版本管理軟件有CVS,SVN,GIT,使用方面後面2個比較多,第一個彷佛是說要進行權限管理上面的,上面3個都是開源軟件。java
通常,小型項目,能夠考慮用SVN來管理,有不錯的圖形界面,並且eclipse支持也比較好。SVN,全稱-subversion,是一種版本控制工具,和git差很少,不過git在分佈式管理方面更加有優點,畢竟當初的目的就是用來管理Linux源碼的。本地搭建SVN,須要一個客戶端和一個server端,客戶端在windows中須要一個TortoiseSVN(海龜SVN),直接下一步下一步安裝便可,服務端安裝一個可視化的VisualSVN,標準版,不斷下一步便可。git
在SVN服務端,有幾個項目,一個是repository,一個是客戶,還有一個是組,repository就是倉庫,客戶和組的功能主要是對用戶的權限管理等。repository倉庫須要先本身建,通常直接默認便可,有幾個注意,有個single(含有分支的),權限不用設置,能夠修改的,最後會生產一個URL。程序員
通常右鍵有Tortoise就可,有個checkout,還有個tor的功能選項,先checkout,就能夠和服務端創建鏈接,URL就填上面的那個就可。而後就能夠建立文件,修改文件,右鍵Tor就能夠執行提交更新等操做了。windows
在分配多個用戶時,通常一個用戶天天到來時先update,再作事,而後完成了一個小任務,就能夠提交。這時,可能出現幾種狀況,一種是A和B用戶提交修改了不一樣行,那麼先提交的那個用戶,成功,後提交的用戶提示須要更新再提交,按提示操做,merge成功。可是若是兩個用戶是在同一行進行操做,那麼第二個提交的用戶即便update仍然「失敗」,同時會出現幾個文件,用來提示用戶更改先後文件的內容,這時右鍵有個功能,編輯衝突,在衝突行會有高亮操做,或者移到下一行仍是上一行等。eclipse
通常咱們用SVN,主要和一些IDE或者文本編輯器結合起來使用,好比和Eclipse的結合,有一個插件解決了這個問題,叫subclipse,下載解壓放到eclipse安裝目錄的dropin目錄裏面便可。這裏注意,也可建立一個link類型的文件,如subclisp.link的文件,內容爲path=文件的路徑(注意把路徑的\換成/,即創建了一個快捷方式。重啓eclipse,在windows裏面的配置裏面能夠看到SVN的選項,有時64位版本可能會有異常報告,在SVN裏面把SVNCLIENT改成purejava便可。在show裏面有一個SVN資源庫,點出來,添加SVN資源庫,檢出,現成的工做空間,便可在eclipse完成部署。右鍵工做空間的項目,在team裏面能夠執行提交更新或者分支等操做。編輯器
更通常的是,創建了一個trunk(主幹,主要是項目的成長進度)、branches(主要針對項目的一些枝葉,或者是一些個性化的操做,如針對相似項目的不一樣客戶的定製需求)、tag(主要是發佈的版本)的目錄。分佈式
這時候檢出,主要是針對一個模塊,如trunk或者branches,在每一個模塊中進行更新,修改,添加,當編輯好以後,右鍵有個分支|標記功能,弄一個版本1。工具
考慮一種狀況,trunk中不斷地升級功能,版本迭代,可是由於用戶量巨大,以前的版本忽然發現有 bug,那麼在tag中檢出以前的版本1,在branches中必需要有一個文件,而後在tag中右鍵切換功能,上面的位置須要填寫好,就是branches中裏面有的文件,這是可成功轉換。ui
在branch中修復bug完成,先提交,再分支\標記到tag標籤中,注意文件名的填寫,便可。spa
在branch中切換便可看到修改好的新tag了。注意tag用於存放release的版本。另外修改後的代碼仍然須要整合到trunk上面來,防止後續版本也出現這樣的問題。這是可使用merge功能。
在工做空間中,能夠用team的shared功能,便可建立一個關於該項目的版本控制,注意文件名字的填寫。
使用注意:
windows中沒有右鍵菜單,能夠在註冊表中,軟件中,含有tortouiseSVN的文件夾刪除,重啓電腦,再次安裝一遍,便可。