配置管理CM(Configuration Mangerment)
一、配置管理工具SVN的介紹
---Subversion
---是一個開放源代碼的版本控制系統
---時下流行的SVN和GIT
每天開發人員從服務器上獲取最新的代碼——get
下班時提交代碼數據至服務器——commit
優點:方便大家共享資料
常見的一些TortoiseSVN圖標集
如果不使用配置管理工具的話會導致:
二、安裝配置管理工具SVN服務器
1、雙擊桌面上的SVN服務器安裝包
2、進入SVN服務器的安裝向導界面,點擊下一步
3、勾選“I accept the terms in the License Agreement”,點擊下一步
4、選擇第一個紅框內的“服務器和管理工具”並勾選第二個紅框內的“添加至環境變量”,點擊下一步
5、點擊“Standard Edition”(標准版)按鈕
6、進入此界面后,可自定義“服務器安裝路徑”和“版本庫安裝路徑”,端口號設置為:8443,設置好后點擊下一步
7、點擊“Install”按鈕,進行安裝操作
8、等待安裝完成
9、不要勾選上面兩個單選框,直接點擊Finish按鈕即可
10、進入SVN服務器安裝路徑下的bin目錄,找到svnserver.exe應用程序
**此處SVN服務器安裝完成
三、安裝配置管理工具SVN客戶端
1、雙擊桌面上的SVN客戶端安裝包
2、進入SVN客戶端安裝向導界面,點擊下一步
3、點擊下一步
4、可根據用戶需求自定義安裝路徑,點擊下一步
5、點擊“Install”按鈕,進行安裝操作
6、等待安裝完成
7、點擊“Finish”按鈕
**此處SVN客戶端安裝完成
四、在主機中添加文件上傳至SVN服務器中,並在客戶端中查看
1、SVN服務器和客戶端搭建完成后,鼠標在桌面/文件夾下右擊,出現如圖所示的菜單,這表明SVN服務器和客戶端都搭建完成
2、點擊開始——所有程序——VisualSVN Server Manager,啟動SVN服務器
3、進入SVN服務器界面
4、右擊Users,點擊“Create User...”,創建兩個新用戶即可
5、右擊Groups,點擊“Create Group...”,同樣創建兩個新組即可
6、右擊Repositorys,點擊“Create New Repository...”
7、進入下面添加版本庫向導,選擇第一個,點擊下一步即可
8、輸入版本庫名稱,點擊下一步即可
9、默認選擇第一個,點擊下一步
10、選擇第三個自定義權限,點擊“Custom...”按鈕
11、點擊Add按鈕,選擇需要添加權限的的用戶和組,點擊“ok”按鈕
12、對所添加的用戶和組賦予相應的權限,點擊確認鍵即可
13、設置好后,點擊create按鈕
14、進入下圖后,可以看到自定義賦予的權限,確保無誤后點擊“Finish”鍵,完成創建
**此處SVN服務器創建版本庫、用戶和組完成
15、此處可以看到之前所創建的版本庫test1訪問地址
16、鼠標右擊桌面/文件夾,選擇“TortoiseSVN”下的“Repo-browser”
17、輸入上面版本庫test1的訪問地址,點擊ok鍵
18、輸入之前所創建的用戶名和密碼,點擊ok鍵
19、進入SVN客戶端,可在客戶端中進行操作了
注:我們需要將登錄版本庫test1的默認用戶帳號清除,避免下次直接登錄
(1)點擊“TortoiseSVN”下的“Setings”按鈕
(2)進入設置界面,點擊“Saved Data”下的clean all按鈕,點擊確認鍵即可
(3)下次登錄時不要勾選“保存身份驗證”按鈕,避免直接登錄默認賬戶
20、接下來,我們在任意盤符位置出新建一個空文件夾zhangsan,如圖所示
21、打開文件夾,鼠標右擊選擇“SVN Checkout...”按鈕
22、進入下圖界面,上面一個紅框為test1版本庫的URL地址,下面一個紅框表示檢出的路徑,選擇好后,點擊ok鍵即可
23、輸入相應的用戶名和密碼,點擊ok鍵
24、彈出如圖所示的狀態提示信息,確認無誤后點擊ok鍵即可
25、此時會看到新建文件夾zhangsan圖標處有一個綠色的勾,表明文件夾檢出成功
26、打開該文件夾,新建一個.txt文件,如圖所示,圖標前面出現了一個問號,表明該文件無版本控制,需手動添加
27、右擊該文件,點擊“TortoiseSVN”下“Add”增加按鈕
28、此時圖標變成了一個“加號”,如圖所示
29、雙擊打開,任意編輯一些內容,保存並關閉
30、右擊文件,點擊“SVNCommit...”按鈕,上傳該文件至服務器
31、如圖所示,紅框內可添加一些備注信息(可有可無),添加好后,點擊ok鍵
32、出現狀態提示信息,點擊ok鍵
33、同樣,出現此圖標,表示修改的文件上傳至SVN服務器成功
34、接下來,分別登錄至客戶端和服務器查看
**上傳文件至SVN服務器成功
五、模擬客戶端之間的資料共享
接下來,模擬兩個用戶同時登錄到test1版本庫服務器,同時對一個文件進行操作
1、在剛才創建zhangsan文件目錄中再次創建另一個文件夾wangwu,(用上述檢出zhangsan文件夾的方式對文件夾wangwu進行檢出操作),並且用另一個帳號登錄
2、如圖所示,兩個程序員zhangsan和wangwu同時使用服務器下的文件進行操作
3、wangwu工作效率高,提前做完工作保存后,提交至服務器
4、zhangsan工作完,保存后提交至服務器
5、發現提交失敗,報錯,表明需要提前更新文件方能進行操作
6、接下來,zhangsan需要進行處理,解決沖突。右擊文件選擇“TortoiseSVN”下的“Edit conflicts”按鈕
7、進入下圖界面,右鍵選中所有的紅色字體,選擇下圖紅框內的選項(將wangwu的操作放在zhangsan的前面)
8、操作完成后,點擊界面中間的“√”,關閉頁面即可
9、再次提交,成功提交
**此處兩個重要的命令:“SVNUpdate”(更新)和“TortoiseSVN”下的“Edit conflicts”(解決沖突)
以后工作中要切記進行更新操作
1、zhangsan學聰明了,將文件夾鎖定起來進行操作,此時文件上增加了一把鎖的圖標
2、wangwu工作完后發現提交不了,得知被其他人鎖了,於是登錄到客戶端中查看鎖文件的人為:zhangsan
3、wangwu找zhangsan,讓其解鎖,wangwu好提交工作。zhangsan進行解鎖,右鍵文件夾選擇“TortoiseSVN”下的Release lock...按鈕,將文件解鎖
**鎖定文件夾命令:Get lock,解鎖的命令:Release lock
解鎖方式有兩種:用戶主動解鎖/用戶上傳文件至服務器后可自動解鎖
1、zhangsan用戶需要更改文件名,右擊文件
2、進入下圖界面,更改文件名,文件名變成“+”號
3、右鍵文件夾空白處(不要點擊文件名)選擇“SVNCommit...”,成功改名
**重命名命令:Rename
1、zhangsan修改文件后,發現做錯了,想回到之前的版本。對沒有上傳的文件進行操作,右擊文件夾空白處(不要點擊文件名)選擇“TortoiseSVN”下的“Revert...”按鈕
2、選擇上一版本文件后,點擊ok鍵。成功回到上版本
注:返回的只是當前客戶端的舊版本,如果服務器與客戶端不同步,也不會直接返回並與服務器同步。
**返回剛修改前的內容命令:revert
1、zhangsan想看當前文件修改的歷史記錄。右擊文件夾空白處選擇“TortoiseSVN”下的“Show log”
**查看當前文件修改的歷史記錄命令:Show log
1、zhangsan想刪除文件。右擊文件選擇“TortoiseSVN”下的“Delete”按鈕。刪除完,右擊文件夾空白處的“SVN Commit”,顯示文件狀態為deleted
**文件刪除命令:Delete
1、zhangsan用戶想導入文件至服務器。右鍵需要導入的文件所在文件夾下的空白處,選擇“TortoiseSVN”下的Import...
2、選擇目標版本庫的URL地址,點擊ok鍵
3、導入成功,點擊ok鍵
注:如果文件夾下只有一個文件,那么只會上傳單個文件,如果選中文件夾下有包含文件夾,會連文件夾一同上傳。
**導入命令:Import
1、zhangsan用戶想導出文件夾。右擊zhangsan文件夾下的空白處,選擇“TortoiseSVN”下的Export...
2、輸入目標版本庫的URL地址,點擊ok鍵
3、導出成功
4、文件上面沒有綠色小勾圖標,表明該文件與服務器無關聯
**導出命令:Export
1、zhangsan用戶想更新版本。右擊需要更新版本的文件,選擇“TortoiseSVN”下的“Update to revision...”
2、點擊“Show log”查看版本信息
3、選擇需要返回的版本,點擊ok鍵即可
4、顯示更新版本成功
**更新版本命令:Update to revision
***
diff(比對)
選中文件右擊,有三種模式
Previous version 與以前的版本進行比對
或者
選中兩個文件右鍵diff,比對兩個文件不同的地方
relocate(重新指向服務器的地址)
搬運服務器,ip變更后使用
tags(建立分支)/merge(合並分支)
多是開發使用
六、命令模式操作
1、創建版本庫開始菜單—cmd進入dos窗口
如圖所示,切換版本庫路徑E:\Reporsitories目錄下,輸入創建版本庫test2的命令:svnadmin create test2
2、版本庫創建完成之后,需要創建用戶、組以及配置對應的權限了
linux系統中直接cd 到對應配置文件目錄下,采用vi命令去編輯即可,此處還是以windows系統下進行操作講解。
如本機已創建一個Test2的倉庫:E:\Repositories\Test2,在conf文件夾下配置以下3個文件
1)svnserve.conf:SVN服務的配置文件,將以下配置取消注釋:
anon-access = non
auth-access = write
password-db = passwd
authz-db = authz
2)authz:存放用戶或組的權限(讀、寫),配置如下:
3)passwd: 存放用戶和密碼,如增加以下用戶和密碼
---以上3個文件的配置信息只針對通過svn://方式去訪問時才有效,通過http://或file://方式訪問時無效。
3、配置完成后,在cmd窗口啟動svn服務
Svnserve -d -r E:\Repositories\test2
-d 指服務作為一個獨立的端口監控進程
-r 即批定要暴露的倉庫路徑
如本機倉庫路徑為E:\Repositories\test2,那么客戶端svn訪問時只需采用如下地址即可訪問:svn://ip/test2,E:\Repositories 就不需要展示出來。(注意,ip后面不要跟端號)
4、右擊鼠標-》tortoise SVN ->Rebo - browse
在地址欄輸入:svn://T420-PC/Test2/,輸入authz文件中授權的用戶名和密碼登錄。
(T420-PC 是服務器的計算機名,通常客戶端訪問時是替換成該機器IP)
如圖所示,能成功登錄客戶端
注:在本地新建一個空文件夾,通過SVN客戶端將上述倉庫checkout到該文件夾中,能成功checkout代表配置無問題了。