日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SVN使用說明跟蹤介紹

本節(jié)向大家講解一下SVN使用說明方面的知識,講述svn的基本使用規(guī)則以及操作流程等主題,本節(jié)論述內(nèi)容適用于1.2以后版本。下面是具體的介紹,歡迎大家一起來學(xué)習(xí)SVN使用說明。
介紹
svn屬于cs構(gòu)架的源代碼管理工具,服務(wù)器保存了所有版本的代碼,每個開發(fā)人員從服務(wù)器checkout出代碼,修改代碼完成某項(xiàng)工作以后checkin修改的代碼,在服務(wù)器中會記錄一個新的軟件版本
一般來說一個項(xiàng)目會有一個獨(dú)立的代碼庫,代碼庫的建立很簡單,使用svnadmincreate命令記錄即可,svn手冊建議項(xiàng)目使用以下的目錄結(jié)構(gòu)
project
trunk
branches
tags
trunk目錄記錄代碼的主線,branches目錄存放為了某個工作目的創(chuàng)建的分支,tags目錄記錄軟件發(fā)行的某個版本。下面我們來看一下SVN使用說明中關(guān)于SVN特點(diǎn)的介紹。
SVN的特點(diǎn):
1.全局版本號
svn的一個代碼庫只有一個版本號,初始版本號為0,以后不管哪個目錄發(fā)生了commit,都會產(chǎn)生一個新的版本號,比如一開始大家可能不習(xí)慣,但是其實(shí)這樣的策略有一個好處,就是每次你在本地svnup的時候,如果發(fā)現(xiàn)了版本號增加,那么就是說別人在代碼庫上有了新的修改,你很可能需要合并這個新的修改。
2.提交是原子的
每次提交多個文件修改的記錄的時候,如果成功,都只會生成一條版本記錄,相當(dāng)于完成某項(xiàng)功能的一個patch,如果提交不是原子的,版本管理很難實(shí)現(xiàn)。
3.分支標(biāo)記都使用svncopy命令
svn的分支標(biāo)志是很高效的,幾乎是立刻完成,因?yàn)閟vn在新的分支和標(biāo)記上只是引用了原來代碼庫中的對象,這個和命令名似乎不太相符,因此大家可以放心使用svncopy命令,而不需要擔(dān)心性能上的問題
4.缺乏mergetracking,合并的版本需要自己記錄
這是頻繁合并分支的代碼樹所必需注意的,具體工作下面有一些簡要的敘述
基本工作流程
SVN使用說明中基本工作流程的介紹。下面使用一個本地的代碼庫示例日常的svn使用流程:
首先我們在本地建議一個庫,訪問本地的庫無須用戶驗(yàn)證
mkdir~/expe
cd~/expe
svnadmincreaterepos
在~/expe/repos建立了代碼庫
首先建立代碼庫的的基本目錄結(jié)構(gòu)
mkdirworking_copy
cdworking_copy
mkdirtrunkbranchestags
把干凈的純代碼等需要版本控制的文件拷貝到trunk目錄
svnimport.file:///home/kkmao/expe/repos-m"initimport"
這時代碼庫中的就包含了本地的目錄結(jié)構(gòu),以及trunk下面的代碼了
把本地的內(nèi)容刪掉,checkout出svn的一個版本出來,為什么本地的沒用了呢,這是因?yàn)楸镜氐膬?nèi)容里面沒有.svn的目錄,因此不是一個有效的workingcopy,需要svncheckout出一個有效的版本。svncofile:///home/kkmao/expe/repos/trunk.注:svnco是(svncheckout的簡寫)

現(xiàn)在你已經(jīng)建立好了一個可以試驗(yàn)的workingcopy和庫了,每個本地目錄都會有一個.svn目錄,該目錄包含了完整的某一個版本的代碼樹,任何本地的修改都可以svndiff查看,該命令直接跟本地的這個cache進(jìn)行比較,不會發(fā)生對庫的訪問,提高效率。SVN使用說明中svninfo可以看到你的本地和哪個庫相連以及當(dāng)前版本路徑:.
地址(URL):file:///home/kkmao/expe/repos/trunk
檔案庫UUID:1d2627a1-0526-0410-8f90-b8b4839c1c87
修訂版:1
節(jié)點(diǎn)種類:目錄
調(diào)度:正常
***修改的作者:kkmao
***修改的修訂版:1
***修改的時間:2007-01-0210:38:59+0800(二,021月2007)
我隨便做了兩個文件,準(zhǔn)備加到庫里面,作為本地修改的一個示例:

 
 
 
  1. kkmao@Loongson:~/expe/workingcopy$cathello
  2. helloword.
  3. Iamkkmao,whoareyou.
  4. kkmao@Loongson:~/expe/workingcopy$svnaddhello
  5. Ahello
  6. kkmao@Loongson:~/expe/workingcopy$catREADME
  7. whynotreadme????
  8. kkmao@Loongson:~/expe/workingcopy$svnaddREADME
  9. Ahello
  10. add

只修改本地內(nèi)容,并沒有提交。這個時候我準(zhǔn)備提交(commit)我的更改了,首先我會運(yùn)行svnupdate查看別人是否對代碼進(jìn)行了修改
kkmao@Loongson:~/expe/workingcopy$svnup于修訂版1。
up是update的簡寫,update的作用是把別人修改的代碼先取到本地,上面的結(jié)果是沒有人進(jìn)行了修改。為什么要先up呢,這是因?yàn)槿绻袥_突的話,應(yīng)該在本地解決沖突以后,再進(jìn)行commit,事實(shí)上你可以直接svnci(commit),但是如果別人和你修改了同一個文件,svn也不會讓你成功提交,還是需要先進(jìn)行本地的update。
現(xiàn)在我已經(jīng)可以commit了,我先查看一下我需要commit什么,基本的規(guī)則是,patch應(yīng)該一個一個的commit怎么做呢,我會先查看我本地修改了什么,使用status-u命令kkmao@Loongson:~/expe/workingcopy$svnstatus-ubr /> A0hello
A0README
狀態(tài)于修訂版:1
詳細(xì)查看一下更改的內(nèi)容svndiffhello,svndiffREADME,我發(fā)現(xiàn)這兩個是無關(guān)的更改,他們屬于兩個不同的patch,應(yīng)該單獨(dú)提交。因此我提交了兩次,并指明提交的文件
kkmao@Loongson:~/expe/workingcopy$svncommithello-m"addhello"
新增hello
傳輸文件數(shù)據(jù).
提交后的修訂版為2。
kkmao@Loongson:~/expe/workingcopy$svncommitREADME-m"addREADME"
新增README
傳輸文件數(shù)據(jù).
提交后的修訂版為3。
kkmao@Loongson:~/expe/workingcopy$
例子中的-m的內(nèi)容也太過簡單,每次提交都應(yīng)該有詳細(xì)的comment,特別是對bug的修復(fù),應(yīng)該詳細(xì)說明bug的產(chǎn)生原因,修復(fù)的道理等
從上面看到,應(yīng)該勤commit,不要等到修改了一大堆文件以后,才想起來要commit。請期待下節(jié)關(guān)于SVN使用說明的介紹。


當(dāng)前題目:SVN使用說明跟蹤介紹
新聞來源:http://www.dlmjj.cn/article/dhpcpdp.html