




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ā)生過這樣的情況:當(dāng)你在修改一個(gè)文件時(shí),其他人也在修改這個(gè)文件?而你是否因此丟失過自己所作的修改呢?是否曾經(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ì)中工作?如果這些問題中的任何一個(gè)回答“是”的話那么你肯定需要考慮版本控制請(qǐng)集中精力繼續(xù)后續(xù)的培訓(xùn)。1.2Subversion相關(guān)軟件基于Subversion和TortoiseSVN的版本控制系統(tǒng)Subversion:是一個(gè)開源的版本控制系統(tǒng),擁有CVS的大部分特征,并在CVS的基礎(chǔ)上有更強(qiáng)的擴(kuò)展,用來代替CVS系統(tǒng)。TortoiseSVN:SVN的客戶端工具,和資源管理器完美集成,基于TortoiseCVS的代碼開發(fā),使用上和TortoiseCVS極為相似;Web瀏覽器目前公司的版本庫基于Apache服務(wù)器運(yùn)行,可在瀏覽器中查看授權(quán)過的版本庫的信息。1.3使用SVN之前需要了解的第一個(gè)概念版本庫(Repository)SVN的核心是版本庫,儲(chǔ)存所有的數(shù)據(jù),版本庫按照文件樹形式儲(chǔ)存數(shù)據(jù)-包括文件和目錄,任意數(shù)量的客戶端可以連接到版本庫,讀寫這些文件。通過寫數(shù)據(jù),別人可以看到這些信息;通過讀數(shù)據(jù),可以看到別人的修改。最特別的是Subversion會(huì)記錄版本庫中的每一次更改,不僅針對(duì)文件也包括目錄本身,包括增加、刪除和重新組織文件和目錄。1.4使用SVN之前需要了解第二個(gè)概念版本模型鎖定-修改-解鎖方案復(fù)制-修改-合并方案:在這種模型里,每一個(gè)客戶讀取項(xiàng)目版本庫建立一個(gè)私有工作副本—版本庫中文件和目錄的本地映射。用戶并行工作,修改各自的工作副本,最終,各個(gè)私有的復(fù)制合并在一起,成為最終的版本,這種系統(tǒng)通??梢暂o助合并操作,但是最終要靠人工去確定正誤。
Subversion怎么做?Subversion缺省使用復(fù)制-修改-合并模型,大多數(shù)情況下可以滿足你的需求。然而,Subversion1.2后還是支持鎖定,如果你有不可合并的文件,或者你只是想實(shí)行強(qiáng)制管理策略,Subversion仍然會(huì)提供你需要的特性。1.5SVN版本號(hào)SVN號(hào)從1開始。每次提交一個(gè)版本號(hào)。版本號(hào)是唯一標(biāo)識(shí)。tags和branch也是版本號(hào)。每次提交都是可逆的,每次提交都可追溯。所有記錄都會(huì)被保存。2.1SVN服務(wù)器的建立(Linux)安裝subversion軟件包創(chuàng)建倉庫,svnadmincreate/var/svn/repos創(chuàng)建倉庫結(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使用-訪問版本庫訪問方法:Subversion可以通過多種方式訪問-本地磁盤訪問,或各種各樣不同的網(wǎng)絡(luò)協(xié)議,但一個(gè)版本庫地址永遠(yuǎn)都是一個(gè)URL,URL方案反映了訪問方法。方案訪問方法file://直接版本庫訪問(本地磁盤或者網(wǎng)絡(luò)磁盤)。http://通過WebDAV協(xié)議訪問支持Subversion的Apache服務(wù)器。https://與http://相似,但是用SSL加密。svn://通過未認(rèn)證的TCP/IP自定義協(xié)議訪問svnserve服務(wù)器。svn+ssh://通過認(rèn)證并加密的TCP/IP自定義協(xié)議訪問svnserve服務(wù)器。3.1Checkout版本(Linux)描述:可以剪出某個(gè)版本。Linux:svncoURLWindows:在Windows文件夾中,右鍵,輸入U(xiǎn)RL,確定。例子:svnco60:1000/trunk/project1project1結(jié)果:無3.2TortoiseSVN使用-識(shí)別重載圖標(biāo)
一個(gè)新檢出的工作副本使用綠色的對(duì)勾做重載。表示Subversion狀態(tài)正常.
在你開始編輯一個(gè)文件后,狀態(tài)就變成了已修改,而圖標(biāo)重載變成了紅色感嘆號(hào)。通過這種方式,你可以很容易地看出哪些文件從你上次更新工作副本后被修改過,需要被提交。
如果在更新的過程中出現(xiàn)了沖突,圖標(biāo)會(huì)變成黃色感嘆號(hào)。
如果你給一個(gè)文件設(shè)置了svn:needs-lock屬性,Subversion會(huì)讓此文件只讀,直到你獲得文件鎖。具有這個(gè)重載圖標(biāo)的文件來表示你必須在編輯之前先得到鎖。
如果你擁有了一個(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添加文件,文件夾描述:向版本庫中添加文件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描述:可以將不再需要的文件從倉庫中刪除。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命令來看修改的內(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查看倉庫中文件列表list描述:有時(shí)候我們需要關(guān)注倉庫中的代碼目錄,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ī)范盡量不提交編譯不過的代碼任何修改之前,先更新代碼修改之后,盡快提交提交時(shí),寫好修改注釋修改代碼盡量不影響他人與其他人相關(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ì)沖突修改之前沒有更新。多于一個(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 虱媒疾病傳播機(jī)制-洞察及研究
- 廣東省普寧第二中學(xué)2025屆高一化學(xué)第二學(xué)期期末統(tǒng)考試題含解析
- 河北省武邑中學(xué)2025年高二化學(xué)第二學(xué)期期末考試試題含解析
- 2025屆福建省泉州市南安市第一中學(xué)化學(xué)高二下期末調(diào)研試題含解析
- 城市音樂產(chǎn)業(yè)競(jìng)爭(zhēng)力評(píng)價(jià)體系-洞察及研究
- 生物特征識(shí)別交互-洞察及研究
- 網(wǎng)絡(luò)隱私權(quán)保護(hù)-第3篇-洞察及研究
- 邊緣推理系統(tǒng)優(yōu)化-洞察闡釋
- 安全數(shù)據(jù)分析技術(shù)-洞察闡釋
- 食品飲料設(shè)備的綠色設(shè)計(jì)與生產(chǎn)流程優(yōu)化-洞察闡釋
- 心衰病中醫(yī)護(hù)理方案課件
- 基于PLC的智能車庫門系統(tǒng)設(shè)計(jì)
- 【2023有效教學(xué)設(shè)計(jì)原理、策略與評(píng)價(jià)讀書報(bào)告3600字】
- 頂管專項(xiàng)施工方案-人工頂管
- SYNTEC參數(shù)說明手冊(cè)
- 2023春國家開放大學(xué)-01880組織行為學(xué)-期末考試題帶答案
- 2012年度天津市科學(xué)技術(shù)獎(jiǎng)評(píng)審結(jié)果
- 2022年臺(tái)州椒江區(qū)輔助警務(wù)人員招聘考試真題及答案
- 第二講土地估價(jià)技術(shù)報(bào)告難點(diǎn)及技術(shù)要求與處理辦法
- 房屋維修施工方案
- 2023版中國近現(xiàn)代史綱要課件:09第九專題 新民主主義革命偉大勝利
評(píng)論
0/150
提交評(píng)論