版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SVN使用手冊(cè)——命令行模式1SVN概述SVN的全稱Subversion,和VSS一樣用來有效地管理代碼和版本。同樣我們可以進(jìn)行修改、對(duì)比版本、獲得版本的歷史信息等操作。1.1SVN使用環(huán)境及安裝SVN的使用環(huán)境:SVN可在Linux系統(tǒng)使用,安裝系統(tǒng)時(shí)如果選擇了自帶Subversion,無需安裝即可使用命令行。Windows系統(tǒng)需安裝Subversion以便在命令行中使用SVN命令;也可安裝TortoiseSVN(“小烏龜”),不用敲SVN命令直接通過右鍵菜單執(zhí)行。目前北研所的SVN使用基于TCP/IP協(xié)議的Apache服務(wù)器,使我們可以通過http地址來訪問版本庫。平臺(tái)Linux系統(tǒng)Windows平臺(tái)操作方法命令行瀏覽器命令行界面/右鍵瀏覽器安裝方式安裝Linux的時(shí)候選擇“開發(fā)用”則自帶,否則需另安裝SVN包。無需安裝,直接在地址欄輸入版本庫的http地址安裝Subversion安裝TortoiseSVN(“小烏龜”)無需安裝,直接在地址欄輸入版本庫的http地址優(yōu)缺點(diǎn)能查看最新及歷史版本,能修改只能查看最新版本,不能修改能查看最新及歷史版本,能修改能查看最新及歷史版本,能修改,右鍵直接操作。只能查看最新版本,不能修改本文介紹在Windows平臺(tái)下SVN命令行工具svn的使用。安裝文件:Subversion——svn-1.4.6-setup.exeTortoiseSVN——TortoiseSVN-1647-win32-svn-1.4.6.rar文件的具體地址,請(qǐng)參考下文“2.1”章節(jié)的介紹。1.2SVN工作原理說明1.2.1版本庫(repository)SVN所有的數(shù)據(jù)都存儲(chǔ)在版本庫中并被任意客戶端用戶分享??蛻舳擞脩敉ㄟ^網(wǎng)絡(luò)連接到版本庫,讀寫這些文件并使其他人可以看到這些修改。1.2.2工作拷貝(workcopy)工作拷貝是版本庫中文件和目錄在本地的映射。用戶并行工作,各自修改本機(jī)的私有目錄和文件,最終把修改“提交”至版本庫成為最終的版本。一個(gè)工作拷貝中都會(huì)有一個(gè)“.SVN”管理目錄,用來記錄工作拷貝的信息、識(shí)別文件的狀態(tài)。由Subversion維護(hù),一般你不用去管它。注意:要及時(shí)刷新你的工作拷貝,將別人的修改更新到你的工作拷貝中,防止因你的工作拷貝中文件過期而浪費(fèi)時(shí)間和精力。1.2.3修訂版本(revision)版本庫接受一次“提交”,就會(huì)做一次修訂,并給最新版本賦予一個(gè)修訂版本號(hào),由0開始,逐次加1。修訂版本號(hào)類似于VSS中的lable標(biāo)號(hào),更像是一次“提交”后的版本庫的“快照”。1.2.4防止修改沖突的機(jī)制版本控制系統(tǒng)需要防止可能出現(xiàn)的修改沖突。而SVN和VSS的機(jī)制是不同的。VSS采用鎖定—修改—解鎖的模式保證某一時(shí)刻只有一個(gè)用戶修改文件。如圖,圖1.1-1:甲從版本庫checkout簽出同時(shí)鎖定文件;圖1.1-2:文件被鎖定乙無法簽出文件(checkout操作被拒絕);圖1.1-3:甲在本地修改好文件后將其checkin,服務(wù)器上的文件被更新,并同時(shí)解鎖;圖1.1-4:文件解鎖乙才能checkout簽出修改,文件被checkout后再次鎖定。SVN系統(tǒng)通過拷貝-修改-合并的模式來防止不小心覆蓋掉他人的修改。如圖,圖1.2-1:甲、乙下載同一版本庫的文件到本地工作拷貝各自進(jìn)行修改。圖1.2-2:提交修改時(shí)如果甲、乙的修改沒有交迭沖突(修改的是同一版本庫不同的文件,或者修改的是同一文件的不同部分),SVN會(huì)自動(dòng)合并這些修改到版本庫。圖1.2-3:如果甲、乙對(duì)同一文件的修改產(chǎn)生交迭(修改沖突),甲先提交后乙提交時(shí)SVN提示文件A處于沖突狀態(tài),這時(shí)乙需要跟甲進(jìn)行討論,再把手工合并的文件提交至版本庫。2申請(qǐng)JZBYSVN用戶名2.1申請(qǐng)用戶名的流程。沒有用戶名時(shí),可以用公共用戶名jzby(密碼jzby)練習(xí)SVN操作。3SVN的基本使用操作3.0進(jìn)入工作環(huán)境進(jìn)入命令行。開始—運(yùn)行—輸入cmd。運(yùn)行svn--version命令來檢查你的電腦是否安裝了Subversion。如果輸出顯示SVN版本信息即表明電腦已安裝Subversion,否則需下載安裝SVN包。確認(rèn)權(quán)限。方法一:在瀏覽器地址欄輸入6/svn,從版本庫列表中選中你要訪問的庫,輸入用戶名密碼,如果能打開,確認(rèn)你有這個(gè)庫讀的權(quán)限。方法二:在命令行中運(yùn)行svnlist命令查看版本庫根目錄下的目錄和文件列表。如下圖,查看是否具有TestProject庫的權(quán)限。在命令行任意路徑下,svnlist后面跟要查看的版本庫URL地址。如果查看失敗表明你沒有版本庫的讀權(quán)限。提示:在命令行中無論是輸入U(xiǎn)RL還是路徑都要注意區(qū)分大小寫,大小寫有誤會(huì)造成操作失敗。3.1萬能的help命令使用help命令來查詢svn的子命令以及子命令的各種用法會(huì)很方便。求助格式:1.svnhelp可以查到svn的用法和它所有可用的子命令。2.svnhelp[子命令](例如:svnhelpadd)可以查看該子命令的用法以及可以使用哪些選項(xiàng)參數(shù)。3.2基本的工作周期典型的工作周期如圖,3.3拷貝版本庫至工作拷貝(svncheckout)在E盤新建一個(gè)文件夾比如workcopy,用來存放各個(gè)版本庫的工作拷貝。舉例,拷貝測(cè)試庫TestProject到本地工作拷貝的步驟。切換命令行路徑至E:\workcopy>,使用命令svncheckout來取出拷貝。svncheckout命令后面跟版本庫或其子目錄的URL地址,再后面跟工作拷貝的名字。以上命令將取出的測(cè)試庫工作拷貝取名testcopy,放在E:\workcopy下。如果不指定工作拷貝的名字,默認(rèn)和版本庫同名并放在E:\workcopy下。打開workcopy,看是否有了相應(yīng)名字的文件夾。即為測(cè)試庫TestProject的工作拷貝。svncheckout還可添加--reverion(-r)參數(shù)獲得歷史版本。如下命令將測(cè)試庫修訂號(hào)為10的歷史版本,輸出到名為test10的工作拷貝。詳細(xì)使用說明請(qǐng)用svnhelpcheckout命令查看。如果輸入的版本庫或其子目錄的URL地址錯(cuò)誤就無法成功checkout。比如:輸入的URL地址丟掉了http://,錯(cuò)誤提示如下,所以一定要確認(rèn)svncheckout命令后的URL地址是正確的。如果checkout失敗,出現(xiàn)如下錯(cuò)誤提示,首先需要確認(rèn)你有沒有相應(yīng)的權(quán)限,然后可以在原命令后添加參數(shù)“--usernameXXX--passwordXXX”輸入你的用戶名密碼試試看。3.4修改、編輯文件文件內(nèi)容的修改——直接在工作拷貝中修改,不涉及到命令行操作。所做的修改如果不提交就只是在本地的修改,不會(huì)上傳版本庫。如果想更改版本庫目錄樹結(jié)構(gòu)——比如添加刪除等操作,就要使用svn命令(svnadd/delete/copy),在下文3.5章節(jié)中有詳細(xì)介紹。如果不使用svn命令,直接在工作拷貝中添加文件,那么SVN不會(huì)將其納入版本控制(工作拷貝的.SVN文件中不會(huì)管理此文件),即沒有添加到工作拷貝的版本管理中,更無法在commit時(shí)將這個(gè)變動(dòng)提交到版本庫。3.5添加文件和目錄(svnadd/svnmkdir)舉例,在測(cè)試庫TestProject根目錄中添加一個(gè)目錄calc。方法1:先直接在工作拷貝中新建calc文件夾,但是calc目錄還沒有納入版本控制。切換命令行路徑至E:\workcopy\TestProject>,使用svnadd添加新建的文件夾。svnadd命令后面跟要預(yù)定添加的目錄名。運(yùn)行輸出為Acalc,表示預(yù)定添加calc目錄到版本庫。方法2:切換命令行路徑至E:\workcopy\TestProject>,使用svnmkdir命令。svnmkdir命令后面跟要預(yù)定添加的目錄名。運(yùn)行結(jié)果為Acalc。此命令在工作拷貝中添加了calc目錄,并預(yù)定添加到版本庫中。3.6刪除文件和目錄(svndelete)舉例,刪除測(cè)試庫TestProject中calc目錄下的12.txt文本文件。使用如下svndelete命令。svndelete命令后面跟要預(yù)定刪除的文件路徑。運(yùn)行輸出為D12.txt,此命令在工作拷貝中刪除了calc\12.txt并預(yù)定從版本庫中刪除。3.7更新工作拷貝(svnupdate)更新工作拷貝,是比較本地.SVN里保存的原始工作拷貝和目前的版本庫,將版本庫中的改動(dòng)吸收到本地工作拷貝中來。應(yīng)當(dāng)及時(shí)更新你的工作拷貝,合并他人的修改。使用如下svnupdate命令來更新工作拷貝,通過運(yùn)行輸出顯示的文件狀態(tài)(大寫字母)來告訴你進(jìn)行了何種更新。簡(jiǎn)單舉例如下,Ucalc\911.txt文件911.txt被更新Gcasver.c文件casver.c接收了版本庫的更改,你的工作拷貝也做了修改,但不沖突,SVN自動(dòng)合并版本庫和本地文件。Cca_bdc.c對(duì)文件ca_bdc.c的本地修改和版本庫沖突,需要手工解決。如果版本庫和原始工作拷貝是一致的,則運(yùn)行結(jié)果只是提示版本庫的最新修訂版本號(hào)。更多svnupdate命令可能輸出的文件狀態(tài)請(qǐng)參看“附表1-1”其中A、D、U表明本地文件接受了版本庫的修改已經(jīng)更新;G表明本地的修改和版本庫的修改不沖突,已經(jīng)合并。但C表示沖突發(fā)生了,需要你進(jìn)行手工解決。3.8檢查你的修改(svnstatus)經(jīng)常會(huì)用到svnstatus命令來檢測(cè)你對(duì)文件和目錄的修改。和svnupdate命令不同,它比較的是你目前最新的工作拷貝和.SVN里面保存的原始工作拷貝。不會(huì)去聯(lián)系版本庫,所以不能知道版本庫的狀態(tài),只能看到本地的修改。svnstatus也可通過運(yùn)行輸出顯示的文件狀態(tài)來告訴你對(duì)原始工作拷貝進(jìn)行了怎樣的修改。簡(jiǎn)單舉例,?boo.txt表示boo.txt在工作拷貝中但并沒有納入版本控制D1/12.txt表示12.txt預(yù)定要從版本庫刪除Acalc/11.txt表示11.txt預(yù)定要添加到版本庫Mca_bdc.c表示ca_bdc.c文件已經(jīng)在本地修改過了如果你并沒有對(duì)工作拷貝做任何修改,那么svnstatus命令輸出為空。svnstatus和svnupdate命令中表示文件狀態(tài)的大寫字母含義不同,具體請(qǐng)參看“附表1-1”svnstatus還可添加-v參數(shù)顯示所有文件(即使沒有改變過)。如下,第一列顯示文件狀態(tài),第二列顯示工作拷貝里的修訂版本號(hào),第三列和第四列顯示最后一次修改的版本號(hào)和修改人,第五列是文件列表??梢钥吹絫est文件最后修改的修訂版本號(hào)是80,修訂人是zhyu;而boo文件預(yù)定要從版本庫中刪除。更多參數(shù)請(qǐng)使用svnhelpstatus命令查看。3.9提交你的修改(svncommit)在進(jìn)行了一系列文件修改、增加或刪除后,你準(zhǔn)備好把在工作拷貝里做的這些修改提交到版本庫中,這時(shí)要使用svncommit命令。注意,命令中必須同時(shí)提供一些描述修改的日志信息,否則會(huì)提交失敗??梢允褂?-message參數(shù)提供日志信息。直接在--message后面寫日志信息并用引號(hào)括起來(不用引號(hào)引起來則只會(huì)記錄所寫日志信息的第一個(gè)字符,后面的字符被遺失)。較長(zhǎng)的日志信息還可以放在文件里面,通過--file參數(shù)指向文件。--file后面跟日志文件的相對(duì)路徑或絕對(duì)路徑。文件里面的內(nèi)容就是此次修訂版本的日志信息。運(yùn)行輸出顯示你做的操作,并提示提交后的修訂版本號(hào)。除了--message和--file參數(shù),還可以使用--editor-cmd參數(shù)指定編輯器,直接打開編輯器寫日志信息。比如指定編輯器為記事本編輯器(notepad)。輸入命令按回車后會(huì)自動(dòng)彈出記事本編輯器,在里面輸入日志信息并保存后就能看到運(yùn)行輸出提示修訂版本號(hào),即提交成功。如果commit提交失敗,出現(xiàn)如下錯(cuò)誤提示。首先需要確認(rèn)你有沒有相應(yīng)的權(quán)限,然后可以在原命令后添加參數(shù)“--usernameXXX--passwordXXX”輸入你的用戶名密碼試試看。如果已經(jīng)有其他人在你提交修改前修改過同一文件,你的提交會(huì)失敗,并提示你一個(gè)或多個(gè)文件已經(jīng)過時(shí)。如下所示。你需要運(yùn)行svnupdate更新版本庫,處理所有合并和沖突,然后再提交。如果對(duì)一個(gè)文件的修改產(chǎn)生沖突則會(huì)提交失敗,Subverion不允許提交處于沖突狀態(tài)的文件,此時(shí)可以聯(lián)系管理員解決。即使SVN將本地的修改和版本庫的修改成功合并,也必須進(jìn)行人工檢查。因?yàn)榇a是具有邏輯性的。需要人工去防止自動(dòng)合并產(chǎn)生邏輯上的錯(cuò)誤。詳細(xì)使用說明請(qǐng)用svnhelpcommit命令查看。3.10檢查你的修改(svndiff)svndiff命令用來精確地比較區(qū)別,它的輸出用統(tǒng)一區(qū)別格式將文件區(qū)別精確顯示。它有三種用法。比較版本庫和版本庫。舉例:TestSVN版本庫31號(hào)修訂版本和32號(hào)修訂版本進(jìn)行比較。通過-r參數(shù)傳遞了兩個(gè)版本號(hào),通過冒號(hào)分開,這兩個(gè)版本庫會(huì)進(jìn)行比較,輸出顯示所有的差異至當(dāng)前屏幕。比較工作拷貝和版本庫。如果通過-r參數(shù)來只傳遞了一個(gè)版本號(hào)36,你的工作拷貝會(huì)和此指定版本進(jìn)行比較,輸出顯示所有的差異至當(dāng)前屏幕。比較本地修改。如果運(yùn)行不帶參數(shù)的svndiff命令,比較的是你的工作文件和緩存在.SVN里面的原始工作拷貝。舉例如下圖。緩存在.SVN里面的原始工作拷貝是86號(hào)版本庫。這樣就可以精確比較出你在原始工作拷貝上都修改了什么。如果你沒有對(duì)工作拷貝做任何修改,那么svndiff命令輸出為空。svndiff命令輸出的格式是統(tǒng)一區(qū)別格式,刪除的行前面有個(gè)“-”,添加的行前面有個(gè)“+”。svndiff命令還可以指定某一文件,查看它在不同版本的區(qū)別。如下,直接在svndiff后面輸入此文件的路徑或URL地址即可。如果對(duì)比的差異太多,不妨將運(yùn)行結(jié)果重定向輸出到本地文件中,查看和保存起來都很方便。只需在本來的命令后面加上重定向符“>”以及本地文件的絕對(duì)路徑即可。這里將兩個(gè)版本的差異輸出到e:/diff/r95.txt文件中,直接在本機(jī)查看此文件即可。該命令詳細(xì)使用說明請(qǐng)用svnhelpdiff查看。3.11撤銷修改(svnrevert)svnrevert命令能恢復(fù)任何預(yù)定要做的操作。已經(jīng)提交的修改則不能被撤銷。舉例:通過svndiff對(duì)比發(fā)現(xiàn)了錯(cuò)誤,想撤銷對(duì)文件1\12.txt的修改。先看下文件狀態(tài)。由svnstatus命令的運(yùn)行輸出可以看出12.txt文件的確已經(jīng)被修改,并且還未提交版本庫,可以撤銷操作。使用svnrevert來撤銷操作。svnrevert后面跟想要恢復(fù)的文件路徑。運(yùn)行輸出提示已經(jīng)恢復(fù)文件,這樣工作拷貝中文件1\12.txt就回到修改前的狀態(tài)。如果你想取消本次所做的所有修改,直接使用帶參數(shù)的svncheckout命令重新下載版本庫更為快捷。3.12查看歷史信息(svnlog)使用svnlog命令可以查看版本庫的歷史修訂信息,包括:修訂版本號(hào)、修訂人、修訂時(shí)間、提交的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流規(guī)劃的課程設(shè)計(jì)
- 文件加密 java課程設(shè)計(jì)
- 織毛衣教案手工課程設(shè)計(jì)
- 2024年山東省建筑安全員《A證》考試題庫
- 2024年廣東省安全員B證(項(xiàng)目經(jīng)理)考試題庫
- 紙盒裝盒機(jī)課程設(shè)計(jì)
- 2024陜西省安全員A證考試題庫
- 本溪社火英語課程設(shè)計(jì)
- 淘寶網(wǎng)課程設(shè)計(jì)
- 灌區(qū)課程設(shè)計(jì)
- 【企業(yè)杜邦分析國(guó)內(nèi)外文獻(xiàn)綜述6000字】
- 2023-2024學(xué)年浙江省富陽市小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)期末通關(guān)試題
- GB/T 5343.2-2007可轉(zhuǎn)位車刀及刀夾第2部分:可轉(zhuǎn)位車刀型式尺寸和技術(shù)條件
- GB/T 32285-2015熱軋H型鋼樁
- 中考數(shù)學(xué)真題變式題庫
- FZ/T 91019-1998染整機(jī)械導(dǎo)布輥制造工藝規(guī)范
- 主持人培訓(xùn) 課件
- SHSG0522003 石油化工裝置工藝設(shè)計(jì)包(成套技術(shù))內(nèi)容規(guī)定
- 制造部年終總結(jié)報(bào)告課件
- 企業(yè)大學(xué)商學(xué)院建設(shè)方案
- 粵科版高中通用技術(shù)選修1:電子控制技術(shù)全套課件
評(píng)論
0/150
提交評(píng)論