簡介
版本控制分爲多人協作與個人作業兩種。
多人協作
多人協作版本控制需要有一個服務器建立倉庫repository來保存、管理不同的版本,其作用細分爲建立項目,建立用戶,管理權限,分組控制等。服務器建立的用戶包含用戶名和密鑰,用於遠程用戶登陸。服務器倉庫repository使用VisualSVNservice建立,客戶端文件使用TortoiseSVN建立。
服務器搭建
- 下載VisualSVNservice,安裝
- 打開VisualSVNserviceManager
*右擊Repositorise選擇create new repository
此處有兩個選項
建立服務器倉庫repository - FSFS
- 選擇FSFS選項,點擊下一步會提示輸入repository name
- 下一步選擇empty repository即可
- 下一步保持默認,create即可,可以在建立之後修改權限
- 建立test後,如下
建立用戶
- 右擊Users選項
- 選擇create user
輸入需要加入此項目的用戶和密鑰
建立組group
- 右擊Groups,選擇create group
- 輸入group的名字,點擊add按鈕可以把之前建立的用戶加入到group中
項目人員分配
- 右擊test選擇properties
- 點擊add,可以添加group和user,添加之後可以在permissions處修改權限
服務器地址
- 右擊test選擇copy URL to Clipboard,把這個鏈接發給參與的user即可。
注意:複製之後格式是 { http://XXX-PC/svn/test/ },當所有成員都在同一個局域網中時,可以通過用戶名直接查找到的,但是若不是同一局域網需要把用戶名改成服務器的IP地址{http://192.168.XXX.XXX/svn/test/}即可。
服務器物理存儲
- 右擊test選擇properties
- 選擇details可以查看存儲位置等信息
如Path: G:\Repositories\test打開此位置可以查看到此文件夾。
到此服務器端倉庫Repositories建立完成
客戶端文件搭建
- 下載TortoiseSVN,安裝,安裝完成對文件夾右擊會有兩個選項
- 和服務器連接需要先選擇需要存放和同步文件的位置,需要一個文件夾如下,可根據自己需要選擇合適的文件夾
- 右擊該文件夾選擇SVN checkout…出現下面對話框
在URL of repository輸入框中輸入服務器的地址{ http://XXX-PC/svn/test/ }
checkout directory 輸入框中是當前文件夾位置,其它可以保持默認即可。
OK即可。
如果提示輸入用戶的話,輸入服務器建立的用戶名和密鑰。
加入文件
- 向該文件夾加入文件,若此文件需要上傳到服務器,需要添加上傳,操作爲選中文件右擊選add即可
add之前文件狀態
add之後文件狀態
文件夾之前狀態
add之後狀態
添加文件上傳服務器
- 右擊文件夾選擇SVN Commit…
- 在recent message輸入框中加入修改信息,方便自己和其他用戶查看修改信息,changes mode輸入框中可以選擇要上傳的文件。
showlog可以查看修改歷史
OK即可。
文件狀態
* 此時的visualSVN server狀態*
更新文件,保持與服務器同步
如果其它user上傳了test3.txt文件,需要同步的,通過以下操作:
* 右擊文件選擇SVN update
OK即可。
此時文件夾更新爲
服務器狀態
不同的客戶端可以通過以上方法上傳和下載服務器端的文件。showlog功能可以查看修改信息。
更改登陸用戶
tortoiseSVN在一臺電腦上默認只輸入一次用戶登陸信息,系統會自動記錄此次的登陸信息,若再次在本電腦上建立新文件夾,SVN checkout下載文件,是不會要求你重新輸入用戶名和密鑰的,默認使用之前記錄的用戶信息,若需要修改登陸用戶,要執行一下操作
* 同一臺電腦上兩個同一用戶名的文件夾
* 修改testSVN2的用戶爲zhou,選擇文件夾右擊->tortoiseSVN->settings
* 選擇saved Data ->clear
* 在出現的對話框中,勾選要清除的用戶,確定即可
* 此時再次對該文件夾執行 右擊->SVN Update,會出現新的用戶登陸信息,輸入新的用戶名和密鑰即可登陸。
衝突解決
多人協作,很容易出現衝突,TortoiseSVN提供了對應的解決方式。
衝突出現在,用戶沒用更新到最新文件,就修改了其它用戶已經修改過得文件,此時在上傳時即SVN commit…時會提示因爲衝突而無法上傳,需要打開衝突文件,解決衝突即可。
* 用戶wang首先修改testSVN文件夾下的test1.txt並上傳到服務器,同時用戶zhou修改testSVN2文件夾下的test1.txt並試圖上傳到服務器
* 上傳testSVN2文件夾時,檢測到了衝突conflicted
* 點擊showlog會出現,wang修改了此文件導致conflicted
* 點擊確定之後再次上傳,會出現test1.txt標紅
* 雙擊標紅的文件test1.txt,出現Edit界面
* 可以選擇文件塊右擊選擇放置位置,當然也可以手動編輯解決衝突
* 修改之後的文件,保存即可
* 此時上傳界面紅色文件標記已經消失,可以上傳了
常出現的標誌
無文件更新
文件被修改等待上傳
文件衝突
個人作業
只需要安裝有TortoiseSVN客戶端即可實現。這種模式下repository在自己電腦上建立
建立本地倉庫repository
*新建文件夾,執行一下操作
* 複製倉庫地址,建立文件上傳文件時使用,OK即可
建立本地上傳文件夾
- 建立同步上傳文件夾localUser,右擊->SVN Checkout…
*在出現的對話框中輸入之前建立倉庫的地址即可
若之前未複製倉庫地址可以通過,右擊倉庫文件夾->TortoiseSVN->Repo-browser,查看
對本地上傳文件夾的使用方法同服務器中的本地文件夾使用方法一致
說明:
1. 倉庫repository建立之後,不需要修改,通過客戶上傳和同步自動修改。
2. 服務器和客戶端可以在同一臺機器上,但是客戶端和服務器是獨立的,客戶端需要用戶名和密鑰登陸。