SVN的使用


一、SVN簡介

  SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於CVS,它采用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的。

 

二、目錄管理

  brunch: 多人開發一個項目時,存放每個人的分支代碼,或從主干分支出來具有特殊功能的代碼;

  tags: 一個項目肯定有不同的發布版本,當我們發布一個版本時,可以創建一個tags版本用來存放該發布的版本;

  trunk: 該目錄里存放項目的主干代碼。

 

 

三、客戶端操作流程

  用戶從SVN版本庫通過網絡“檢出(Checkout)”到本地工作副本(Working Copy)中,在本地副本中進行增加、修改、刪除等操作,完成后可“提交(Commit)”到版本庫中,如果本地工作副本中版本較系統版本庫過時,用戶使用“更新(Update)”功能與系統上版本保持一致,具體流程圖如下圖所示。

 

四、操作內容說明

1、  檢出操作

  檢出(Checkout)是把服務器相應文件夾的內容下載到本地,並建立本地與服務器的關聯,然后可以在本地進行代碼管理。要求本地放置代碼的文件夾名稱與服務器上相應文件夾名稱一致。

 

2、導入操作

       導入(Import)是把本地跟SVN無關聯的文件夾加載到服務器的相應路徑,並與服務器建立關聯。導入文件夾時需要填寫導入信息。

 

 

 

 

 

 

3、導出操作

       導出(Export)是把服務器最新版本代碼或歷史版本代碼下載到本地某個路徑,下載下來的代碼是純粹干凈的代碼,里面沒有任何SVN殘留的信息

 

 

 

 

 

4、添加和刪除操作

        添加(Add)是把本地關聯文件夾里面未關聯的內容轉換為關聯內容;刪除(Delete)是把本地正常關聯的內容轉換為非關聯內容。完成添加和刪除操作后,需要進行“提交(Commit)”才能更新到服務器上。

 

 

 

 

 

 

 

 5、檢查修改操作

       檢查修改(Check for modifications)是把提交前的文件修改、添加、刪除、無版本控制等非常清晰的呈現出來。

 

 

 

 

 

 

 

6、還原操作

       還原(Revert)是把提交前的文件修改、添加、刪除等改動恢復到原樣,可以對文件夾操作、或對單個文件操作。

 

 

7、提交操作

      執行修改、添加、刪除等操作后,為了使操作更新到服務器上,需要進行提交(Commit)操作。

 

 

 

 

 

 

 

8、更新操作

      團隊編碼時,更新是比較常用的操作,更新是把服務器最新的程序更新到本地,對已做修改、刪除、添加等操作還未進行提交操作的文件不進行更新,把修改、刪除、添加操作的文件進行還原、或把修改操作的文件直接刪掉,然后便可更新

 

 

 

 

9、分支/標記(Branch/tag)

       分支/標記是把選中文件或文件夾內容復制到Branch或tags路徑下面,新的路徑下面的文件與原文件的關系可以很清晰的查看

 

 

 

 

 

 

 

10、合並(Merge)

      合並是把A文件的修改內容合並到B文件或把B文件的修改內容合並到A文件,便於代碼在一個地方修改完畢后直接移到需要的地方,相互合並的文件必須是通過“分支/標記”操作生成的文件與母文件。合並只是把修改內容移到工作副本,提交之后才有效

 

 

 

 

 

 

五、代碼管理

1. 代碼路徑結構

  每個項目的軟件代碼管理對應一個獨立的總路徑或總文件夾,下面分級存放不同的內容。基於SVN的代碼管理文件夾結構示例如下圖。

 

 

2. 代碼操作規划

  2-1、為了代碼管理安全、避免代碼誤操作,對相關軟件工程師進行權限設置。參與該軟件研發人員,開放“讀寫”全權限;參考借鑒該軟件人員,只開放“讀”權限;其他無需求人員,不開放權限。開發人員進行開發時,必須使用自己的賬戶登錄,禁止使用他人賬戶進行SVN各項操作。

  2-2、新建項目路徑、導入新的軟件代碼,按上述SVN基本操作進行即可。把SVN中已有代碼移植到新的路徑下面時,用Branch/tags指令進行操作,這樣整個代碼的脈絡清晰。

  2-3、開發工作之前先更新代碼,確認是在SVN服務器最新代碼上修改提交;不要長時間檢出項目不提交,減少因多人對同一個文件進行操作產生文件沖突;代碼修改調試完畢后提交,必須書寫清晰的標注;禁止提交軟件編譯產生的垃圾文件,避免別人在更新后可能與本地的環境產生沖突;不允許提交不能通過編譯的代碼;不允許提交自己不明白的代碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM