- 核心概念
- 生命週期
- 具體用法
- 分支
- 版本回退
核心概念
SVN是一個開源的版本控制系統,也就是說 Subversion 管理著隨時間改變的資料。 這些資料放置在一箇中央資料檔案庫(repository) 中。 這個檔案庫很像一個普通的檔案伺服器, 不過它會記住每一次檔案的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏覽檔案的變動歷史。
- repository(原始碼庫):原始碼統一存放的地方
- Checkout(提取):當你手上沒有原始碼的時候,你需要從repository checkout一份
- Commit(提交):當你已經修改了程式碼,你就需要Commit到repository
- Update (更新):當你已經Checkout了一份原始碼, Update一下你就可以和Repository上的原始碼同步,你手上的程式碼就會有最新的變更
日常開發過程其實就是這樣的(假設你已經Checkout並且已經工作了幾天):Update(獲得最新的程式碼) -->作出自己的修改並除錯成功 --> Commit(大家就可以看到你的修改了) 。
如果兩個程式設計師同時修改了同一個檔案呢, SVN可以合併這兩個程式設計師的改動,實際上SVN管理原始碼是以行為單位的,就是說兩個程式設計師只要不是修改了同一行程式,SVN都會自動合併兩種修改。如果是同一行,SVN會提示檔案Confict, 衝突,需要手動確認。
生命週期
- 建立版本庫
- 檢出(checkout)
- 更新(update)
- 執行變更
- 複查變化
- 修復錯誤,revert操作重置對工作副本的修改
- 解決衝突
- 提交更改
手動建立版本庫
首先,在服務端進行SVN版本庫的相關配置
手動新建版本庫目錄
mkdir /opt/svn複製程式碼
利用svn命令建立版本庫
svnadmin create /opt/svn/runoob複製程式碼
使用命令svnserve啟動服務
svnserve -d -r 目錄 --listen-port 埠號複製程式碼
1、開啟visualSVN,選擇server manager,(視覺化工具)
2、一個伺服器,多個客戶端。
3、repositories(版本庫),點選右鍵新建版本庫--->regular FSFS repository-->下一步--》給版本庫起名字--》下一步--》設定許可權--》customize permissions--》新增成員--》所有成員可以讀寫--》選人--》記錄版本庫路徑--》單擊倉庫名賦值版本庫地址--》客戶端根據地址拉取資料--》建立使用者
4、獲取伺服器資源--》進入某個資料夾下,點選右鍵-》SVN檢出--》輸入版本庫地址--》檢出深度--》全遞迴--》最新版本,也可以選擇某個過去版本,從顯示日誌裡查取
5、在目錄下新增檔案,做出修改,然後右擊檔案--》SVN提交
6、更新命令,多人操作時,需要在提交之前時,更新檔案
7、版本回溯:右擊具體檔案,找到與前一版本比較,就會出現兩個版本的不同點,右鍵選擇更新至版本,選擇具體版本
8、衝突問題
不同的人對同一檔案的不同修改會導致衝突,SVN會把兩種修改放在一個地方,分別用箭頭表示版本,手動解決衝突,再提交
9、檔案被鎖定後,不可再更新提交,可以解除鎖定
10、可以使用編輯器自帶工具進行操作,不需要客戶端了,需要伺服器,hbuiilder裡工具--》安裝--》外掛安裝--》SVN外掛,空白地方--》右鍵--》匯入--》SVN--》從SVN檢出專案--》選擇版本庫地址--》建立新的資源庫地址--》設定新建的資料夾,檔案修改後,右鍵--》選擇版本管理,提交