版本控制系統——SVN相關知識
2022-01-12由 小陳工 發表于 畜牧業
svn是什麼意思
一、SVN概述
1。1 SVN介紹
SVN是Subversion的簡稱,是一個自由開源的版本控制系統。 Subversion將檔案存放在中心版本庫裡,這個版本庫很像一個普通的檔案伺服器,不同的是,它可以記錄每一次檔案和目錄的修改情況,這樣就可以藉此將資料恢復到以前的版本,並可以檢視資料的更改細節。
1。2 SVN基本概念
1。3 SVN模式
複製-修改-合併方案(Subversion預設的模式)
在這種模型裡,每一個客戶讀取專案配置庫建立一個私有工作副本——版本庫中檔案和目錄的本地對映。使用者並行工作,修改各自的工作副本,最終,各個私有的複製合併在一起,成為最終的版本,這種系統通常可以輔助合併操作,但是最終要靠人工去確定正誤。
1。4 SVN架構
Subversion支援Linux和Windows,更多是安裝在Linux下。
svn伺服器有2種執行方式:獨立伺服器和藉助apache執行。兩種方式各有利弊,使用者可以自行選擇。
svn儲存版本資料也有2種方式:BDB一種事務安全型表型別和FSFS一種不需要資料庫的儲存系統。 因為BDB方式在伺服器中斷時,有可能鎖住資料,所以還是FSFS方式更安全一點。
二、SVN使用
2。1 SVN是一種集中式管理程式碼的版本控制系統,原理就是把程式碼都儲存到一個固定的位置(倉庫),每次從這個位置複製更新程式碼,進行編輯;再把修改後的程式碼提交到該目錄中。多人協作開發也是如此。因此需要一個類似Oracle 或者Mysql的伺服器用於儲存和管理庫檔案(要儲存的程式碼等檔案)的服務端——VisualSVN Server。還需要一個 使用者的操作端,用於提交更新檢出程式碼,常用的有idea的Svn外掛,以及TortoiseSVN(小烏龜)。
2。2 伺服器端VisualSVN安裝與配置
2。2。1 VisualSVN下載
2。2。2 VisualSVN安裝與建立倉庫
在開始執行中錄入 services。msc開啟服務。
服務開啟後,在開始執行中查詢visualSVN Server Manager就可以開啟圖形化管理介面:
2。2。3 VisualSVN建立工程目錄
2。2。4 VisualSVN 許可權控制
建立使用者
建立組
分配許可權
2。3 客戶端TortoiseSVN安裝與使用
TortoiseSVN是一個基於windows系統的svn客戶端圖形化介面
2。3。1 Tortoise SVN下載
2。3。2 Tortoise SVN安裝
2。3。3 Tortoise SVN 常用操作
2。3。3。1 瀏覽倉庫
正常情況下,在瀏覽倉庫時會要求錄入username 與password
2。3。3。2 checkout
匯出svn伺服器上的專案
注意:檢出後會有 一個。svn隱藏目錄
2。3。3。3 add
2。3。3。4 commit
2。3。3。5 update
Update,它是更新操作,可以將svn伺服器上的內容更新到本地
2。3。3。6 更新到歷史版本
2。3。3。7 delete
標記刪除操作,本地檔案會刪除,我們需要進行提交,才能真正從伺服器刪除
2。3。3。8 匯入與匯出
Import將本地資源匯入到svn伺服器
Export匯出專案,和checkout的區別在於它不存在。svn隱藏檔案
2。3。3。9 衝突問題與解決
多個使用者同時操作同一個檔案時,就可能產生衝突情況。
這個衝突產生後如何解決,我們可以採用手動Merge,解決衝突後,重新commit
HelloWorld。java 它是伺服器上的檔案與本地檔案合併
HelloWorld。java。mine 本地修改後的檔案
HelloWorld。java。r4 修改前的檔案
HelloWorld。java。r5 對方修改後的檔案
2。4 IDEA下 SVN 配置與使用
2。4。1 IDEA下svn配置,前提是安裝了TortoiseSVN
安裝完成後,右上角的圖示顯示:
1。Update Project 更新專案
2。Commit changes 提交專案上所有變化檔案
3。Compare with the Same Repository Version 當前檔案與伺服器上該檔案通版本的內容進行比較。如果當前編輯的檔案沒有修改,則是灰色不可點選。
4。Show history 顯示當前檔案的歷史記錄
5。Revert 還原當前被修改的檔案到未被修改的版本狀態下
下方的日誌資訊顯示:
1。Local Changes 本地修改過的檔案都會出現在這裡
2。Repository svn倉庫所有提交記錄
3。Incoming 本地還沒有更新的別人提交的程式碼
2。4。2 IDEA 下SVN使用
2。4。2。1 share project
2。4。2。2 checkout
2。4。2。3 add commit update
2。4。2。4 ignor:選擇上傳時忽略的檔案或資料夾
2。4。2。5 解決衝突
三、 SVN規範
3。1 SVN目錄規範
3。2 分支與標記
3。2。1。分支或標記規範
分支的定義規則:Project name+日期時間+功能點
Tags的定義規則:Project name+版本號 版本號定義為三段數字 編號 xxx。xxx。xxx 第一個:革命性的產品升級版 第二個:新功能版 第三個:修正bug
3。2。2 打分支或標記
Tags一般是隻讀,它代表的是釋出的版本,所以我們不要進行改變。
3。3 主幹與分支或標記的合併
3。3。1 主幹合併到分支