SVN使用幫助完整版課件_第1頁
SVN使用幫助完整版課件_第2頁
SVN使用幫助完整版課件_第3頁
SVN使用幫助完整版課件_第4頁
SVN使用幫助完整版課件_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

內容概要1問題與案例SVN簡介Linux版Windows版問題與案例(一)2電腦發(fā)生故障,文件沒有備份而丟失了由于人員離職,導致某些資料丟失了我怎么知道手頭的公共資料是不是最新版呢?想要追溯幾個月前的某個狀態(tài),卻發(fā)現(xiàn)那個版本的文件已經(jīng)被當作垃圾刪除了每天要花費很多時間來向別人提供需要共享的資料問題與案例(二)3相似的應用系統(tǒng),每次都重復開發(fā),難以復用一個軟件被用于多個項目,發(fā)現(xiàn)其中存在一個BUG,所有這些項目都要進行修復人員分布在兩地開發(fā),版本如何同步甲乙兩人為不同目的修改了同一份文件,乙的提交在甲提交之后,導致甲修改的內容丟失了客戶測試發(fā)現(xiàn)了BUG,開發(fā)人員卻無法重現(xiàn)出來SVN圖例Ba4ckSVN

簡介(一)SVN簡介(二)一個開源的版本管理軟件可架設在Apache上,使用http或https協(xié)議訪問;也可使用內置的svn協(xié)議訪問在Windows環(huán)境下,最常用的客戶端為TortoiseSVN(簡稱TSVN)在Linux/Unix環(huán)境下,用命令行方式操作SVN的版本號指的不是某個文件的狀態(tài),而是整個庫的狀態(tài)Ba5ckLinux

SVN服務器幫助手冊svn使用基本流程查詢操作定義操作編輯操作—系統(tǒng)環(huán)境說明二 svn客戶端操作三注意事項6Linux系統(tǒng)環(huán)境說明7公司linux

svn服務器IP地址為1

,服務器名字:dept5svn。操作系統(tǒng)版本.Red

Hat

Enterprise

Linux

Server

release5.4(Tikanga),32位。內核版本:2.6.18-164.el5xen軟件環(huán)境:apache2.4.1,subversion

1.7.0,sqlite3.7.0.客戶端操作8(一)svn使用基本流程:初次checkout倉庫項目,建立本地工作拷貝目錄與項目同步(update),保證要進行的編輯時最新版本 編輯源代碼(包括創(chuàng)建,修改,刪除)、與項目同步,提交之前要同步到最新版本,保證所有在自己之前的有關提交已經(jīng)在本地有所知曉解決沖突(resolve

conflict)提交(commit),一定要寫上這次提交的內容的摘要,便于以后查閱(二)查詢操作1.將文件checkout到本地目錄通過瀏覽器查詢,輸入1/svn/smqv600/,在第一次訪問時,輸入svn賬號和密碼,成功驗證后會彈出如下圖示9(二)查詢操作2.查看文件或目錄狀態(tài)svnstatuspath(目錄下的文件和子目錄狀態(tài),正常狀態(tài)不顯示)狀態(tài)說明【?:不在svn的控制中;M:內容被修改;C:發(fā)生沖突;A:預定加入到版本庫;K;被鎖定】svnstatus–vpath(顯示文件和子目錄狀態(tài))第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最后一次修改的版本號和修改人。注:svn

status,svndiff,和svnrevert這三條命令在沒有網(wǎng)絡的情況下也可以執(zhí)行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。在checkout后的項目目錄中輸入svn

status

–v.簡寫:svnst–v103.查看文件詳細信息在checkout后的項目目錄中輸入svn

info

path如svn

infotest.ph4.查看日志信息在checkout后的項目目錄中輸入svnlogpath例如:svn

log

test.php顯示這個文件所有修改記錄,及其版本號的變化115.比較差異svndiffpath(將修改的文件與基礎版本比較)在checkout后的項目目錄中輸入svn

diff

–r

m:n

path(對版本m和n比較差異)例如:輸入$svndiff–r2:4test.php6svn幫助在用戶svn命令可執(zhí)行的路徑下輸入

svnhelpsvn

help

ci如圖示127. svnlistpath顯示版本庫下的文件和目錄列表 簡寫:svn

ls8.svncat 輸出指定文件或URL的內容svn

cat

–r

PREV

filename

>filename

(PREV時上一版本,也可以寫具體版本號,這樣輸出結果是可以提交的)13(三)定義操作整個項目負責人具有項目定義的權限,因此這里簡單介紹下,項目庫定義的有關操作及說明1.創(chuàng)建項目:$svnadmincreate –-fs-type

fsfs

/home/svn/repository/xxx,這樣就創(chuàng)建了xxx目錄,其下還有許多輔助目錄如圖說明/home/svn/repository/xxx/conf

時這個項目配置文件存放地方/home/svn/repository/xxx/hooks是hooks腳本的存放位置142.項目布局:有實踐經(jīng)驗,一個項目的生存周期也不是單線的,常常有些分支或者穩(wěn)定版發(fā)布或者特定功能實驗性加入等事件,項目的布局需要進行一定設計來支持這些事件,官方指導建議布局為Project/trunkProject/branchesProject/tag項目主體存放位置項目各種分支存放公開發(fā)布的版本存檔雖然官方提供svn

mkdir等命令逐一建立,然后提交。但本人建議一種比較簡便的方法,輸入如下語句:cd

/home/svn/repository/xxxmkdirtrunk;mkdirbranches;mkdirtagssvn

import.file:///home/svn/repository/xxx/

,注意它會自動調用vim編輯器,在編輯狀態(tài)下輸入此次操作的信息如:’Initialrepositorylayout’如圖所示:15導入過程如圖:16實現(xiàn)過程例如文件的配置,賬號的建立和權限的控制,鑒于篇幅和實際工作環(huán)境中的需求,在此不作累述。如有疑問可咨詢IT中心項目的刪除,注意不是倉庫的清空。簡單的把項目目錄刪除就可以了rm–rf/home/svn/repository/xxx17(四) 編輯操作1.

在項目目錄中,創(chuàng)建文件,目錄

執(zhí)行svnaddtest.php(添加test.php)svnadd*.php(添加當前目錄下所有的php文件) svnaddtest(目錄)2.

將改動的文件提交到版本庫如執(zhí)行svncommittest.php 簡寫為svnci提交整個目錄183.加鎖/解鎖svnlock–m“l(fā)ocktest.phpfile”test.php為了方便編輯和管理控制,服務器端數(shù)據(jù)庫沒有開放lock。如有特殊需要,可以向IT中心咨詢svnunlocktest.php4.更新到某個版本svnupdate–rmpath(簡寫svnup)例如:svn

uptdate如果后面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本svnupdate-r9test.php(將版本庫中的文件test.php更新到版本9)注意svn

update

test.php(更新,于版本庫同步。如果在提交的時候提示過期的話,是因為沖突,需要先update,修改文件,然后清除svn

resolved

,最后再提交

commit)19后再svn

ci–m

‘deletetest.php’5.恢復本地修改svn

revert:恢復原始未改變的工作副本文件(恢復大部分的本地修改)。本子命令不會存取網(wǎng)絡,并且會解除沖突的狀況。但是它不會恢復被刪除的目錄用法svnreverttest6.刪除文件svn

delete

path

–m

“delete

test

file”例如:svn

delete

1/svn/smqv600/test.php–m

“deletetest.php”或者直接

svn

deletetest.php

然簡寫為:

svn

(del,remove,rm)或者20三注意事項21

在用瀏覽器進行訪問的時候,要正確輸入

1/svn/,而如果輸入1/svn則會報錯http404未找到在linux客戶端操作下,客戶端在svn進行編輯操作可能會出現(xiàn)“svn:無法使用外部編輯器獲得日志信息,考慮設置環(huán)境變量$SVN_EDITOR或者使用—message(-m)或—file(-F)選項………..”這是只要設置環(huán)境變量如下$exportSVN_EDITOR=vim

就可以了!Windows版本22應用環(huán)境客戶端安裝簡單應用復雜應用應用環(huán)境服務器端:Virsual的SVN服務器端安裝包(內含Apache2.2.22)Windows客戶端:推薦使用TortoiseSVN(以下簡稱TSVN)可通過TSVN進行讀、寫操作可通過IE瀏覽器進行讀操作可通過各種插件與開發(fā)工具集成Ba23ck客戶端安裝(一)安裝文件:TSVN客戶端:TortoiseSVN-2459-win32-svn-1.7.2全部選擇默認安裝,安裝完成后重啟電腦TSVN通過右鍵菜單與Windows資源管理器集成,沒有自己的窗口界面Ba24ck客戶端安裝(二)TSVN通過右鍵菜單與Windows資源管理器集成,沒有自己的窗口界面Ba25ck簡單應用TSVN右鍵菜單與圖標創(chuàng)建版本庫檢出更新提交增加刪除改名移動Ba26ckTSVN右鍵菜單(一)第一次從服務器下載數(shù)據(jù)(含歷史信息)查看服務器上版本庫內容從服務器下載數(shù)據(jù)(不含歷史信息)在服務器上創(chuàng)建新的版本庫(限服務器上操作)導入新版本庫的目錄結構(不推薦使用)Ba27ckTSVN右鍵菜單(二)從服務器上

下載最新版本將本地的修改上傳到服務器查看修訂歷史信息標記沖突已經(jīng)被解決取回之前的某個版本SVN控制下的改名和刪除將新文件納入SVN的控制創(chuàng)建分支或標記放棄本次進行的修改合并分支Ba28ckTSVN圖標Ba29ck創(chuàng)建版本庫在SVN服務器端操作在相應文件夾內新建一個文件夾,用于存儲數(shù)據(jù)在新建文件夾上點右鍵,選擇“TortoiseSVN-在此創(chuàng)建版本庫”,TSVN會在此文件夾內建立若干控制文件Ba30ck檢出(一)“檢出”用于客戶端第一次從SVN服務器上下載版本庫數(shù)據(jù)在客戶端新建一個文件夾用于存放下載的數(shù)據(jù)在新建文件夾上點右鍵,選擇“SVN檢出…”Ba31ck檢出(二)在彈出窗口的“版本庫URL”處填入版本庫的訪問地址,如:

22/svn/project/點“確定”開始從SVN服務器下載數(shù)據(jù)Ba32ck更新“更新”用于客戶端從SVN服務器下載最新版本–在受SVN控制的某層文件夾上(或文件夾內空白處)點右鍵,選擇“SVN更新”,TSVN自動比較該文件夾客戶端與服務器的版本差異,并下載最新版本到客戶端Ba33ck提交(一)“提交”用于將客戶端的改動上傳到SVN服務器–在受SVN控制的某層文件夾上(或文件夾內空白處,或某文件上)點右鍵,選擇“SVN提交…”Ba34ck提交(二)TSVN自動檢查該文件夾客戶端的改動,并將其列在彈出窗口的“變更列表”欄在彈出窗口的“信息”欄寫上對此次提交的注釋,以便將來追溯點擊“確定”將客戶端的改動上傳到服務器Ba35ck增加(一)“增加”用于將新文件或文件夾納入SVN的控制之下–在受SVN控制的某層文件夾上(或文件夾內空白處,或新增的某文件上)點右鍵,選擇

“TortoiseSVN-增加”Ba36ck增加(二)–如果“增加”是對文件夾進行操作,則會彈出窗口列出該文件夾下未受控的文件,點擊“確定”將其納入SVN控制變–

“增加”后文件圖標從

成“增加”僅是對客戶端的文件進行標注,并不上傳到服務器,需要執(zhí)行“提交”操作才會上傳Ba37ck刪除(一)“刪除”用于從當前版本中刪除文件或文件夾在受SVN控制的文件夾中,通過Windows直接刪除子文件夾或文件或:在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN-刪除”Ba38ck刪除(二)“刪除”僅是對客戶端的文件進行操作,并不改變服務器上的內容,需要執(zhí)行“提交”操作才會將刪除操作上傳到服務器將“刪除”操作“提交”到服務器后,僅是從服務器的最新版本中刪除了此文件或文件夾,在歷史版本中仍可找回此文件或文件夾Ba39ck改名(一)“改名”用于在受SVN控制的狀態(tài)下,對文件或文件夾改名–在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN-改名”Ba40ck改名(二)“改名”僅是對客戶端的文件進行操作,并不改變服務器上的內容,需要執(zhí)行“提交”操作才會將改名操作上傳到服務器不要用Windows“重命名”來實現(xiàn)改名,因為這個操作不受SVN控制,SVN會將其理解為刪除原文件、增加一個新文件,從而導致文件改名后不能跟蹤到改名前的狀態(tài)Ba41ck改名(三)改名的另一種方法:在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN-版

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

不能跟蹤到移動前的狀態(tài)Ba44ck復雜應用更新至版本還原復原(回滾)沖突及解決分支/標記合并鎖定/解鎖權限管理Ba45ck更新至版本“更新至版本”用于取出文件的某歷史版本在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN-更新至版本…”在彈出窗口中填寫要取的版本號,點“確定”取回該版本Ba46ck還原(一)“還原”用于放棄“增加”、“刪除”、“改名”以及修改文件內容等客戶端的本地操作,將客戶端的數(shù)據(jù)恢復到改動前的版本狀態(tài)–在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN-SVN還原…”Ba47ck還原(二)–在彈出窗口中查看要還原的內容,點擊“確定”還原客戶端數(shù)據(jù)“還原”只能用于執(zhí)行“提交”操作之前,即未將客戶端的改變上傳到服務器之前Ba48ck復原(回滾)(一)復原(回滾)用于將項目恢復到之前的某個版本狀態(tài),并在此版本基礎上繼續(xù)后面的工作–在受SVN控制的某層文件夾或文件上點右鍵,選擇“TortoiseSVN-顯示日志”Ba49ck復原(回滾)(二)在彈出的日

志窗口中,

右鍵點擊要

復原的版本,選擇“復原到此版本”復原結束后,執(zhí)行“提交”操作,將此版

本作為版本

庫的最新版本Ba50ck沖突及解決(一)沖突的產(chǎn)生:–當兩人從同一個版本出發(fā),修改同一份文件并提交時,這兩個修改版本就會發(fā)生沖突,后提交的人會收到發(fā)生沖突的提醒,且提交失敗,要求先進行更新操作Ba51ck沖突及解決(二)113114115113114115不會導致沖突Ba52ck可能導致沖突沖突及解決(三)發(fā)生沖突后,執(zhí)行“更新”操作后:對于發(fā)生沖突的文件,TSVN會加上沖突標記如果發(fā)生沖突的文件是二進制文件(如doc文件、jpg文件),TSVN會增加2個文件,分別是起始版本和發(fā)生沖突的版本如果發(fā)生沖突的文件是文本文件(如c文件、txt文件),TSVN會將工作副本中的原文件改名增加“.mine”后綴,將兩個版本的沖突寫入原名文件(文件中用<<<<<<<、=======、>>>>>>>加以標識),并另外增加2個文件,分別是起始版本和發(fā)生沖突的版本Ba53ck沖突及解決(四)例如:兩人從第213版開始對start.c和SRS.doc進行修改,甲先修改完成并提交形成217版,乙隨后提交時發(fā)生沖突,則在乙的該文件夾下將會存在七個文件:start.c:自動合并了甲和乙的修改內容的start.cstart.c.r213:甲乙修改前的start.cstart.c.r217:甲修改后的strat.cstart.c.mine:乙修改后的start.cSRS.doc:乙修改后的SRS.docSRS.doc.r213

:甲乙修改前的SRS.docSRS.doc.r217:甲修改后的SRS.docBa54ck沖突及解決(五)解決沖突:手工將前一版本中的修改整合到自己的文件中在沖突的文件或文件夾上點右鍵,選擇“Tortoise-已解決的…”,標記為沖突已解決(此時會自動刪除多余的文件),然后再次“提交”Ba55ck分支/標記(一)分支:“分支”通常用于在不同的線上同時工作的情況“分支”通常設置為分支的所有者擁有讀寫權限,其他人員僅有讀取權限標記“標記”通常用于版本發(fā)布、標識基線狀態(tài)等情況“標記”通常設置為配置管理員擁有讀寫缺陷,其他人員只有讀取權限SVN使用同樣的操作進行“分支”和“標記”Ba56ck分支/標記(二)推薦的目錄結構projecttrunk代碼文檔branchestagsBa57ck分支/標記(三)案例一709XXX軟件711A版712B版713C版714718720726717719722727716721728715723724730710Release_V1_0725Release_V1_1tags標記trunk主干branches分支729Ba58ck分支/標記(四)案例二711XXX軟件713V1_0維護715717719…714716718720712Release_V1_01012Release_V2_0tags標記trunk主干branches分支10111013V2_0維護…Ba59ck分支/標記(五)案例三712XXX軟件713BUG037717718720721714715716719trunk主干branches分支722發(fā)現(xiàn)BUG,編號037Ba60ck分支/標記(六)創(chuàng)建分支在受SVN控制的某層文件夾上點右鍵,選擇“TortoiseSVN-分支/標記…”在彈出窗口的“至URL”欄,填寫分支的存放地址,通常將其存放到

branches目錄下,并加上分支的名稱,如:http://5:8080/svn/軟件中心/project/tags/Release_V1_0Ba61ck分支/標記(七)創(chuàng)建分支在彈出窗口的“從此復制到版本庫”處選擇從“最新版本”或“指定版本”或“工作副本”(工作副本可能是個混合版本)復制在彈出窗口的“日志信息”欄填寫注釋信息,然后點擊“確定”在對應的文件夾執(zhí)行“更新”操作,下載分支到客戶端,之后對分支的操作均在此文件夾進行Ba62ck分支/標記(八)創(chuàng)建標記創(chuàng)建標記與創(chuàng)建分支類似,只是通常將其存放到tags目錄下,如:

5:8080/svn/軟件中心/project/tags/Release_V1_0標記實際是為某個版本做了個標簽,不會為另存一份而消耗服務器的存

儲空間Ba63ck合并(一)合并:對兩個版本樹進行比較,然后將區(qū)別應用到本地副本(合并后需進行“提交”操作)例如:在分支A上進行了一系列修改,現(xiàn)在要將這些修改合并到主干上,則可比較建立A分支的版本與A分支最終版本之間的差異,并將差異應用到主干上可從分支合并到主干,也可從主干合并到分支,也可從分支A合并到分支B可選擇合并創(chuàng)建分支以來的所有改變,也可選擇合并創(chuàng)建分支以來的某幾個

版本的改變Ba64ck合并(二)在目標文件夾上點右鍵,如要將“branches/工行

版”分支的內容合并到主干上,則在“trunk”文件夾上點右鍵,選擇“Tortoise-合并…”在彈出窗口選擇“合并一個版本范圍”(常用選擇)點擊“下一條”Ba65ck合并(三)在“合并的源URL”處選擇要合并進來的分支地址,如:

5:8080/svn/軟件中心/project/branches/工行版在“待合并的版本范圍”處填入合并的版本范圍,可點擊邊上的“顯示日志”選擇版本點擊“下一條”Ba66ck合并(四)合并深度選擇默認的“工作副本”“比較空白字符”、“忽略空白字符的變化”等選擇用于對文本文件的比較“測試合并”可在正式合并之前測試合并結果,比如是否存在沖突等點擊“合并”若未發(fā)生沖突,可在合并后執(zhí)行“提交”操作Ba67ck合并(五)若合并時發(fā)生沖突,通??稍趶棾龃翱谶x擇“以后解決”,在本地副本中沖突的文件處將增加2個文件(對二進制文件)或3個文件(對文本文

溫馨提示

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

評論

0/150

提交評論