第八章源代碼控制管理工具Subversion_第1頁
第八章源代碼控制管理工具Subversion_第2頁
第八章源代碼控制管理工具Subversion_第3頁
第八章源代碼控制管理工具Subversion_第4頁
第八章源代碼控制管理工具Subversion_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章內(nèi)容回顧GCC是什么什么是GDBPage1/40第1頁,共42頁。第八章源代碼控制管理工具第2頁,共42頁。預(yù)習(xí)檢查什么是版本控制什么是Commit3第3頁,共42頁。本章目標(biāo)能夠:理解和掌握Subversion的概念及配置能夠:會使用TortioseSVN客戶端工具Page4/40第4頁,共42頁。本章結(jié)構(gòu)什么是版本控制

源代碼控制管理Unix/Linux的起源與發(fā)展Linux在企業(yè)中的應(yīng)用Linux的安裝方式系統(tǒng)安裝過程Linux的圖形界面服務(wù)器和客戶端Unix/Linux版本Subversion和TortoiseSVN磁盤分區(qū)文件系統(tǒng)和目錄結(jié)構(gòu)Subversion的基本操作Page5/40第5頁,共42頁。8-1-1什么是版本控制?版本控制就是對在軟件開發(fā)過程中所創(chuàng)建的配置對象的不同版本進(jìn)行管理,保證任何時(shí)候都能取到正確的版本以及版本的組合?!载悹枌?shí)驗(yàn)室《配置管理的精髓》版本控制(VersionControl)是軟件配置管理中的重要一環(huán)主要功能:記錄開發(fā)過程的每一次修改,讓開發(fā)工作可以隨時(shí)檢查過往的歷史和獲取正確的版本;是系統(tǒng)的“成長記錄”。第6頁,共42頁。8-1-2為什么要使用版本控制?在協(xié)同開發(fā)過程中,確保能夠:保存所有更改的記錄,防止改動丟失能夠快速回復(fù)到特定版本的狀態(tài)能夠獲取其他成員的更改在單獨(dú)開發(fā)時(shí),上述的前兩點(diǎn)對于自己的開發(fā)過程管理也有莫大的好處。第7頁,共42頁。8-1-3版本控制的方式兩種典型的方式:Lock-Modify-Unlock方式和Copy-Modify-Merge方式,分別以VisualSourceSafe和CVS為代表Lock-Modify-Unlock方式:一個(gè)文件同一時(shí)刻只能有一個(gè)人進(jìn)行修改,可防止沖突,但不利于合作開發(fā);Copy-Modify-Merge方式:可以多人同時(shí)修改一個(gè)文件,會有沖突的情況,更強(qiáng)調(diào)開發(fā)人員的交流,對于合作開發(fā)比較合適;第8頁,共42頁。8.1.4版本控制的幾個(gè)術(shù)語項(xiàng)目倉庫工作拷貝導(dǎo)入檢出導(dǎo)出提交更新RepositoryNetworkWorkingcopyWorkingcopyCheckout,updatecommitFredWilmaCheckout,updatecommit第9頁,共42頁。8.1.4版本庫訪問URLSubversion可以通過多種方式訪問-本地磁盤訪問,或各種各樣不同的網(wǎng)絡(luò)協(xié)議,但一個(gè)版本庫地址永遠(yuǎn)都是一個(gè)URL,URL方案反映了訪問方法。第10頁,共42頁。8-2-1Subversion是什么?Subversion是一個(gè)自由的、開放源碼的版本控制系統(tǒng),擁有CVS的大部分特征,并在CVS的基礎(chǔ)上有更強(qiáng)的擴(kuò)展,用來代替CVS系統(tǒng)。單詞“Subversion”的意義字面上的意義:Sub+Version,標(biāo)識Subversion是一個(gè)版本控制系統(tǒng)。英語中有Subversion這個(gè)單詞,意思是“顛覆”:Subversion要顛覆CVS的地位。它可以管理各個(gè)時(shí)刻的文件和目錄。Subversion將文件存放在repository庫中。這個(gè)倉庫非常類似于一個(gè)普通的文件服務(wù)器,只是它還可以記錄文件和目錄曾經(jīng)做過的每一次變更??砂寻姹究刂葡到y(tǒng)比作一種“時(shí)間機(jī)器”。Subversion的倉庫可以通過網(wǎng)絡(luò)來訪問,允許不同的用戶在不同的計(jì)算機(jī)上使用。不同的使用者可以進(jìn)行協(xié)同工作。而且所有工作都是有記錄的,如果有錯只要撤銷就可以。它是一個(gè)通道,可以管理任何計(jì)算機(jī)中的文件系統(tǒng)。需要得到版本管理規(guī)范的支持第11頁,共42頁。8-2-1CVS和Subversion的比較

SubversionCVS版本號管理方式所有文件使用同一版本號每個(gè)文件有單獨(dú)的版本號運(yùn)行方式多種運(yùn)行方式:

1.作為操作系統(tǒng)的Demon(如WindowService)獨(dú)立運(yùn)行;

2.作為開源Web服務(wù)器Apache的WebDAV運(yùn)行;作為操作系統(tǒng)的Demon(如WindowService)獨(dú)立運(yùn)行傳輸協(xié)議,http://,https://,svn://,svn+ssh://參見CVSRoot的定義對目錄的版本管理對目錄也同樣進(jìn)行版本管理無文件改名支持需要刪除原文件,重新添加改名后的文件,改名后原文件的修改歷史丟失。事務(wù)性提交是否第12頁,共42頁。8-2-1Subversion與CVS相比改進(jìn)的地方統(tǒng)一的文件版本目錄控制:在Subversion中目錄的變更也是受控的支持文件復(fù)制、重命名事務(wù)性的提交高效的分支和標(biāo)記擴(kuò)展能力:Subversion提供了一組API,可以供其他語言直接調(diào)用。第13頁,共42頁。8-2-1使用上的主要不同Subversion的版本號是所有文件共用一個(gè)版本號,每一個(gè)個(gè)文件的改變都會導(dǎo)致總體版本號發(fā)生改變;Subversion的分支/標(biāo)簽都以文件夾的方式顯示,而不象CVS只是一個(gè)獨(dú)立的標(biāo)簽;當(dāng)作為Apache的WebDAV使用時(shí),Subversion使用Http協(xié)議傳輸,可以直接在Web瀏覽器中瀏覽;第14頁,共42頁。8-2-2TortoiseSVN是什么?TortoiseSVN是Subversion版本控制系統(tǒng)的一個(gè)免費(fèi)開源客戶端是一個(gè)shell擴(kuò)展程序,與WindowsExplorer整合在一起在WindowsExplorer里面單擊右鍵就可以操作相關(guān)菜單其它Subversion客戶端Subversion命令行程序RapidSVN:獨(dú)立的Windows程序,最新版本0.92,仍處于Beta階段;AnkhSVN:和VisualStudio集成,可以在VisualStudio中使用Subversion,仍處于開發(fā)過程中,最新版本0.60Beta;功能尚不完善。Web瀏覽器:ViewCVS/WebSVN等,網(wǎng)絡(luò)程序,可在瀏覽器中查看SVN信息;第15頁,共42頁。8-3-1Windows平臺Subversion服務(wù)器端的安裝配置安裝程序從獲?。辉赪indows平臺直接執(zhí)行安裝程序進(jìn)行安裝;在服務(wù)器端創(chuàng)建文件倉庫(兩種安裝方式)

(1)mkdirc:\svn-repossvnadmincreatec:\svn—repos

(2)使用TortoiseSVN自動生成4.啟動服務(wù)器方式一:類似CVS,作為獨(dú)立服務(wù)運(yùn)行,安裝完成后運(yùn)行如下命令運(yùn)行Subversion:

startsvnserve--daemon--rootd:\svn-repos 可以使用第三方的工具將Subversion添加為Windows的Service(參見);方式二:將Subversion添加為Apache的WebDAV運(yùn)行;這種方式對于Subversion的控制和管理比較方便,但是配置相對比較麻煩。 建議:個(gè)人使用或者對權(quán)限控制等要求不高時(shí)以獨(dú)立服務(wù)的方式使用Subversion,當(dāng)團(tuán)隊(duì)開發(fā)時(shí)使用WebDAV的方式使用Subversion。第16頁,共42頁。8-3-1配置用戶和權(quán)限進(jìn)入項(xiàng)目倉庫的conf目錄修改svnserve.conf和passwd文件第17頁,共42頁。8-3-1以服務(wù)形式運(yùn)行svnserve以服務(wù)形式運(yùn)行svnserve安裝服務(wù)sccreatesvnservebinpath="C:\ProgramFiles\svnserve\svnserve.exe--service--rootc:\repos"displayname="Subversion"depend=tcpipstart=auto刪除服務(wù)scdeletesvnservice第18頁,共42頁。8-3-2Subversion客戶端TortoiseSVN的安裝和設(shè)置獲取安裝文件從下載;安裝直接安裝,安裝完成后會自動集成在資源管理器的右鍵菜單中;完成后,提示要重啟計(jì)算機(jī),選擇“否”,運(yùn)行中文語言包程序完成后再重啟計(jì)算機(jī)

注意事項(xiàng):安裝時(shí)“ASP_HACK”的選擇,如果做ASP.Net開發(fā),安裝時(shí)一定要選擇該項(xiàng)。設(shè)置主要設(shè)置:語言全局忽略模式差異查看工具和合并工具文件疊加圖標(biāo)右鍵菜單(外觀樣式)第19頁,共42頁。8-4-1Subversion的基本概念Repository(文件倉庫)Workcopy(工作復(fù)本)Checkout(檢出)Commit(提交或檢入)Update(更新)第20頁,共42頁。8-4-2Subversion的基本操作主要操作:把本地文件添加到文件倉庫中初始文件導(dǎo)入從SVN文件庫中取出代碼檢出更新本地文件文件/目錄改名把文件和目錄添加到文件倉庫中從SVN中刪除文件提交修改后的文件檢入第21頁,共42頁。初始文件導(dǎo)入

svnimport-m"importingbb".svn://12/bb第22頁,共42頁。從SVN文件庫中取出代碼功能:從SVN服務(wù)器中取出已有的代碼,可以取出當(dāng)前的最新代碼或指定標(biāo)簽/分支的代碼。操作:在資源管理器中點(diǎn)擊鼠標(biāo)右鍵,選擇“SVN取出”;輸入要取出代碼的文件庫的URL地址;默認(rèn)是取出主版本的代碼,如果需要取出指定標(biāo)簽的代碼,則在“版本”Group中指定;版本號的意義說明(非強(qiáng)制):主版本為1.x,x表示該文件的第x次修改;分支版本為1.x.y.z,表示該分支是在第1.x個(gè)主版本上建立的1.x.y分支,在該分支上進(jìn)行了z次修改;work>svncheckoutsvn://12/aawork>svncheckoutsvn://12/aaanewwork>svncheckout-r4svn://12/aaa4work>svninfoaa第23頁,共42頁。更新本地文件功能:獲取其他用戶對文件進(jìn)行的修改,與自己對文件進(jìn)行的修改進(jìn)行合并,保證本地的文件總是最新的。操作:選中要更新的文件或文件夾,在右鍵菜單中選擇“更新”;在資源管理器的空白處進(jìn)行上述操作則對當(dāng)前目錄進(jìn)行更新。更新時(shí)對不同的人所做的修改會自動合并,如果無法自動合并則會發(fā)生沖突,需要手工用文件比較工具進(jìn)行合并。說明: 在團(tuán)隊(duì)開發(fā)時(shí),更新是一件很重要的工作,可以保持團(tuán)隊(duì)成員之間的工作內(nèi)容一致,因此要注意經(jīng)常更新自己的工作復(fù)本,以保證自己能夠獲得最新的修改內(nèi)容。work\a4>svnupdate第24頁,共42頁。對文件/目錄進(jìn)行改名功能:對文件/目錄進(jìn)行Subversion控制下的改名操作,用此功能對文件/目錄進(jìn)行改名后文件仍處于SVN的控制下并保持連續(xù)的變更信息。操作:在資源管理器中選中要改名的文件,右鍵“TortoiseSVN→重命名”;輸入新文件名,點(diǎn)擊“確定”;對文件的重命名將在提交后起作用。注意:必須使用Subversion的重命名功能,直接在資源管理器中進(jìn)行重命名SVN無法監(jiān)控。第25頁,共42頁。對文件/目錄進(jìn)行改名[root@yftaa]#svnmoveb.txta.txt[root@yftaa]#svncommit-m"Renamedb.txttoa.txt"第26頁,共42頁。把本地文件添加到文件倉庫中功能:將客戶端的文件添加到文件庫中,使其接受SVN的控制。操作:在資源管理器中打開取出到本地的工作復(fù)本,選中要添加的文件,點(diǎn)擊鼠標(biāo)右鍵,在彈出菜單中選擇“SVN添加”;在彈出窗口中選擇要添加的文件;點(diǎn)擊OK,完成添加操作。第27頁,共42頁。把本地文件添加到文件倉庫中[root@yftaa]#mkdirtimelib[root@yftaa]#svnaddtimelib/第28頁,共42頁。從SVN中刪除文件功能:將已經(jīng)被廢棄的文件中從SVN中刪除;操作:在工作復(fù)本中選中要刪除的文件/文件夾,在右鍵菜單中選擇“TortoiseSVN”→“刪除”;刪除后需要提交才能夠生效; 說明: 文件被刪除后,該文件的所有修改歷史仍然保存在SVN服務(wù)器中,以后仍然可以獲得該文件的修改歷史。work\aa>svndeleteb.txtwork\aa>svncommit-m"Deletea.txt"第29頁,共42頁。提交新添加的和修改后的文件功能:將在客戶端的工作復(fù)本中對文件進(jìn)行的修改提交到服務(wù)器中,使修改正式生效;提交后其他人即可獲取你所作的修改。操作:選中進(jìn)行了修改的文件,或選擇某個(gè)目錄(此時(shí)對該目錄下包括子目錄所有新添加的或進(jìn)行過修改的文件進(jìn)行提交操作);在在選中的文件上點(diǎn)擊鼠標(biāo)右鍵,選擇“SVN提交”執(zhí)行提交操作;在工作復(fù)本的文件夾的空白處點(diǎn)擊鼠標(biāo)右鍵和選中當(dāng)前目錄執(zhí)行提交的效果一樣。work\aa>svnupdatework\aa>svncommit-m"checkinmessage"第30頁,共42頁。其他技巧導(dǎo)出功能:使用此功能獲取一個(gè)沒有SVN控制信息的工作復(fù)本;清理:當(dāng)Subversion操作中斷時(shí),會有一些殘留的操作信息保留在工作復(fù)本中,這時(shí)需要進(jìn)行清理才能夠重新進(jìn)行工作;生成補(bǔ)丁文件:可以將自己所作的修改以補(bǔ)丁文件的方式交給他人,對于只有匿名訪問的代碼可以以這種方式提交修改;在資源管理器中顯示文件的SVN信息:通過定制資源管理器的顯示字段控制;第31頁,共42頁。在項(xiàng)目開發(fā)過程中的使用(一)管理員安裝、配置SVN服務(wù)器,設(shè)置用戶信息,創(chuàng)建文件庫、模塊;用戶開始在SVN上工作,并隨時(shí)將新的工作結(jié)果提交到SVN文件庫上;同時(shí)用戶隨時(shí)更新自己本地的工作復(fù)本,以獲得其他人的修改;當(dāng)開發(fā)工作進(jìn)行到一定階段(里程碑)要發(fā)布版本(包括測試版本)時(shí),在SVN中創(chuàng)建標(biāo)簽,標(biāo)識當(dāng)前發(fā)布版本的名稱;如果有每日構(gòu)建過程,可以按照日期每天創(chuàng)建一個(gè)標(biāo)簽;第32頁,共42頁。在項(xiàng)目開發(fā)過程中的使用(二)創(chuàng)建標(biāo)簽和開發(fā)互不干涉,開發(fā)工作可以繼續(xù)進(jìn)行;當(dāng)已發(fā)布的版本發(fā)現(xiàn)Bug時(shí),可以從SVN中獲取各次發(fā)布的版本進(jìn)行比較,以確定是在什么版本引入的Bug;如果正在開發(fā)新版本時(shí),發(fā)現(xiàn)舊版本存在Bug,可以在舊版本的基礎(chǔ)上創(chuàng)建分支,在分支上修改舊版本的Bug,當(dāng)舊版本上的Bug修改完成后,可以將該分支上的修改合并到主版本上來;從版本控制的角度來看,系統(tǒng)的開發(fā)過程就是不斷地重復(fù)以上的過程;第33頁,共42頁。SVN使用中的常見問題提交時(shí)提示文件已經(jīng)被修改,需要更新;原因:多人同時(shí)修改同一文件,在提交前其他人已經(jīng)搶先提交到SVN服務(wù)器中,導(dǎo)致該錯誤;解決方法:對工作復(fù)本中的文件進(jìn)行更新即可。更新時(shí)提示文件發(fā)生沖突;原因:多人同時(shí)修改同一文件的同一部分,SVN無法自動進(jìn)行合并,導(dǎo)致該錯誤;解決方法:對工作復(fù)本中的文件和服務(wù)器的文件進(jìn)行比較,手工合并即可。第34頁,共42頁。使用SVN應(yīng)該……經(jīng)常更新:由于文件可能有多個(gè)人修改,應(yīng)該經(jīng)常更新你的工作拷貝中的文件,這樣能降低發(fā)生沖突的可能性;提交前先在本地進(jìn)行測試:不允許將有錯誤的文件提交到服務(wù)器上;提交時(shí)一定要寫備注:備注有助于其他人(包括三個(gè)月后的你自己)理解你對文件所做的修改;提交文件時(shí)注意要提交一項(xiàng)改動所對應(yīng)的所有文件修改:如ASP.Net開發(fā)中一個(gè)改動可能同時(shí)涉及.aspx文件、.aspx.c

溫馨提示

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

評論

0/150

提交評論