




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SVN版本管理初級(jí)培訓(xùn)目錄1,SVN的基本概念2,SVN服務(wù)器建立3,SVN客戶端使用4,分支和標(biāo)簽5,使用規(guī)范與注意事項(xiàng)6,其他1.1為什么要進(jìn)行版本控制是否發(fā)生過(guò)這樣的情況:當(dāng)你在修改一個(gè)文件時(shí),其他人也在修改這個(gè)文件?而你是否因此丟失過(guò)自己所作的修改呢?是否曾經(jīng)保存完一個(gè)修改,然后又想把個(gè)文件恢復(fù)到修改以前的狀態(tài)?是否曾經(jīng)希望能夠看到一個(gè)文件以前某個(gè)時(shí)間點(diǎn)的狀態(tài)?是否曾經(jīng)在項(xiàng)目中發(fā)現(xiàn)了一個(gè)BUG,然后想調(diào)查它是什么時(shí)候產(chǎn)生的?你是否在一個(gè)團(tuán)隊(duì)中工作?如果這些問(wèn)題中的任何一個(gè)回答“是”的話那么你肯定需要考慮版本控制請(qǐng)集中精力繼續(xù)后續(xù)的培訓(xùn)。1.2Subversion相關(guān)軟件基于Subversion和TortoiseSVN的版本控制系統(tǒng)Subversion:是一個(gè)開(kāi)源的版本控制系統(tǒng),擁有CVS的大部分特征,并在CVS的基礎(chǔ)上有更強(qiáng)的擴(kuò)展,用來(lái)代替CVS系統(tǒng)。TortoiseSVN:SVN的客戶端工具,和資源管理器完美集成,基于TortoiseCVS的代碼開(kāi)發(fā),使用上和TortoiseCVS極為相似;Web瀏覽器目前公司的版本庫(kù)基于Apache服務(wù)器運(yùn)行,可在瀏覽器中查看授權(quán)過(guò)的版本庫(kù)的信息。1.3使用SVN之前需要了解的第一個(gè)概念版本庫(kù)(Repository)SVN的核心是版本庫(kù),儲(chǔ)存所有的數(shù)據(jù),版本庫(kù)按照文件樹(shù)形式儲(chǔ)存數(shù)據(jù)-包括文件和目錄,任意數(shù)量的客戶端可以連接到版本庫(kù),讀寫(xiě)這些文件。通過(guò)寫(xiě)數(shù)據(jù),別人可以看到這些信息;通過(guò)讀數(shù)據(jù),可以看到別人的修改。最特別的是Subversion會(huì)記錄版本庫(kù)中的每一次更改,不僅針對(duì)文件也包括目錄本身,包括增加、刪除和重新組織文件和目錄。1.4使用SVN之前需要了解第二個(gè)概念版本模型鎖定-修改-解鎖方案復(fù)制-修改-合并方案:在這種模型里,每一個(gè)客戶讀取項(xiàng)目版本庫(kù)建立一個(gè)私有工作副本—版本庫(kù)中文件和目錄的本地映射。用戶并行工作,修改各自的工作副本,最終,各個(gè)私有的復(fù)制合并在一起,成為最終的版本,這種系統(tǒng)通??梢暂o助合并操作,但是最終要靠人工去確定正誤。
Subversion怎么做?Subversion缺省使用復(fù)制-修改-合并模型,大多數(shù)情況下可以滿足你的需求。然而,Subversion1.2后還是支持鎖定,如果你有不可合并的文件,或者你只是想實(shí)行強(qiáng)制管理策略,Subversion仍然會(huì)提供你需要的特性。1.5SVN版本號(hào)SVN號(hào)從1開(kāi)始。每次提交一個(gè)版本號(hào)。版本號(hào)是唯一標(biāo)識(shí)。tags和branch也是版本號(hào)。每次提交都是可逆的,每次提交都可追溯。所有記錄都會(huì)被保存。2.1SVN服務(wù)器的建立(Linux)安裝subversion軟件包創(chuàng)建倉(cāng)庫(kù),svnadmincreate/var/svn/repos創(chuàng)建倉(cāng)庫(kù)結(jié)構(gòu),svnmkdirfile:///var/svn/repos/trunk,tags,branches修改authz、passwd和svnserve.conf文件啟動(dòng)SVN服務(wù),svnserve-d-r/var/svn/repos查看狀態(tài),netstat-antp|grepsvn2.2服務(wù)器數(shù)據(jù)導(dǎo)入創(chuàng)建臨時(shí)目錄,mkdir-ptemp;cdtemp創(chuàng)建項(xiàng)目名,mkdir-pproject1將要導(dǎo)入的文件放置在該目錄下,并執(zhí)行如下命令:svnimport.file:///var/svn/repos/trunk/project1-m"maqg,importproject1“查看導(dǎo)入狀態(tài),svnlistfile:///var/svn/repos/trunk/2.3TortoiseSVN使用-訪問(wèn)版本庫(kù)訪問(wèn)方法:Subversion可以通過(guò)多種方式訪問(wèn)-本地磁盤訪問(wèn),或各種各樣不同的網(wǎng)絡(luò)協(xié)議,但一個(gè)版本庫(kù)地址永遠(yuǎn)都是一個(gè)URL,URL方案反映了訪問(wèn)方法。方案訪問(wèn)方法file://直接版本庫(kù)訪問(wèn)(本地磁盤或者網(wǎng)絡(luò)磁盤)。http://通過(guò)WebDAV協(xié)議訪問(wèn)支持Subversion的Apache服務(wù)器。https://與http://相似,但是用SSL加密。svn://通過(guò)未認(rèn)證的TCP/IP自定義協(xié)議訪問(wèn)svnserve服務(wù)器。svn+ssh://通過(guò)認(rèn)證并加密的TCP/IP自定義協(xié)議訪問(wèn)svnserve服務(wù)器。3.1Checkout版本(Linux)描述:可以剪出某個(gè)版本。Linux:svncoURLWindows:在Windows文件夾中,右鍵,輸入U(xiǎn)RL,確定。例子:svnco60:1000/trunk/project1project1結(jié)果:無(wú)3.2TortoiseSVN使用-識(shí)別重載圖標(biāo)
一個(gè)新檢出的工作副本使用綠色的對(duì)勾做重載。表示Subversion狀態(tài)正常.
在你開(kāi)始編輯一個(gè)文件后,狀態(tài)就變成了已修改,而圖標(biāo)重載變成了紅色感嘆號(hào)。通過(guò)這種方式,你可以很容易地看出哪些文件從你上次更新工作副本后被修改過(guò),需要被提交。
如果在更新的過(guò)程中出現(xiàn)了沖突,圖標(biāo)會(huì)變成黃色感嘆號(hào)。
如果你給一個(gè)文件設(shè)置了svn:needs-lock屬性,Subversion會(huì)讓此文件只讀,直到你獲得文件鎖。具有這個(gè)重載圖標(biāo)的文件來(lái)表示你必須在編輯之前先得到鎖。
如果你擁有了一個(gè)文件的鎖,并且Subversion狀態(tài)是正常,這個(gè)重載圖標(biāo)就提醒你如果不使用該文件的話應(yīng)該釋放鎖,允許別人提交對(duì)該文件的修改。
這個(gè)圖標(biāo)表示當(dāng)前文件夾下的某些文件或文件夾已經(jīng)被調(diào)度從版本控制中刪除,或是該文件夾下某個(gè)受版本控制的文件丟失了。
加號(hào)告訴你有一個(gè)文件或目錄已經(jīng)被調(diào)度加入版本控制。3.3添加文件,文件夾描述:向版本庫(kù)中添加文件Linux:svnadd[文件,文件夾]。Windows:選中要添加的文件,點(diǎn)擊鼠標(biāo)右鍵,在彈出菜單中選擇“SVN添加”,提交。例子:svnaddjacky.txt結(jié)果:Ajacky.txt注意:添加之后,需要進(jìn)行提交動(dòng)作。3.4提交修改commit描述:將本地修改提交到服務(wù)器Linux:svnci[文件或文件夾]-m“修改內(nèi)容描述”。Windows:右鍵,commit。例子:svncijacky.txt-m“modifyforXXXX”結(jié)果:Addingjacky.txtTransmittingfiledata.Committedrevision1057.3.5刪除remove描述:可以將不再需要的文件從倉(cāng)庫(kù)中刪除。Linux:svndeleteXXXXXWindows:右鍵,svnremove。例子:svnremovejacky.txt結(jié)果:Djacky.txt3.6更新update描述:在修改代碼之前,我們需要進(jìn)行更新的動(dòng)作。Linux:svnup[目錄或文件][-t版本號(hào)]Windows:右鍵,選擇更新。例子:svnupjacky.txt-r1024結(jié)果:Ajacky.txtUpdatedtorevision1024.3.7修改文件名rename描述:用此功能對(duì)文件/目錄進(jìn)行改名后文件仍處于SVN的控制下并保持連續(xù)的變更信息。Linux:svnrenameOLD_NAMENEW_NAME。Windows:右鍵,重命名。例子:svnrenameandy.txtjacky.txt結(jié)果:Ajacky.txtDandy.txt3.8撤消修改Revert描述:撤銷本地所有未提交的修改。Linux:svnrevert[文件名]–RWindows:右鍵,選擇revert。例子:svnrevert*-R結(jié)果:Reverted'cmd_ipbind.c'3.9文件移動(dòng)move描述:將文件從一個(gè)目錄轉(zhuǎn)移到另一個(gè)目錄。Windows:與文件重命名相同。Linux:svnmoveOLD_POSITIONNEW_POSITION例子:svnmovejacky.txt../jacky.txt結(jié)果:Djacky.txtA../jacky.txt3.10修改文件屬性描述:對(duì)于可執(zhí)行文件,提交的時(shí)候,要加上相應(yīng)的屬性。添加文件時(shí),保證文件具有足夠的屬性即可。如果想修改已經(jīng)提交的文件的屬性,可以用ps(propset)命令。Linux:svnpssvn:executable+xfor.sh,上面是將for.sh腳本加上可執(zhí)行權(quán)限。注意:修改之后要提交生效。3.11查看文件狀態(tài)status描述:在SVN的控制目錄下,執(zhí)行svnst,可以看到大概如下的內(nèi)容:Linux:svnst[目錄或文件]例子:svnst結(jié)果:!cmd_nat.c//表示文件已被刪除Mcmd_ipbind.c//表示本地有修改3.12查看本地修改diff描述:當(dāng)本地有修改時(shí),可以用svndiff命令來(lái)看修改的內(nèi)容Linux:svndi[文件名]Windows:右鍵,diff例子:svndiffcmd_ipbind.c結(jié)果:Index:cmd_ipbind.c=======================================----cmd_ipbind.c(revision1055)+++cmd_ipbind.c(workingcopy)@@-16,8+16,6@@#include<string.h>-#include<sys/stat.h>#include<arpa/inet.h>3.13查看倉(cāng)庫(kù)中文件列表list描述:有時(shí)候我們需要關(guān)注倉(cāng)庫(kù)中的代碼目錄,svnlist可以幫助我們。Linux:svnlist[SVNURL]Windows:右鍵,list舉例:svnlistsvn://60/trunk/project1結(jié)果:COPYINGREADMEplatform/ttconfig/4.1創(chuàng)建標(biāo)簽tagsLinux:svncopysvn://60/trunk/project1svn://60/tags/release-1.0-m“1.0released”Windows:略注意:tags只作為一個(gè)標(biāo)記,建立后最好不要修改。4.2創(chuàng)建分支branchLinux:svncopysvn://60/trunk/project1svn://60/branches/branch-JACKY-m“makebranchforjacky”Windows:略注意:在分支上修改的代碼,要及時(shí)同步到主干上。4.3分支和主干的剪出svncosvn://60/tags/release-1.0tag-1.0svncosvn://60/branches/branch-JACKYbranch-JACKY5.1使用規(guī)范盡量不提交編譯不過(guò)的代碼任何修改之前,先更新代碼修改之后,盡快提交提交時(shí),寫(xiě)好修改注釋修改代碼盡量不影響他人與其他人相關(guān)的代碼修改,可以通知他人5.2什么是沖突當(dāng)執(zhí)行svnst進(jìn)行查看時(shí),出現(xiàn)“CXXXXX”的提示時(shí)”,表示已沖突。下面是沖突后看到的:?cmd_ipbind.c.r1057?cmd_ipbind.c.r1058?cmd_ipbind.c.mineCcmd_ipbind.c5.3為什么會(huì)沖突修改之前沒(méi)有更新。多于一個(gè)人同時(shí)修改一個(gè)文件的同一行。下面是沖突的地方舉例:Index:cmd_ipbind.c======================================================
+<<<<<<<.mine+if((ret=ipbind_del_rule(sh->type,db_fw,argv[0])))fff{+=======if((ret=ipbin_ddd_del_rule(sh->typ
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ó)消防員面試題及答案
- 銀行智能化面試題目及答案
- 2025年蘇教版數(shù)學(xué)六年級(jí)下冊(cè)期末檢測(cè)題及答案(一)
- 跨境私人飛機(jī)氧氣補(bǔ)給及保障服務(wù)協(xié)議
- 金融服務(wù)外包投標(biāo)人資質(zhì)審核及合規(guī)性保證協(xié)議
- 離婚不離家忠誠(chéng)修復(fù)承諾協(xié)議
- 融合業(yè)態(tài)購(gòu)物中心樓層委托運(yùn)營(yíng)合同
- 新出的公務(wù)員考試題目及答案
- 影視特效血漿攪拌設(shè)備租賃與特效制作團(tuán)隊(duì)保障合同
- 外貿(mào)企業(yè)單證員外包派遣合作協(xié)議
- 高房子與矮房子的比較與思考
- 2025中國(guó)臨床腫瘤學(xué)會(huì)CSCO非小細(xì)胞肺癌診療指南要點(diǎn)解讀課件
- 全民營(yíng)養(yǎng)周活動(dòng)吃動(dòng)平衡健康體重全民行動(dòng)宣傳課件
- 研學(xué)公司管理制度
- 抵押房屋買賣合同書(shū)范例
- 2025-2030中國(guó)采耳行業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)研究報(bào)告
- 基于核心素養(yǎng)的2025屆高考英語(yǔ)備考復(fù)習(xí)策略
- 青馬工程測(cè)試題及答案
- 2025年時(shí)事政治考題及參考答案(350題)
- 中國(guó)郵政集團(tuán)有限公司國(guó)企招聘筆試真題2024
- 社會(huì)福利 課件匯 高和榮 第6-11章 社會(huì)福利客體-社會(huì)福利的挑戰(zhàn)
評(píng)論
0/150
提交評(píng)論