SVN使用方法學(xué)習(xí)_第1頁
SVN使用方法學(xué)習(xí)_第2頁
SVN使用方法學(xué)習(xí)_第3頁
SVN使用方法學(xué)習(xí)_第4頁
SVN使用方法學(xué)習(xí)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、2021/3/271SVN使用指南Windows環(huán)境版2021/3/272內(nèi) 容 概 要 問題與案例 SVN簡介 應(yīng)用環(huán)境 客戶端安裝 簡單應(yīng)用 復(fù)雜應(yīng)用2021/3/273問題與案例(一) 電腦發(fā)生故障,文件沒有備份而丟失了 由于人員離職,導(dǎo)致某些資料丟失了 我怎么知道手頭的公共資料是不是最新版呢? 想要追溯幾個月前的某個狀態(tài),卻發(fā)現(xiàn)那個版本的文件已經(jīng)被當(dāng)作垃圾刪除了 每天要花費很多時間來向別人提供需要共享的資料Back2021/3/274問題與案例(二) 相似的應(yīng)用系統(tǒng),每次都重復(fù)開發(fā),難以復(fù)用 一個軟件被用于多個項目,發(fā)現(xiàn)其中存在一個BUG,所有這些項目都要進行修復(fù) 人員分布在兩地開發(fā),

2、版本如何同步 甲乙兩人為不同目的修改了同一份文件,乙的提交在甲提交之后,導(dǎo)致甲修改的內(nèi)容丟失了 客戶測試發(fā)現(xiàn)了BUG,開發(fā)人員卻無法重現(xiàn)出來Back2021/3/275SVN簡介(一)BackSVN2021/3/276SVN簡介 SVN是一個開源的版本管理軟件 可架設(shè)在Apache上,使用http或https協(xié)議訪問;也可使用內(nèi)置的svn協(xié)議訪問 在Windows環(huán)境下,最常用的客戶端為TortoiseSVN(簡稱TSVN)2021/3/277客戶端安裝 安裝文件: TSVN客戶端: TortoiseSVN-9260-win32-svn-1.6.11.msi TSVN中文語言包:

3、 LanguagePack_9260-win32-zh_CN.msi 全部選擇默認(rèn)安裝,安裝完成后重啟電腦 TSVN通過右鍵菜單與Windows資源管理器集成,沒有自己的窗口界面2021/3/278簡單應(yīng)用 TSVN右鍵菜單與圖標(biāo) 創(chuàng)建版本庫 檢出 更新 提交 增加 刪除 改名 移動2021/3/279TSVN右鍵菜單(一)Back第一次從服務(wù)器下載數(shù)據(jù)(含歷史信息)查看服務(wù)器上版本庫內(nèi)容從服務(wù)器下載數(shù)據(jù)(不含歷史信息)在服務(wù)器上創(chuàng)建新的版本庫(限服務(wù)器上操作)導(dǎo)入新版本庫的目錄結(jié)構(gòu)(不推薦使用)2021/3/2710TSVN右鍵菜單(二)Back從服務(wù)器上下載最新版本將本地的修

4、改上傳到服務(wù)器查看修訂歷史信息標(biāo)記沖突已經(jīng)被解決取回之前的某個版本放棄本次進行的修改SVN控制下的改名和刪除將新文件納入SVN的控制創(chuàng)建分支或標(biāo)記合并分支2021/3/2711TSVN圖標(biāo)Back2021/3/2712創(chuàng)建版本庫 在SVN服務(wù)器端操作 在相應(yīng)文件夾內(nèi)新建一個文件夾,用于存儲數(shù)據(jù) 在新建文件夾上點右鍵,選擇“TortoiseSVN在此創(chuàng)建版本庫”,TSVN會在此文件夾內(nèi)建立若干控制文件Back2021/3/2713檢出(一) “檢出”用于客戶端第一次從SVN服務(wù)器上下載版本庫數(shù)據(jù) 在客戶端新建一個文件夾用于存放下載的數(shù)據(jù) 在新建文件夾上點右鍵,選擇“SVN檢出”Back2021/

5、3/2714檢出(二) 在彈出窗口的“版本庫URL”處填入版本庫的訪問地址,輸入:點“確定”開始從SVN服務(wù)器下載數(shù)據(jù)Back2021/3/2715更新 “更新”用于客戶端從SVN服務(wù)器下載最新版本 在受SVN控制的某層文件夾上(或文件夾內(nèi)空白處)點右鍵,選擇“SVN更新”,TSVN自動比較該文件夾客戶端與服務(wù)器的版本差異,并下載最新版本到客戶端Back2021/3/2716提交(一) “提交”用于將客戶端的改動上傳到SVN服務(wù)器 在受SVN控制的某層文件夾上(或文件夾內(nèi)空白處,或某文件上)點右鍵,選擇“SVN提交”Back2021/3/2717提交(二) TSVN自動檢查該文件夾客戶端的改動

6、,并將其列在彈出窗口的“變更列表”欄 在彈出窗口的“信息”欄寫上對此次提交的注釋,以便將來追溯 點擊“確定”將客戶端的改動上傳到服務(wù)器Back2021/3/2718增加(一) “增加”用于將新文件或文件夾納入SVN的控制之下 在受SVN控制的某層文件夾上(或文件夾內(nèi)空白處,或新增的某文件上)點右鍵,選擇“TortoiseSVN增加”Back2021/3/2719增加(二) 如果“增加”是對文件夾進行操作,則會彈出窗口列出該文件夾下未受控的文件,點擊“確定”將其納入SVN控制 “增加”后文件圖標(biāo)從 變成 “增加增加”僅是對客戶端的文件進行標(biāo)注僅是對客戶端的文件進行標(biāo)注,并并不上傳到服務(wù)器不上傳到

7、服務(wù)器,需要執(zhí)行需要執(zhí)行“提交提交”操作才操作才會上傳會上傳Back2021/3/2720刪除(一) “刪除”用于從當(dāng)前版本中刪除文件或文件夾 在受SVN控制的文件夾中,通過Windows直接刪除子文件夾或文件 或:在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN刪除”Back2021/3/2721刪除(二) “刪除刪除”僅是對客戶端的文件進行操作僅是對客戶端的文件進行操作,并不并不改變服務(wù)器上的內(nèi)容改變服務(wù)器上的內(nèi)容,需要執(zhí)行需要執(zhí)行“提交提交”操操作才會將刪除操作上傳到服務(wù)器作才會將刪除操作上傳到服務(wù)器 將將“刪除刪除”操作操作“提交提交”到服務(wù)器后到服務(wù)器后,僅是僅

8、是從服務(wù)器的最新版本中刪除了此文件或文從服務(wù)器的最新版本中刪除了此文件或文件夾件夾,在歷史版本中仍可找回此文件或文件在歷史版本中仍可找回此文件或文件夾夾Back2021/3/2722改名(一) “改名”用于在受SVN控制的狀態(tài)下,對文件或文件夾改名 在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN改名”Back2021/3/2723改名(二) “改名改名”僅是對客戶端的文件進行操作僅是對客戶端的文件進行操作,并不并不改變服務(wù)器上的內(nèi)容改變服務(wù)器上的內(nèi)容,需要執(zhí)行需要執(zhí)行“提交提交”操操作才會將改名操作上傳到服務(wù)器作才會將改名操作上傳到服務(wù)器 不要用不要用Windows“重

9、命名重命名”來實現(xiàn)改名來實現(xiàn)改名,因因為這個操作不受為這個操作不受SVN控制控制,SVN會將其理解會將其理解為刪除原文件、增加一個新文件為刪除原文件、增加一個新文件,從而導(dǎo)致從而導(dǎo)致文件改名后不能跟蹤到改名前的狀態(tài)文件改名后不能跟蹤到改名前的狀態(tài)Back2021/3/2724改名(三) 改名的另一種方法: 在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN版本庫瀏覽器” 在彈出窗口右鍵點擊要改名的文件夾或文件,選擇“改名” 由于是對服務(wù)器版本庫直接操作,改名后將自動執(zhí)行一次“提交”操作 改名完成后需要在客戶端執(zhí)行一次“更新”,以下載最新狀態(tài)Back2021/3/2725移動

10、(一) “移動”用于在受SVN控制的狀態(tài)下,移動文件或文件夾的位置 在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN版本庫瀏覽器” 在彈出窗口拖動文件夾或文件到需要的位置 由于是對服務(wù)器版本庫直接操作,移動后將自動執(zhí)行一次“提交”操作 移動完成后需要在客戶端執(zhí)行一次“更新”,以下載最新狀態(tài)Back2021/3/2726移動(二) 不要用不要用Windows的拖動操作或的拖動操作或“剪切剪切”、“粘貼粘貼”來實現(xiàn)移動來實現(xiàn)移動,因為這些操作不受因為這些操作不受SVN控制控制,SVN會將其理解為在原位置刪除會將其理解為在原位置刪除文件、在新位置增加文件文件、在新位置增加文件,

11、從而導(dǎo)致文件移從而導(dǎo)致文件移動后不能跟蹤到移動前的狀態(tài)動后不能跟蹤到移動前的狀態(tài)Back2021/3/2727復(fù)雜應(yīng)用 更新至版本 還原 復(fù)原(回滾) 沖突及解決 分支/標(biāo)記 合并 鎖定/解鎖 權(quán)限管理Back2021/3/2728更新至版本 “更新至版本”用于取出文件的某歷史版本 在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN更新至版本” 在彈出窗口中填寫要取的版本號,點“確定”取回該版本Back2021/3/2729還原(一) “還原”用于放棄“增加”、“刪除”、“改名”以及修改文件內(nèi)容等客戶端的本地操作,將客戶端的數(shù)據(jù)恢復(fù)到改動前的版本狀態(tài) 在受SVN控制的某層文

12、件夾或文件上點右鍵,選擇“TortoiseSVNSVN還原”Back2021/3/2730還原(二) 在彈出窗口中查看要還原的內(nèi)容,點擊“確定”還原客戶端數(shù)據(jù) “還原”只能用于執(zhí)行“提交”操作之前,即未將客戶端的改變上傳到服務(wù)器之前Back2021/3/2731復(fù)原(回滾)(一) 復(fù)原(回滾)用于將項目恢復(fù)到之前的某個版本狀態(tài),并在此版本基礎(chǔ)上繼續(xù)后面的工作 在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN顯示日志”Back2021/3/2732復(fù)原(回滾)(二) 在彈出的日志窗口中,右鍵點擊要復(fù)原的版本,選擇“復(fù)原到此版本” 復(fù)原結(jié)束后,執(zhí)行“提交”操作,將此版本作為版

13、本庫的最新版本Back2021/3/2733沖突及解決(一) 沖突的產(chǎn)生: 當(dāng)兩人從同一個版本出發(fā),修改同一份文件并提交時,這兩個修改版本就會發(fā)生沖突,后提交的人會收到發(fā)生沖突的提醒,且提交失敗,要求先進行更新操作Back2021/3/2734沖突及解決(二)113114115113114115Back不會導(dǎo)致沖突不會導(dǎo)致沖突可能導(dǎo)致沖突可能導(dǎo)致沖突2021/3/2735沖突及解決(三) 發(fā)生沖突后,執(zhí)行“更新”操作后: 對于發(fā)生沖突的文件,TSVN會加上沖突標(biāo)記 如果發(fā)生沖突的文件是二進制文件(如doc文件、jpg文件),TSVN會增加2個文件,分別是起始版本和發(fā)生沖突的版本 如果發(fā)生沖突的

14、文件是文本文件(如c文件、txt文件),TSVN會將工作副本中的原文件改名增加“.mine”后綴,將兩個版本的沖突寫入原名文件(文件中用加以標(biāo)識),并另外增加2個文件,分別是起始版本和發(fā)生沖突的版本Back2021/3/2736沖突及解決(四) 例如:兩人從第213版開始對start.c和SRS.doc進行修改,甲先修改完成并提交形成217版,乙隨后提交時發(fā)生沖突,則在乙的該文件夾下將會存在七個文件: start.c:自動合并了甲和乙的修改內(nèi)容的start.c start.c.r213:甲乙修改前的start.c start.c.r217:甲修改后的strat.c start.c.mine:乙

15、修改后的start.c SRS.doc:乙修改后的SRS.doc SRS.doc.r213 :甲乙修改前的SRS.doc SRS.doc.r217:甲修改后的SRS.docBack2021/3/2737沖突及解決(五) 解決沖突: 手工將前一版本中的修改整合到自己的文件中 在沖突的文件或文件夾上點右鍵,選擇 “Tortoise已解決的”,標(biāo)記為沖突已解決(此時會自動刪除多余的文件),然后再次“提交”Back2021/3/2738分支/標(biāo)記(一) 分支: “分支”通常用于在不同的線上同時工作的情況 “分支”通常設(shè)置為分支的所有者擁有讀寫權(quán)限,其他人員僅有讀取權(quán)限 標(biāo)記 “標(biāo)記”通常用于版本發(fā)布、

16、標(biāo)識基線狀態(tài)等情況 “標(biāo)記”通常設(shè)置為配置管理員擁有讀寫缺陷,其他人員只有讀取權(quán)限 SVN使用同樣的操作進行“分支”和“標(biāo)記”Back2021/3/2739分支/標(biāo)記(二)推薦的目錄結(jié)構(gòu)Backprojecttrunkbranchestags代碼文檔2021/3/2740分支/標(biāo)記(三)案例一709XXX軟件軟件711工行版工行版712建行版建行版713農(nóng)行版農(nóng)行版714718720726717719722727716721728715723724730710Release_V1_0725Release_V1_1tags標(biāo)記標(biāo)記trunk主干主干branches分支分支729Back2021/

17、3/2741分支/標(biāo)記(四)案例二711XXX軟件軟件713V1_0維護維護715717719714716718720712Release_V1_01012Release_V2_0tags標(biāo)記標(biāo)記trunk主干主干branches分支分支10111013V2_0維護維護Back2021/3/2742分支/標(biāo)記(五)案例三Back712XXX軟件軟件713BUG037717718720721714715716719trunk主干主干branches分支分支722發(fā)現(xiàn)BUG,編號0372021/3/2743分支/標(biāo)記(六)創(chuàng)建分支 在受SVN控制的某層文件夾上點右鍵,選擇“TortoiseSVN分

18、支/標(biāo)記” 在彈出窗口的“至URL”欄,填寫分支的存放地址,通常將其存放到branches目錄下,并加上分支的名稱,如:新建目錄Back2021/3/2744分支/標(biāo)記(七)創(chuàng)建分支 在彈出窗口的“從此復(fù)制到版本庫”處選擇從“最新版本”或 “指定版本”或“工作副本”(工作副本可能是個混合版本)復(fù)制 在彈出窗口的“日志信息”欄填寫注釋信息,然后點擊“確定” 在對應(yīng)的文件夾執(zhí)行“更新”操作,下載分支到客戶端,之后對分支的操作均在此文件夾進行Back2021/3/2745分支/標(biāo)記(八)創(chuàng)建標(biāo)記 創(chuàng)建標(biāo)記與創(chuàng)建分支類似,只是通常將其存放到tags目錄下,如: 標(biāo)記實際是為某個版本做了個標(biāo)簽,不會為另

19、存一份而消耗服務(wù)器的存儲空間Back2021/3/2746合并(一) 合并:對兩個版本樹進行比較,然后將區(qū)別應(yīng)用到本地副本(合并后需進行“提交”操作) 例如:在分支A上進行了一系列修改,現(xiàn)在要將這些修改合并到主干上,則可比較建立A分支的版本與A分支最終版本之間的差異,并將差異應(yīng)用到主干上 可從分支合并到主干,也可從主干合并到分支,也可從分支A合并到分支B 可選擇合并創(chuàng)建分支以來的所有改變,也可選擇合并創(chuàng)建分支以來的某幾個版本的改變Back2021/3/2747合并(二) 在目標(biāo)文件夾上點右鍵,如要將“branches/工行版”分支的內(nèi)容合并到主干上,則在“trunk”文件夾上點右鍵,選擇“To

20、rtoise合并” 在彈出窗口選擇“合并一個版本范圍”(常用選擇) 點擊“下一條”Back2021/3/2748合并(三) 在“合并的源URL”處選擇要合并進來的分支地址,如:工行版 在“待合并的版本范圍”處填入合并的版本范圍,可點擊邊上的“顯示日志”選擇版本 點擊“下一條”Back2021/3/2749合并(四) 合并深度選擇默認(rèn)的“工作副本” “比較空白字符”、“忽略空白字符的變化”等選擇用于對文本文件的比較 “測試合并”可在正式合并之前測試合并結(jié)果,比如是否存在沖突等 點擊“合并” 若未發(fā)生沖突,可在合并后執(zhí)行“提交”操作Back2021/3/2750合并(五) 若合并時發(fā)生沖突,通常可在彈出窗口選擇“以后解決”,在本地副本中沖突的文件處將增加2個文件(對二進制文件)或3個文件(對文本文件) 手動解決沖突后,使用“Tortoise已解決的”標(biāo)記沖突已解決,然后執(zhí)行“提交”操作Back2021/3/2751鎖定/解鎖(一) 為了便于多人協(xié)作,SVN不提倡“鎖定修改解鎖”的方式 由于存在沖突解決的機制,通常多人可對同一份文件進行修改,而不會導(dǎo)致嚴(yán)重問題 但在某些情況下,比如對一張圖片進行修改時,兩份沖突的圖片文件將很難被

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論