SVN命令使用手冊_第1頁
SVN命令使用手冊_第2頁
SVN命令使用手冊_第3頁
SVN命令使用手冊_第4頁
SVN命令使用手冊_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、版本管理工具SVN命令使用手冊V0.1SVN命令使用手冊修改版本記錄序號版本操作操作章節(jié)修正者時間1.V0.1A牛杰2008-11-2.6.7.8.M:修改A:添加D:刪除SVN命令使用一、 常用命令1. Svnadmin create創(chuàng)建庫svnadmin create path在windows版本上:D:>svnadmin create test2D:>通過dir來列出目錄中文件,已經(jīng)包含test2,如圖1所示:圖1說明此時已經(jīng)成功建立2. Svn import導入項目svn import project_path svn_lib_path -m “commen

2、t”舉例:假設有一個工程名稱unismg,代碼的文件目錄是unicom;A、我們在D盤新建目錄unismg,在此目錄下新建三個文件目錄,如圖2所示:圖2trunk中存放的是項目主線;branches中存放源碼分支;tags存放在開發(fā)過程中做的標簽。B、我們將代碼unicom放到d:unismgtrunk中C、執(zhí)行命令D:>svn import d:unismg file:/d:/test2/unismg -m "initial import unismg"結(jié)果如圖3所示:圖3這樣我們就將工程代碼導入svn庫中管理。此時刪除D:>unismg目錄也沒有關(guān)系,因為你

3、的源代碼已經(jīng)在SVN庫中管理了。有人會有疑問,為什么我到test2目錄中去找*.c文件怎么一個沒有找到啊,是的SVN管理代碼,并不是簡單的保存文件,而是利用bdb管理的,所以你看不到源碼存在。之后你可以使用后續(xù)的命令來工作了。多說一句,關(guān)于svn_lib_path的幾種形式:file:/直接版本訪問(本地磁盤)http:/通過配置subversion的Apache服務器的WebDAV協(xié)議https:/與http:/相似,只不過增加了ssh協(xié)議Svn:/通過svnserver服務自定義的協(xié)議Svn+ssh:/與svn:/相似,但是通過SSH協(xié)議封裝比如,聯(lián)通在信網(wǎng)關(guān)在30.251linux服務器

4、上,使用的是svnserver服務自定義的協(xié)議,那么,導入工程代碼時應采用的命令是:svn import $path/proj/unismg svn:/51:3482 -m "initial import unismg"3. Svn co: 將文件checkout到本地目錄 svn checkout path(path是服務器上的目錄) 例如:svn checkout svn://pro/domain 簡寫:svn co 舉例:svn co svn:/51:3482/trunk/unicom下面信息就是從

5、庫中下載的代碼信息。4. Svn add: 往版本庫中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.c(添加當前目錄下所有的c文件) 舉例:svn add unismg-misc.conf5. Svn ci: 將改動的文件提交到版本庫 svn commit -m “LogMessage“ -N -no-unlock PATH(如果選擇了保持鎖,就使用no-unlock開關(guān)) 例如:svn commit -m “add test file for my test“ test.php 簡寫:svn ci 舉例:svn c

6、i -m “comment” file/path注意:此處必須添加comment Comment是:詳細的說明修改代碼的原因或者功能,也即:能夠通過svn log獲知你提交代碼的原因就行。6. Svn up: 更新到某個版本 svn update -r m path 例如: svn update如果后面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本。 svn up -r 4 filename/path:是將代碼更新到版本4。用此命令可以更新/還原代碼至指定版本。 svn update filename.c(更新,與版本庫同步。如果在提交的時候提示過期的話,是因為沖突,需要先up

7、date,修改文件,然后使用svn resolved命令清除目錄下多余文件,最后再提交svn commit) 簡寫:svn up 舉例:/export/home/mcpp20/niuj/proj/mcpp2.0>svn up U mcpp/include/mp_cfg.hU mcpp/include/mp_csp_oper.hG mcpp/include/mp.hU mcpp/include/mp_kernel.hU mcpp/include/mp_glo.hU mcpp/include/mp_msisdn.hU mcpp/include/mp_common_mc.hU mcpp/inc

8、lude/mp_biz.hU mcpp/include/mp_kernel_smg.hU mcpp/include/mp_core_update.h7. Svn st: 查看文件或者目錄狀態(tài) 1)svn status path(目錄下的文件和子目錄的狀態(tài),正常狀態(tài)不顯示) ?:不在svn的控制中;M:內(nèi)容被修改;C:發(fā)生沖突;A:預定加入到版本庫;K:被鎖定G:表示代碼合并成功舉例:/export/home/mcpp20/niuj/proj/unicom>svn st Make.rules/export/home/mcpp20/niuj/proj/unicom>vi Make.ru

9、les修改Make.rules后,再執(zhí)行之:/export/home/mcpp20/niuj/proj/unicom>svn st Make.rulesM Make.rules注意:一旦遇到C這種情況,應當及時手動整合代碼。2)svn status -v path(顯示文件和子目錄狀態(tài)) 第一列保持相同,第二列顯示工作版本號,第三和第四列顯示最后一次修改的版本號和修改人。 注:svn status、svn diff和 svn revert這三條命令在沒有網(wǎng)絡的情況下也可以執(zhí)行的,原因是svn在本地的.svn中保留了本地版本的原始拷貝。 簡寫:svn st 舉例:/export/home/

10、mcpp20/niuj/proj/unicom>svn st -v Makefile 4 1 niu-jie Makefile/export/home/mcpp20/niuj/proj/unicom>vi Makefile修改一下Makefile文件,再次執(zhí)行/export/home/mcpp20/niuj/proj/unicom>svn st -v MakefileM 4 1 niu-jie Makefile8. Svn del: 刪除文件 svn delete file/path -m “delete test fle“ 例如:svn delete svn:/192.16

11、8.1.1/pro/domain/test.php -m “delete test file” 或者直接svn delete test.php 然后再svn ci -m delete test file,推薦使用這種 簡寫:svn (del, remove, rm) Svn del filename/path -m “comment” 注意:comment必須填寫,內(nèi)容同svn ci9. Svn log: 查看日志 svn log path 例如:svn log test.php 顯示這個文件的所有修改記錄,及其版本號的變化 舉例:r1 | niu-jie | 2008-11-25 11:28

12、:03 +0800 (二, 25 11月 2008) | 1 lineinitial import unismg-此處黑色粗體就是你在簽入代碼或者刪除文件時添加的comment信息。10. Svn info: 查看文件詳細信息 svn info file/path 列出一些版本,修改者,時間等詳細信息例如:/export/home/mcpp20/niuj/proj/unicom>svn info confPath: confURL: svn:/51:3482/trunk/unicom/confRepository Root: svn:/51

13、:3482Repository UUID: be25efa0-5121-4a33-b4ce-07ae4bf004f4Revision: 4Node Kind: directorySchedule: normalLast Changed Author: niu-jieLast Changed Rev: 1Last Changed Date: 2008-11-25 11:28:03 +0800 (二, 25 11月 2008)11. Svn diff: 比較差異 svn diff file/path簡寫:svn di1) svn diff file/path(將修改的文件與基礎版本比較) 例如:/

14、export/home/mcpp20/niuj/proj/unicom>svn di Make.rulesIndex: Make.rules=- Make.rules (revision 4)+ Make.rules (working copy) -1,4 +1,3 - # # Project: Short Message Internet Access Solution # Version: 1.0注意:紅色粗體部分是說明下面輸出的信息中:前面帶有“-”表示版本4(svn庫中代碼)中存在而你目錄下當前版本刪除掉的;前面帶有“+”表示版本4(svn庫中代碼)中沒有,你當前版本新添的代碼。

15、2) svn diff -r m:n file/path(對版本m和版本n比較差異) 例如:/export/home/mcpp20/niuj/proj/unicom>svn di -r 4:1 CHANGELOGIndex: CHANGELOG=- CHANGELOG (revision 4)+ CHANGELOG (revision 1) -1,10 +1,21 -#凡是修改代碼者,需要先到此處申請修改編號-#然后確定沒有重復后,提交此文件,再行修改代碼.-# * version:+* description: 配置文件初始化+* code:+* changelog: <- 00

16、03 zhangchen+* recorder: zhangchen+* date:+* version:+* description: mo短息自動提示功能:用戶發(fā)起的MO消息流程中沒有找到對應的目的EC/SI或EC/SI無應答;+* code:+* changelog: <- 0002 zhaoxy+* recorder: zhaoxy +* date:+* version: * description: * code:-* changelog: <- 0001 zhaoxy+* changelog: <- 0001 maxw * recorder: zhaoxy * d

17、ate:12. svn resolved: 解決沖突 svn resolved: 移除工作副本的目錄或文件的“沖突”狀態(tài)。 用法:svn resolved file/PATH 注意: 本子命令不會依語法來解決沖突或是移除沖突標記;它只是移除沖突的相關(guān)文件,然后讓 PATH 可以再次提交。 舉例:更新代碼后,如果發(fā)現(xiàn)有C,也即有沖突。此時會產(chǎn)生多個文件:filename.c,filename.c.mine,filename.c.rxxxx(x是版本號)等文件文件filename.c代碼中會含有:>>>>>Codes=Codes<<<<<

18、這個時候需要解決沖突,然后保存文件。運行命令:svn resolved filename.c當遇到有多個文件沖突時,建議單個文件進行解決,并運行此命令解決之,不要多個命令一起操作。13. svn help: 幫助 svn help svn help ci 舉例:/export/home/mcpp20/niuj/proj/unicom>svn help cicommit (ci): Send changes from your working copy to the repository.usage: commit PATH. A log message must be provided,

19、 but it can be empty. If it is not given by a -message or -file option, an editor will be started. If any targets are (or contain) locked items, those will be unlocked after a successful commit.Valid options: -q -quiet : print as little as possible -N -non-recursive : operate on single directory onl

20、y -targets arg : pass contents of file ARG as additional args -no-unlock : don't unlock the targets -m -message arg : specify log message ARG -F -file arg : read log message from file ARG -force-log : force validity of log message source -editor-cmd arg : use ARG as external editor -encoding arg

21、 : treat value as being in charset encoding ARG -username arg : specify a username ARG -password arg : specify a password ARG -no-auth-cache : do not cache authentication tokens -non-interactive : do no interactive prompting -config-dir arg : read user configuration files from directory ARG二、 非常用命令:

22、1. Svn merge: 將兩個版本之間的差異合并到當前文件 svn merge -r m:n path 例如:svn merge -r 200:205 test.c(將版本200與205之間的差異合并到當前文件,但是一般都會產(chǎn)生沖突,需要處理一下) 建議不要使用此命令2. Svn lock: 加鎖/解鎖 svn lock -m “LockMessage“ -force PATH 例如:svn lock -m “l(fā)ock test file“ test.php svn unlock PATH 3. Svn list: 版本庫下的文件和目錄列表 svn list path 顯示path目錄下的

23、所有屬于版本庫的文件和目錄 簡寫:svn ls 4. Svn mkdir: 創(chuàng)建納入版本控制下的新目錄 svn mkdir: 創(chuàng)建納入版本控制下的新目錄。 用法: 1、mkdir PATH 2、mkdir URL 創(chuàng)建版本控制的目錄。 1、每一個以工作副本 PATH 指定的目錄,都會創(chuàng)建在本地端,并且加入新增調(diào)度,以待下一次的提交。 2、每個以URL指定的目錄,都會透過立即提交于倉庫中創(chuàng)建。在這兩個情況下,所有的中間目錄都必須事先存在。 5. Svn revert: 恢復本地修改 svn revert: 恢復原始未改變的工作副本文件 (恢復大部份的本地修改)。用法: svn revert PA

24、TH 注意: 本子命令不會存取網(wǎng)絡,并且會解除沖突的狀況。但是它不會恢復被刪除的目錄 舉例:/export/home/mcpp20/niuj/proj/unicom>svn diff Makefile Index: Makefile=- Makefile (revision 4)+ Makefile (working copy) -1,4 +1,4 -#+# # Project: Push Server # Version: 1.0 # Author: Darwin/export/home/mcpp20/niuj/proj/unicom>svn revert MakefileRev

25、erted 'Makefile'/export/home/mcpp20/niuj/proj/unicom>svn diff Makefile/export/home/mcpp20/niuj/proj/unicom>6. Svn switch: 代碼庫URL變更 svn switch (sw): 更新工作副本至不同的URL。 用法: 1、switch URL PATH 2、switch relocate FROM TO PATH. 1、更新你的工作副本,映射到一個新的URL,其行為跟“svn update”很像,也會將服務器上文件與本地文件合并。這是將工作副本對應到同一倉庫中某個分支或者標記的方法。 2、改寫工作副本的URL元數(shù)據(jù),以反映單純的URL上

溫馨提示

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

評論

0/150

提交評論