使用SVN來進(jìn)行版本管理課件_第1頁
使用SVN來進(jìn)行版本管理課件_第2頁
使用SVN來進(jìn)行版本管理課件_第3頁
使用SVN來進(jìn)行版本管理課件_第4頁
使用SVN來進(jìn)行版本管理課件_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、組員及分工第16組成員名單:0443111023覃長洪0443111367牟雅丹0443111336王 靜0443111197羅俊鑫0443111197盧 怡0443111143楊 謙0443111176張 覓作業(yè)分工:1.Use UML to model the Gourmet Coffee System楊謙 張覓 羅俊鑫 覃長洪2. Using SVN for code version management覃長洪 牟雅丹 王靜 盧怡使用SVN來進(jìn)行版本管理覃長洪 牟雅丹 王 靜 盧 怡一. 簡 介為什么要使用SVN?程序員編寫程序的過程中,每個程序都會生成很多不同的版本.這就需要程序員能有

2、效的管理代碼,在需要的時候可以迅速,準(zhǔn)確取出相應(yīng)的版本任何需要管理頻繁信息改變的地方都需要它,這就是Subversion的舞臺1.1 Subversion是什么?Sub Version(簡稱SVN)是版本管理工具Subversion是一個自由/開源版本控制系統(tǒng)一組文件存放在中心版本庫, 記錄每一次文件和目錄的修改Subversion可以通過網(wǎng)絡(luò)訪問它的版本庫Subversion的特性(續(xù))可選的網(wǎng)絡(luò)層 在版本庫訪問方面有一個抽象概念,利于人們?nèi)崿F(xiàn)新的網(wǎng)絡(luò)機(jī)制 一致的數(shù)據(jù)操作 文件是建立在二進(jìn)制文件區(qū)別算法基礎(chǔ)上的 有效率的分支和標(biāo)簽 建立分支與標(biāo)簽時只是拷貝整個工程,使用了一種類似于硬鏈接的

3、機(jī)制 可修改性由一系列良好的共享C庫實現(xiàn),具有定義良好的API 1.4. 1安裝SubversionSVN服務(wù)器端,客戶端哪個先裝都可以.我的安裝路徑為是: 服務(wù)端:C:Program FilesSubversion 客戶端:C:Program FilesTortoiseSVN服務(wù)端安裝好后軟件會自動在系統(tǒng)的環(huán)境變量中增加相應(yīng)的值1.4.2 部署存儲庫并運行服務(wù)端建立SVN的存儲庫,路徑以D:SVNRepo為例,創(chuàng)建完該文件后,就進(jìn)行Windows的服務(wù)綁定,以便以后每次重啟機(jī)器后都能自動運行,這里用到的是Windows自帶的創(chuàng)建服務(wù)的命令sc,在命令行模式下執(zhí)行:sc create SVNS

4、ervice binpath= C:Program FilesSubversionbinsvnserve.exe -service -r D:SVNRepo displayname= SVNService depend= Tcpip start= auto在提示建立成功后,可以直接輸入“net start SVNService”來啟動服務(wù),或者可以直接在“管理工具”的“服務(wù)”中直接啟動。1.4.3創(chuàng)建項目以及配置訪問權(quán)限進(jìn)到D:SVNRepo目錄下,新建一個倉庫文件夾repository 進(jìn)入 D:SVNReporepository下,鼠標(biāo)右鍵選擇TotoiseSVN-Create Repos

5、itory here.進(jìn)行創(chuàng)建創(chuàng)建之前保證該目錄下沒有任何的文件夾和文件.創(chuàng)建成功后會在里面自動生成幾個文件夾:dav目錄是提供給Apache與mod_dav_svn使用的目錄,讓它們存儲內(nèi)部數(shù)據(jù);db目錄就是所有版本控制的數(shù)據(jù)文件;hooks目錄放置hook腳本文件的目錄;locks用來放置Subversion文件庫鎖定數(shù)據(jù)的目錄,用來追蹤存取文件庫的客戶端;format文件是一個文本文件,里面只放了一個整數(shù),表示當(dāng)前文件庫配置的版本號;conf存放的是配置文件.訪問權(quán)限的設(shè)置方法 在conf目錄下,打開svnserve.conf,設(shè)置如下: generalanon-access=none

6、(匿名用戶的權(quán)限) autn-access =write (經(jīng)授權(quán)的用戶的權(quán)限) password-db=passwd(指定授權(quán)用戶的密碼存放文件)在同一目錄下打開passwd,也就是上面設(shè)置的,也可以重命名,設(shè)置如下:usersuser1=pass1這里指定授權(quán)訪問用戶名和密碼,格式為:用戶名 = 密碼接下來就可以開始使用TotoiseSVN進(jìn)行Import、Update、Checkout、Commit等操作了。 2.2 文件共享的問題2.3. 鎖定-修改-解鎖 方案鎖定-修改-解鎖模型缺點 鎖定可能導(dǎo)致管理問題鎖定可能導(dǎo)致不必要的線性化開發(fā)鎖定可能導(dǎo)致錯誤的安全狀態(tài) 2.4.拷貝-修改-合

7、并 方案3版本管理我們使用Sub Version(簡稱SVN)作為版本管理工具。這里著重介紹SVN作為跨平臺的多人協(xié)作使用方法。在多個程序員管理同一段代碼的過程中,版本的管理顯得尤為重要,使用SVN可以方便的進(jìn)行分支、合并,記錄下所有的版本。以上說的忽略文件是指全局的忽略文件。SVN還能在特定的目錄中指定需要忽略的文件。忽略文件支持通配符。3.1.2合并比較工具在Merge Tool中可以選擇用來合并的工具,推薦用Araxis Merge.在Setting-Diff中填C:Program FilesAraxisAraxis Merge v6.5Merge.exe ;在Setting-Merge

8、的選項中,填入C:Program FilesAraxisAraxis Merge v6.5Merge.exe %theirs %mine %merged ;其中C:Program FilesAraxisAraxis Merge v6.5Merge.exe是指合并工具的路徑,%theirs %mine %merged分別指將要合并到主干的分支,主干,及合并后的結(jié)果。3.2 項目基本流程一個項目會有多個人共同合作開發(fā)完成?;玖鞒淌牵?.各開發(fā)成員建立自己的分支,并在此分支上開發(fā);2.各開發(fā)成員把分支合并到主干上并形成較為穩(wěn)定的版本;3.各個成員重新從主干上建立新的分支,在此分支上開發(fā)(即回到第一

9、步) ;4.循環(huán)往復(fù),直到工程結(jié)束。3.3 代碼的版本管理運行獨立服務(wù)器 在任意目錄下運行:svnserve -d -r D:svndemorepository ,服務(wù)器程序就已經(jīng)啟動了。3.3.2.初始化導(dǎo)入在codetrunk目錄下創(chuàng)建一個hello.c文件#include void main() printf(Hello World!n); 來到將導(dǎo)入的項目根目錄,這里是D:svndemoinitproject右鍵-TortoiseSVN-Import. URL of repository輸入“svn:/localhost/ ” 輸入用戶名和密碼 完成之后目錄沒有任何變化,如果沒有報錯,

10、數(shù)據(jù)就已經(jīng)全部導(dǎo)入到了剛才定義的版本庫中。3.3.3.倉庫目錄結(jié)構(gòu) 倉庫的一級目錄只有兩個,分別為code和doc。其中,doc主要用來放置先期的文檔,code主要用來放置工程的代碼,也可以包含后期的文檔。倉庫的二級目錄只可以是branch與trunk兩個目錄,分別存放主干與分支。trunk目錄下直接存放工程文件。branch目錄下包括一些子目錄分別對應(yīng)各個分支。工作目錄空白處鼠標(biāo)點擊鼠標(biāo)右鍵 TortoiseSVN Repo-browser 可以看到倉庫瀏覽器3.3.4.基本客戶端操作取出版本庫到一個工作拷貝:來到任意空目錄下,在本例中是D:SVNRepowc1,點擊右鍵-Checkout,

11、在URL of repository中輸入svn:/localhost/code/trunk,這樣我們就得到了一份工作拷貝。注意:從SVN倉庫中取出代碼時,一定不要把整個倉庫取出來,而應(yīng)該只取出trunk目錄,或只取出branch下的某個分支目錄,點OK.在工作拷貝中作出修改并提交:打開hello.c作出修改,然后右鍵-Commit.,這樣就把修改提交到了版本庫,我們可以運行。查看所作的修改: Hello.c上右鍵-TortoiseSVN-Show Log,這樣就可以看到我們對這個文件所有的提交。在版本1上右鍵-Compare with working copy,我們可以比較工作拷貝的文件和版

12、本1的區(qū)別。3.4 版本的回退 推薦幾種方法 :1.若編輯了工程,在沒有提交的前提下,想放棄這些修改,可以直接選擇revert更新到工程的最新的版本。2. 若想退回到某一個版本,可以直接選擇update to reversion,這樣就可以把版本回退到選中的版本去,這種情況下SVN并沒有顯示出有什么沖突,并且新建立的文件也還在,但是并不能直接在回退后的版本上進(jìn)行編輯,因為SVN的版本控制還是在最新的主干上。我們需要update并解決沖突。 3.可以直接選擇revert changes from this revision,這樣可以直接解決沖突并提交。不過這種方法的不足是,新建的文件都沒有了,整

13、個工程都回退到之前的版本了。4.在此推薦一種方法:直接export一個需要的版本,然后用export的版本覆蓋你的最新的版本,這樣就可以不丟失你新建的文件,同時獲得head的SVN控制文件。3.5.分支與分支的合并分支的基本概念:開發(fā)的一條線獨立于另一條線,如果回顧歷史,可以發(fā)現(xiàn)兩條線分享共同的歷史,一個分支總是從一個備份開始的,從那里開始,發(fā)展自己獨有的歷史。 分支合并 在工作的目錄下點右鍵TortoiseSVN Merge 打開合并工具可以選擇從一個版本合并到另一個版本,在合并之前,可以點Diff比較這兩個版本的異同,然后就可以點Merge合并 在工程目錄上點右鍵,進(jìn)行SVN-Resolved。這樣會刪除無用的臨時文件。l最后提交所作的修改,并添加詳細(xì)的注釋。參考文獻(xiàn):1使用Subversion進(jìn)行版本控制針對 Subversion 1.1(本書編譯對應(yīng)1876修訂

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論