版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
版本控制講師:梁桐實(shí)例某研發(fā)團(tuán)隊(duì)2011研發(fā)了一款BBS系統(tǒng)在開發(fā)前,項(xiàng)目經(jīng)理帶來了一些基礎(chǔ)代碼經(jīng)過3個(gè)月研發(fā),發(fā)布了BBS1.0版本因?yàn)殇N售業(yè)績很好,所有決定繼續(xù)研發(fā)v2.0版但有客戶使用使用中發(fā)現(xiàn)v1.0有嚴(yán)重Bug,不修復(fù)將造成嚴(yán)重后果研發(fā)團(tuán)隊(duì)安排部分人去修復(fù),其他人繼續(xù)研發(fā)v2.0Bug修復(fù)后,發(fā)布了v1.1版,沒有造成嚴(yán)重?fù)p失Bug修復(fù)后需要將整合到v2.0中,保證今后的發(fā)布的版本中不會出現(xiàn)此問題為什么學(xué)習(xí)版本控制?參與過2人以上的軟件項(xiàng)目開發(fā)?開發(fā)過程中程序是否具有版本控制?如果不使用版本控制還會出現(xiàn)什么問題?硬盤是否壞過。根據(jù)經(jīng)驗(yàn)法則再加上墨菲定理,壞事情往往都發(fā)生在最重要的時(shí)刻。沒有版本控制?代碼管理混亂備份多個(gè)版本,占用磁盤空間大解決代碼沖突困難容易引發(fā)BUG難于追溯問題代碼的修改人和修改時(shí)間難于恢復(fù)至以前正確版本無法進(jìn)行權(quán)限控制項(xiàng)目版本發(fā)布困難什么是版本控制?版本控制(RevisionControl):是維護(hù)工程藍(lán)圖的標(biāo)準(zhǔn)做法,能追蹤工程藍(lán)圖從誕生一直到定案的過程。是一種記錄若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。也是一種軟體工程技巧,籍以在開發(fā)的過程中,確保由不同人所編輯的同一檔案都得到更新。通過文檔控制(documentationcontrol),能記錄任何工程專案內(nèi)各個(gè)模組的改動歷程,并為每次改動編上序號。
版本控制軟件CVS(ConcurrentVersionsSystem)代表協(xié)作版本系統(tǒng)或者并發(fā)版本系統(tǒng),是一種版本控制系統(tǒng),方便軟件的開發(fā)和使用者協(xié)同工作。VSS(VisualSourceSafe)只能在windows下,作為MicrosoftVisualStudio的一名成員,它主要任務(wù)就是負(fù)責(zé)項(xiàng)目文件的管理Git是用于Linux內(nèi)核開發(fā)的版本控制工具。它采用了分布式版本庫的方式,不必服務(wù)器端軟件支持,使源代碼的發(fā)布和交流極其方便。Git的速度很快,這對于諸如Linuxkernel這樣的大項(xiàng)目來說自然很重要。Git最為出色的是它的合并跟蹤(mergetracing)能力。
。。。。。。SVN(Subversion),是一個(gè)開放源代碼的版本控制系統(tǒng),采用了分支管理系統(tǒng),它的設(shè)計(jì)目標(biāo)就是取代CVS。
1、版本控制入門簡介2、SVN入門3、SVN服務(wù)器端與客戶端的使用SVN安裝SVN倉庫建立與啟動[★★★]SVN命令[★★★★]4、TortoiseSVN安裝5、SVN權(quán)限配置[★★]6、TortoiseSVN基本操作[★★★★☆]【重點(diǎn)】7、SVN與第三方Eclipse整合[★★★★★]【重點(diǎn)】8、SVN與第三方Apache整合[★★]9、SVN版本控制的前身CVS簡介[★★]10、SVN目錄規(guī)范[★★]目標(biāo)SVN的特性統(tǒng)一的版本號。CVS是對每個(gè)文件順序編排版本號,在某一時(shí)間各文件的版本號各不相同。而Subversion下,任何一次提交都會對所有文件增加到同一個(gè)新版本號,即使是提交并不涉及的文件。所以,各文件在某任意時(shí)間的版本號是相同的。版本號相同的文件構(gòu)成軟件的一個(gè)版本。原子提交。一次提交不管是單個(gè)還是多個(gè)文件,都是作為一個(gè)整體提交的。在這當(dāng)中發(fā)生的意外例如傳輸中斷,不會引起數(shù)據(jù)庫的不完整和數(shù)據(jù)損壞。重命名、復(fù)制、刪除文件等動作都保存在版本歷史記錄當(dāng)中。對于二進(jìn)制文件,使用了節(jié)省空間的保存方法。(簡單的理解,就是只保存和上一版本不同之處)目錄也有版本歷史。整個(gè)目錄樹可以被移動或者復(fù)制,操作很簡單,而且能夠保留全部版本記錄。分支的開銷非常小。優(yōu)化過的數(shù)據(jù)庫訪問,使得一些操作不必訪問數(shù)據(jù)庫就可以做到。這樣減少了很多不必要的和數(shù)據(jù)庫主機(jī)之間的網(wǎng)絡(luò)流量。支持元數(shù)據(jù)(Metadata)管理。每個(gè)目錄或文件都可以定義屬性(Property),它是一些隱藏的鍵值對,用戶可以自定義屬性內(nèi)容,而且屬性和文件內(nèi)容一樣在版本控制范圍內(nèi)。支持FSFS和BerkeleyDB兩種資料庫格式。不足:只能設(shè)置目錄的訪問權(quán)限,無法設(shè)置單個(gè)文件的訪問權(quán)限。SVN=版本控制+備份服務(wù)器
SVN服務(wù)器運(yùn)行方式獨(dú)立服務(wù)器方式:svnserve借助Apache方式:mod_dav_svnSVN版本數(shù)據(jù)存儲方式BDB(BerkeleyDB):數(shù)據(jù)庫方式FSFS:文件方式(推薦)SVN運(yùn)行方式與存儲方式Subversion組件服務(wù)器組件(管理員使用)svnadmin:用來創(chuàng)建、調(diào)整或修改svn檔案庫的工具mod_dav_svn:ApacheHTTP服務(wù)器的一個(gè)插件,使版本庫可以通過網(wǎng)絡(luò)訪問svnserve:一個(gè)單獨(dú)運(yùn)行的服務(wù)器程序,可以作為守護(hù)進(jìn)程或由SSH調(diào)用。這是另一種使版本庫可以通過網(wǎng)絡(luò)訪問的方式。客戶端組件(用戶使用)svn:命令行客戶端程序,這是用來管理數(shù)據(jù)的主要工具SVN版本控制策略1拷貝-修改-合并方案cvs采用SVN版本控制策略2拷貝-修改-合并方案VSS控制策略鎖定-修改-解鎖方案(VSS)Subversion安裝Subversion軟件下載安裝http://或/我們使用的版本Setup-Subversion-1.6.5.msi驗(yàn)證是否安裝成功svnserve––versionSubversion建立倉庫建立svn倉庫(單倉庫、多倉庫)命令svnadmincreate倉庫名稱例如:svnadmincreateE:\software\repository\svn\itcast倉庫目錄說明db目錄:就是所有版本控制的數(shù)據(jù)存放文件hooks目錄:腳本文件的目錄locks目錄:放置subversion文件庫鎖定數(shù)據(jù)的目錄,用來追蹤存取文件庫的客戶端format文件是一個(gè)文本文件,里面只放了一個(gè)整數(shù),表示當(dāng)前文件庫配置的版本號。conf目錄:是這個(gè)倉庫的配置文件(倉庫的用戶訪問賬號、權(quán)限等)Subversion啟動1cmd命令行啟動svnserve–d–r文檔倉庫路徑-d后臺執(zhí)行-r版本庫的根目錄例如:svnserve-d-rF:\software\repository\svn\itcastsvn端口號3690使用netstat–an
查看svn是否啟動成功協(xié)議:tcp/ipSubversion啟動2windows服務(wù)自動啟動利用xp、2000以上的系統(tǒng)自帶的工具servicecontrol,執(zhí)行文件sc.exesccreateSVN-Servicebinpath="E:\software\svn\bin\svnserve.exe--service-rE:\software\repository\svn"displayname="SVN-Service"start=autodepend=Tcpipbinpath
指定svnserve的路徑和命令start=auto表示服務(wù)自動啟動。注意:等于號的左邊無空格,而右邊必須有一個(gè)空格Displayname描述、start啟動方式、depend依存關(guān)系在此命令中-r(--root)項(xiàng)目版本倉庫的根目錄啟動服務(wù)netstartSVN-Service刪除服務(wù)scdeleteSVN-Service查看服務(wù)是否添加成功,可以選擇windows控制面板管理工具服務(wù)會發(fā)現(xiàn)列表中有SVN-service服務(wù)SVN命令1svncheckout從版本庫檢出一個(gè)工作拷貝格式:svncheckoutURL[@REV]...[PATH]例如:svncheckoutsvn://localhost/itcastE:\develop\workroom\user1說明:@REV,與-r功能相同,指定檢出的版本號…,同時(shí)檢出多個(gè)工作拷貝svncommit將改動的文件提交到版本庫格式:svncommit[path]例如:svncommit-m“message"readme.txtsvnupdate更新你的工作拷貝例如:svnupdate-r1readme.txt(更新到指定版本)svnadd想版本庫中添加新文件例如:svnadd*--force(遞歸)例如:svnadd--depth=emptyonlydir
(盡添加文件夾)svninfo顯示本地或遠(yuǎn)程條目的信息svnhelp|svnhelp…獲取幫助信息SVN命令2svndelete從版本庫中刪除文件和目錄。例如:svndelete-m"delete"svn://localhost/oa/readme.txt例如:svndelete--forcefile3.txtsvnrevert將工作副本文件恢復(fù)到原始版本(恢復(fù)大部份的本地修改)。svnlist列出版本庫中的目錄內(nèi)容。例如:svnlistsvn://localhost/oasvnstatus顯示工作副本中目錄與文件的狀態(tài)。未指定參數(shù)時(shí),只顯示本地修改的條目例如:svnstatus--show-updates--verbose||-u-vsvncopy在工作副本或版本庫中復(fù)制數(shù)據(jù),保留歷史。格式:svncopySRC[@REV]...DSTsvnmove在工作副本或版本庫中移動或改名文件或目錄。格式:svnmoveSRC...DSTsvnmerge將兩個(gè)源差異應(yīng)用至工作副本。格式:mergesourceURL1[@N]sourceURL2[@M][WCPATH]例如:svnmerge--reintegratesvn://localhost/oa/branches/fixedSVN命令3svnswitch—把工作拷貝更新到別的URL格式:svnswitchURL[@PEGREV][PATH]svnswitch--relocateFROMTO[PATH...]例子:svnswitch--relocatesvn://localhost/bbs1svn://localhost/bbs.
svn
mkdir
創(chuàng)建一個(gè)納入版本控制的新目錄格式:svn
mkdirPATH...svn
mkdirURL...例子:svn
mkdirbranches
共性:如果出現(xiàn)URL,一般需要“日志信息”刪除密碼信息:windows:C:\DocumentsandSettings\Administrator\ApplicationData\Subversion\authlinux下:rm-rf~/.subversion/authSVN基本交互流程圖checkoutupdatecommitTortoiseSVN介紹TortoiseSVN是Subversion版本控制系統(tǒng)的一個(gè)免費(fèi)開源客戶端。TortoiseSVN是Subversion的windows擴(kuò)展。它使你避免接觸Subversion枯燥而且不方便的CommandLine。它完全嵌入WindowsExplorer,使用時(shí)只需在正常的窗口里右鍵操作就可以了TortoiseSVN安裝TortoiseSVN下載安裝/downloads我們安裝版本TortoiseSVN-7493-win32-svn-1.6.6.msiTortoiseSVN漢化/downloadsLanguagePack_7493-win32-zh_CN.msi64位系統(tǒng)TortoiseSVN-2068-x64-svn-1.7.0.msiLanguagePack_2068-x64-zh_CN.msiSubversion權(quán)限配置svnserve.conf
定義所有認(rèn)證和授權(quán)政策anon-access匿名用戶【none/read/write】例如:anon-access=noneauth-access授權(quán)用戶【none/read/write】例如:auth-access=writepassword-db用戶保存文件例如:password-db=passwdauthz-db權(quán)限管理文件例如:
authz-db=authzsasl認(rèn)證(了解)passwd
存放項(xiàng)目成員賬戶信息一行一個(gè)用戶,用戶名和密碼使用等號隔開authz主要是做復(fù)雜的群組權(quán)限控制給組授權(quán)是必須使用@多倉庫:[repository:/baz/fuz]單倉庫:[/foo/bar]TortoiseSVN圖標(biāo)正常狀態(tài)新檢出的工作復(fù)本提交過程中出現(xiàn)沖突已修改上次更新復(fù)本需要提交文件設(shè)置了svn:needs-lock屬性,svn會讓此文件只讀,直到獲得文件鎖擁有了文件鎖文件或目錄已納入到版本控制新添加的文件,且沒有納入到版本控制設(shè)置needs-lock,properties/new/svn:needs-lock設(shè)置logminsize,properties/new/tsvn:logminsize忽略所選項(xiàng)已刪除,還沒有提交的文件TortoiseSVN其他操作Showlog:查看日志Repo-browser:查看文檔倉庫Checkformodifications:查看修改項(xiàng)Revisongraph:版本圖表Editconflicts:編輯沖突Resolved:已解決沖突Updatetorevision:更新到指定版本。HEADrevision最新版本Rename:重命名Delete:刪除Revert:還原Getlock:獲得鎖 /Releaselock:釋放鎖Add:添加到版本庫Properties:屬性配置Settings:參數(shù)設(shè)置
SVN與Eclipse整合下載SVN插件(http://)我們使用版本eclipse_svn_site-1.6.5.zip解壓到一個(gè)文件夾1、進(jìn)入MyEclipse8.5安裝目錄中dropins目錄并創(chuàng)建一個(gè)svn.link(文件名任意)的文件。 內(nèi)容為:path=解壓縮路徑 例如:path=E:\\java\\IDE\\MyEclipse8.5\\svn2、進(jìn)入eclipse安裝目錄中l(wèi)inks目錄并創(chuàng)建一個(gè)svn.link(文件名任意)的文件。中英文切換configuration/config.ini文件中添加以下語句1、osgi.nl=en_US2、osgi.nl=zh_CNSVN與Apache整合1下載Apache(http://)我們使用版本apache_2.2.14-win32-x86-no_ssl.msi測試安裝成功:http://localhost打開Apache安裝目錄下Apache2.2\conf\httpd.conf配置文件將下列2行前面的#移除(第83行)LoadModule
dav_modulemodules/mod_dav.soLoadModule
dav_fs_modulemodules/mod_dav_fs.so并同時(shí)在上面兩行下面添加以下兩行(一定放在這個(gè)位置)LoadModule
dav_svn_modulemodules/mod_dav_svn.soLoadModule
authz_svn_modulemodules/mod_authz_svn.so找到Subversion安裝目錄下的以下兩個(gè)文件bin/mod_authz_svn.sobin/mod_dav_svn.so復(fù)制到Apache安裝目錄下modules目錄中SVN與Apache整合2使用Apache安裝目錄下的bin/htpasswd.exe可執(zhí)行性文件來生成授權(quán)文件,第一次生成使用-cb參數(shù):格式:htpasswd–cb[filename][username][password]例如:htpasswd–cb
passwd.apacheuser1pwd參數(shù)說明:-c創(chuàng)建一個(gè)加密文件-b在apachehtpasswd
命令行中一并輸入用戶名和密碼而不是根據(jù)提示輸入密碼-m默認(rèn)apachehtpasswd
命令采用MD5算法對秘密進(jìn)行加密-dapachehtpasswd
命令采用CRYPT算法對密碼進(jìn)行加密-sapachehtpasswd命令采用SHA算法對密碼進(jìn)行加密將生成的passwd.apache文件移動到svn版本庫中\(zhòng)conf目錄下apache安裝目錄下的conf\hffpd.conf文件的最后面加入#配置虛擬目錄<location/svn/itcast>#引用遠(yuǎn)程訪問模塊DAVsvn#項(xiàng)目版本庫路徑SVNPathE:/software/repository/svn/bbs#授權(quán)文件AuthzSVNAccessFileE:/software/repository/svn/bbs/conf/authz#所有用戶都需要身份驗(yàn)證SatisfyAnyRequirevalid-user#驗(yàn)證方式AuthTypeBasic#項(xiàng)目的名稱AuthName“bbs“#用戶文件AuthUserFileE:/software/repository/svn/bbs/conf/passwd.apache</location>訪問方式http://localhost/svn/itcast使用SVN注意事項(xiàng)經(jīng)常更新:降低沖突的可能性提交前需要在本機(jī)測試通過,降低將問題代碼傳到版本庫提交時(shí)一定寫備注,方便其他員工查看和自己以后回顧對于不需要提交的文件不要提交到版本庫CVSCVS安裝下載CVS服務(wù)器(/cvspro)我們使用版本cvsnt-server-2.5.04.3510.msi默認(rèn)端口:2401CVSNT用戶使用win系統(tǒng)賬戶,即在服務(wù)器上創(chuàng)建win系統(tǒng)用戶(注意權(quán)限安全)即可,這樣每個(gè)倉庫都可以使用服務(wù)器的系統(tǒng)用戶登錄管理CVSNT界面說明ServerInformation,用于查看服務(wù)器信息以及一些簡單的統(tǒng)計(jì)信息Repositoryconfiguration,配置CVS倉庫,包括添加、刪除、修改等ServerSettings,配置服務(wù)器運(yùn)行的一些參數(shù),如端口、加密、壓縮等選項(xiàng)CompatibilityOptions,兼容性選項(xiàng)Plugins,插件配置AdvancedAbout,管理cvsnt服務(wù)的狀態(tài)。暫停或啟動cvsnt和cvsntlock服務(wù)。CVS創(chuàng)建用戶1使用系統(tǒng)用戶綁定到當(dāng)前的CVS項(xiàng)目上格式:setcvsroot=:pserver:lenovo@:/bbsc1、cvslogin登錄并輸入系統(tǒng)用戶密碼2、例如:cvs
passwd-a-rlenovo
itcast-aAdduser-rAliasusernametorealsystemuser
在/CVSROOT文件夾下將會生成passwd文件CVS創(chuàng)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《基礎(chǔ)會計(jì)》形考題庫附參考答案解析
- 《貨幣銀行學(xué)》試題及答案13
- 工程平移合同范本
- 幼兒園防水維修合同范本
- 要約格式合同范本
- 靜脈治療護(hù)理理論基礎(chǔ)
- 福天下合同范本
- 臨街鋪面承包經(jīng)營合同范本
- 承包水果合同范本
- 普陀區(qū)植物租賃合同范本
- 《測量小燈泡的電功率》設(shè)計(jì) 市賽一等獎(jiǎng)
- 行進(jìn)間運(yùn)球上籃技術(shù)教案
- 門診病歷書寫基本規(guī)范-課件
- 二年級下冊音樂課件大海-花城版
- 影響媒介的社會因素課件
- 110kV輸電線路工程安全風(fēng)險(xiǎn)識別、評估、預(yù)控清冊
- 如何當(dāng)好攬投部站經(jīng)理課件
- 中式烹調(diào)技藝烹飪專業(yè)基礎(chǔ)試題及其參考答案
- 勝利油田采出水處理技術(shù)及應(yīng)用
- 智慧住建信息平臺建設(shè)方案
- 醫(yī)療研究報(bào)告規(guī)范CONSORT聲明
評論
0/150
提交評論