SVN黑马程序员笔记
一、SVN概述
? SVN全稱SubVersion
? SVN是近年來崛起的版本管理工具,是CVS的接班人。目前,絕大多數軟件公司都使用SVN作為代碼版本管理軟件。
特點:操作簡單,入門容易
支持跨平臺(Window/Linux/MacOS)
支持版本回退功能(時間機器)
SVN軟件屬于C/S結構軟件(客戶端與服務器端)
服務端軟件:VisualSVN
網址:http://www.visualsvn.com/
客戶端軟件:TortoiseSVN
網址:http://tortoisesvn.net/downloads
二、SVN軟件安裝
1、SVN工作流程
2、服務器端軟件安裝(VisualSVN)
服務端軟件存儲于軟件/服務器端
1)雙擊服務端軟件安裝
2)下一步,繼續
3)下一步,繼續
4)下一步,繼續
5)下一步,繼續,安全完成。
三、SVN服務端配置
1、創建一個項目
① 首先在SVN服務器端創建一個公有目錄WebApp做為項目目錄
② 在WebApp目錄下創建Shop文件夾,做為Shop(版本倉庫)
③ 創建版本倉庫,基本語法:
svnadmin create Shop 文件夾路徑(Shop倉庫)
如果Shop倉庫配置成功,那么Shop文件夾會顯示以下目錄結構
2、進行服務端監管
Apachehttp://localhost或(ip地址)訪問到htdocs目錄下的相關文件(監管)
SVNsvn://localhost或(ip地址)訪問到相關數據倉庫(如Shop倉庫)
基本語法:
svnserve -d(后臺運行) -r(監管目錄) 版本倉庫目錄
如下圖所示:
通過以上指令,我們的svn://localhost或ip地址就可以直接指向Shop版本倉庫
3、權限控制
默認情況下,SVN服務器是不允許匿名用戶上傳文件到服務器端的,所以必須更改系統相關配置文件。
更改第19行代碼,去除前面的空格以及#號,更改其值為write(可讀寫)
四、SVN客戶端軟件安裝與使用
1、獲取軟件安裝包
2、客戶端軟件安裝步驟
① 雙擊軟件運行(TortoiseSVN)
② 同意許可協議,下一步:
③ 選擇默認安裝即可,下一步:
④ 下一步,Install,系統將會自動安裝SVN軟件,單擊Finish即可。
注:在TortoiseSVN客戶端軟件安裝完畢后,請一定要重啟計算機,否則SVN圖標是無法顯示的。
如果我們鼠標右鍵出現如下兩個圖標,代表我們已經安裝成功!
⑤ 安裝漢化包
雙擊運行安裝語言包,系統將會自動尋找之前TortoiseSVN軟件安裝目錄,并進行自動安裝,安裝完成后可以進行如下設置:
⑥ 使用客戶端軟件連接SVN服務器
(Checkout檢出)
首先在你的項目目錄鼠標右鍵TortoiseSVN版本庫瀏覽器輸出SVN服務器地址:
svn://SVN服務器地址 Shop項目(倉庫)
顯示隱藏文件
如果出現以上.svn隱藏文件夾,代表檢出成功。
五、SVN使用詳解(一)
1、回顧SVN三大指令
1)(Checkout)檢出操作:
① 鏈接到SVN服務器端
② 更新服務端數據到本地
注意:Checkout只在第一次鏈接時操作一次,以后如果進行更新操作請使用Update(更新指令)
2)(Commit)提交操作:
① 提交本地數據到服務器端
以上工作大部分是由項目經理完成的,那么如果公司新來一個程序員(李四),他需要做哪些操作呢?
1)檢出操作,效果如下:
2)Commit(提交),效果如下:
以上指令通常是在模塊開發完畢后上傳
3)項目經理(Update更新操作)
六、SVN使用詳解(二)
1、圖標集
1)常規圖標
含義:當客戶端文件與服務器端文件完全同步時,系統會顯示以上圖標
2)沖突圖標
含義:當客戶端提交的文件與服務器端數據有沖突,系統會顯示以上圖標
3)刪除圖標
含義:當服務端數據已刪除,那么客戶端該文件將顯示以上圖標
4)增加圖標
含義:當我們編寫文檔已添加到提交隊列,那么系統將自動顯示以上圖標
5)無版本控制圖標
含義:當我們編寫的文件沒有添加到上傳隊列,系統將自動顯示以上圖標
6)修改圖標
含義:當客戶端文件有修改但未提交,此時將自動顯示以上圖標
7)只讀圖標
含義:當客戶端文件以只讀形式存在時,將自動顯示以上圖標
8)鎖定圖標
含義:當服務端數據已鎖定,那么客戶端文件將自動顯示以上圖標
9)忽略圖標
含義:客戶端文件已忽略,不需要進行提交上傳,那么將自動顯示以上圖標
2、忽略功能
有些文件不希望上傳至svn服務器,應該將該文件或該類型的文件添加至忽略列表
1)忽略某個指定的文件
2)忽略某類型文件
七、SVN使用詳解(三)
1、什么是版本回退
有些時候,軟件的運行可能使開發者或使用者不滿意,這時我們需要把當前版本退回到以前的某個版本。
2、版本回退功能
① 在項目空白處鼠標右鍵,采用如下圖所示操作
根據日志進行版本回退
根據日志信息選擇要回退的狀態,效果如下圖所示
回退效果如下:
八、SVN使用詳解(四)
1、什么是版本沖突
在實際項目開發中,如果兩個人同時修改某個文件就會產生版本沖突問題。
2、模擬版本沖突
模擬以上過程,出現如下錯誤提示:
3、解決之道
1)合理分配項目開發時間
旺財 上午開發
小強 下午開發
2)合理分配項目開發模塊
旺財 購物車模塊
小強 文章模塊
3)通過SVN解決版本沖突問題
① 更新服務器端數據到本地
index.php :整合后的index.php文件
index.php.mine :小強修改后的index.php文件
index.php.r6 :09:00更新時的index.php(起始狀態)
index.php.r7 :旺財修改后的index.php文件
② 刪除除index.php以外的其他三個文件
③ 修改整合index.php沖突文件
④ 重新提交數據到SVN服務器端,即可解決版本沖突問題
九、配置多倉庫與權限控制
1、配置多倉庫
在實際項目開發中,我們可能會同時開發多個項目,那么我們如何進行多項目監管呢?
通過svnserve進行倉庫監管,但是監管指令只能監管某一個文件夾,而不能同時監管多個倉庫。
答:可以通過監管WebApp總目錄來達到監管所有倉庫的目的
svnserve -d(后臺運行) -r(監管目錄) WebApp(項目總目錄)① 打開DOS窗口,輸入如下指令
svn://localhost或ip地址來訪問D:/svn/WebApp目錄
如果需要訪問Shop項目、Wechat項目
Shop項目:svn://localhost/Shop
Wechat項目:svn://localhost/Wechat
2、權限控制
如果要使用權限控制有一個前提:必須首先開啟權限功能
在每一個倉庫中都有一個conf文件夾,里面有三個文件
authz文件:授權文件
告訴哪些用戶具有哪些權限
passwd文件:認證文件
標識當前svn系統中某個倉庫具有哪些用戶以及相應的密碼
默認情況下,以上兩個文件都是禁用的,如需要使用,首先要開啟以上兩個文件
svnserve.conf 配置文件
開啟步驟如下:
① 注釋匿名用戶的可讀寫權限
② 開啟認證文件與授權文件
③ 編寫認證文件定義相關用戶名與密碼
④ 編寫授權文件
⑤ 測試
輸入admin,admin888超級管理員
十、SVN服務的配置與管理
1、配置自啟動服務
sc create SVNService binpath= “D:\subversion\bin\svnserve.exe --service -r D:/svnroot” start= auto # 模板 sc create 服務名稱 binpath=空格”svnserve.exe –service –r D:/svn/WebApp” start=空格auto創建系統服務,服務名SVNService
① 打開運行,輸入cmd指令,打開DOS環境(請使用超級管理員運行)
② 輸入一下指令
③ 查看系統服務
控制面板管理工具服務
雙擊運行,啟動SVNService服務
如果運行成功代表開啟SVN監管服務。
2、創建批處理文件
啟動服務 net start 服務名稱
停止服務 net stop 服務名稱
刪除服務 sc delete 服務名稱
以上功能在實際項目開發中經常使用,所以可以封裝為.bat批處理文件,效果如下:
十一、模擬真實的開發環境
1、SVN工作流程
2、鉤子程序
所謂鉤子就是與一些版本庫事件觸發的程序,例如新修訂版本的創建,或是未版本化屬性的修改。
默認情況下,鉤子的子目錄(版本倉庫/hooks/)中包含各種版本庫鉤子模板。
post-commit.tmpl :事務完成后所觸發的鉤子程序
鉤子程序默認情況可以采用批處理指令或Shell指令來進行編寫
3、通過批處理指令編寫鉤子程序
① 指令svn服務端工作目錄
設置服務器端SVN路徑
② 指定Web服務器工作目錄
設置服務器端項目運行目錄
③ 通過update指令實時更新數據到DIR目錄中
SVN update %DIR%4、具體使用步驟
第一步:復制post-commit.tmpl為post-commit.bat文件
第二步:填入相關批處理指令
第三步:在apache目錄創建Shop項目并更新SVN服務端數據到本地
第四步:更新文件到SVN服務器端,可以在Shop目錄實時獲取到最新數據
第五步:可以通過虛擬主機形式直接訪問更新文件
總結
以上是生活随笔為你收集整理的SVN黑马程序员笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ciphertext-Policy At
- 下一篇: R02-javaWeb-ServletC