久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

eclipse下SVN subclipse插件

 cici0086 2011-06-24

eclipse下SVN subclipse插件

本文目的

讓未使用過(guò)版本控制器軟件或者未使用過(guò)subversion軟件的人員盡快上手。

subversion的使用技巧很多,,這里只總結(jié)了最小使用集,,即主要的基本功能,能夠用來(lái)應(yīng)付日常工作,。

因此不涉及subversion服務(wù)器端的搭建和配置,。

為什么要使用版本控制

當(dāng)多人共同開發(fā)同一個(gè)軟件時(shí),會(huì)涉及源代碼的共享以及帶來(lái)的相關(guān)問(wèn)題,,比如追究某個(gè)代碼是由誰(shuí)在什么時(shí)間修改的,。

下面列出版本控制帶來(lái)的好處:

  • 為團(tuán)隊(duì)提供了所有項(xiàng)目文檔的回退按鈕,個(gè)人IDE工具只能提供某個(gè)文件的回退按鈕,,而不能做到,,比如回退到2008年6月12日下午3點(diǎn)10分時(shí)的所有項(xiàng)目文件;
  • 支持多個(gè)開發(fā)人員在可控的方式下為相同的代碼工作,;
  • 版本控制系統(tǒng)保存了文檔在過(guò)去的各個(gè)改動(dòng),,便于查找是誰(shuí),在何時(shí),,因?yàn)槭裁葱薷牧宋臋n,;
  • 支持在文檔的主線上同時(shí)有多個(gè)版本(版本的分支和合并是版本控制的主要手段,一些開發(fā)團(tuán)隊(duì)僅僅是簡(jiǎn)單的共享代碼主干),;
  • 支持查詢?cè)谀硞€(gè)時(shí)點(diǎn)上項(xiàng)目各個(gè)文檔的狀態(tài),可用于研究生產(chǎn)效率等(比如,,統(tǒng)計(jì)項(xiàng)目哪個(gè)時(shí)期代碼提交最活躍,,以及每個(gè)人的代碼提交頻次等等),也可用于對(duì)以前的軟件發(fā)行版的再發(fā)行(比如,,以前構(gòu)建的2.0版本的安裝包丟失了,,那么可以通過(guò)版本控制器記錄的歷史重新回溯到那個(gè)版本,然后重新構(gòu)建出安裝包),。

為什么使用subversion

首先,,考慮的是使用免費(fèi)開源和輕量級(jí)的版本控制器。

第二,,要求使用比較廣泛,,可選的有cvs和svn,。

這里選擇svn,主要考慮是比較好集成apache使用,,提交代碼支持原子級(jí)操作(即,,比如提交3個(gè)文件,如果因?yàn)榫W(wǎng)絡(luò)或者其他原因,,上傳2個(gè)文件后中斷,,svn能做到服務(wù)器端回滾到提交前的狀態(tài),而cvs做不到這點(diǎn),,需要手工檢查和恢復(fù)),。

subversion的程序構(gòu)成

subversion程序,和mysql很類似,,是c/s結(jié)構(gòu)的,,有客戶端和服務(wù)器端。服務(wù)器端和客戶端都是通過(guò)命令行方式啟動(dòng)和執(zhí)行的,。本文只會(huì)使用到客戶端的命令,。

第三方提供了各種圖形界面的客戶端工具,比如eclipse插件subclipse,,windows圖形界面工具tortoiseSVN,。這些后面會(huì)提到它們的基本使用。

subversion資源

安裝subversion

有關(guān)subversion和subclise的安裝暫略,,因?yàn)槟壳疤峁┑奶摂M機(jī)開發(fā)環(huán)境已經(jīng)安裝和配置,。

tortoiseSVN,可到官方網(wǎng)站上下載最新版本的windows安裝包,,默認(rèn)安裝,,不需要做其他設(shè)置,安裝后需要重啟計(jì)算機(jī),。能在資源管理器中鼠標(biāo)右鍵菜單看到如下圖所示條目,,就說(shuō)明安裝成功。

image

使用subversion

日常工作中使用subversion僅僅是幾個(gè)命令或者操作,,并不復(fù)雜,。但是它內(nèi)部的一些機(jī)制需要逐漸去理解。

檢出代碼

在剛開始進(jìn)入一個(gè)開發(fā)隊(duì)伍的時(shí)候,,已經(jīng)有版本控制和軟件項(xiàng)目,,使用的第一個(gè)命令往往是檢出(checkout)代碼?;蛘弋?dāng)使用和研究開源軟件的時(shí)候,,也是第一個(gè)要用到這個(gè)命令。這個(gè)命令的作用是把項(xiàng)目的源代碼下載到用戶本地,,并且?guī)в邪姹究刂菩畔ⅰ?/p>

比如,,執(zhí)行以下命令獲取一個(gè)項(xiàng)目的源代碼:

svn co http://easymorse./svn/trunk/vfs.demo/

這個(gè)命令將在本地當(dāng)前目錄建vfs.demo目錄并將該服務(wù)器目錄下的所有文件下載到本地,,并且,會(huì)生成隱藏文件.SVN目錄,,用于記錄版本控制信息,。

tortoiseSVN有圖形界面的檢出操作,但是命令行方便快捷,,建議使用命令行,。

如果使用eclipse并安裝了subclipse插件,可以通過(guò)插件導(dǎo)入項(xiàng)目,。

image

然后,,

image

選擇或者新建資源庫(kù)位置,

image

選擇資源庫(kù)中的項(xiàng)目目錄,。

image

然后,,就可以完成(finish)了。

image

初始導(dǎo)入

何時(shí)使用初始導(dǎo)入,,比如,,對(duì)于java開發(fā)人員來(lái)說(shuō),在eclipse中編寫了一個(gè)項(xiàng)目,,并決定把項(xiàng)目共享到版本控制器上,,這時(shí)就需要初始導(dǎo)入操作了。

以下以subclipse為例說(shuō)明初始導(dǎo)入的步驟,。

第一步,,選擇share project,共享你的項(xiàng)目:

image

選擇通過(guò)svn共享項(xiàng)目:

image

填寫svn提交的url:

image

這個(gè)url,,需要subversion的管理員告知你,,還有用戶名和密碼。如果想練習(xí)一下,,google提供了免費(fèi)的svn,,你可以通過(guò):http://code.google.com 申請(qǐng)項(xiàng)目,這樣就會(huì)有類似我上面的url和權(quán)限,。

然后可以直接點(diǎn)擊finish,,完成初始提交。選擇next,,可以做定制模塊名和初始提交的信息,一般不需要,。

如果你的svn服務(wù)器使用了https協(xié)議,,需要接受一個(gè)數(shù)字證書,一般選擇永久接受,。

image

之后,,會(huì)要求輸入用戶名和密碼,。建議勾選保存密碼,否則會(huì)很麻煩,。

image

這樣,,再看項(xiàng)目,會(huì)發(fā)現(xiàn)條目上多了問(wèn)號(hào),,這時(shí)需要選擇哪些目錄和文件需要提交,,哪些需要忽略,比如生成的class文件等,。

image

選擇需要忽略的文件或者目錄,,這時(shí)需要切換到導(dǎo)航視圖下才能看到所有文件和目錄:

image

從導(dǎo)航視圖看到的情況:

image

選中需要忽略的目錄和文件,操作svn:

image

然后提交整個(gè)項(xiàng)目即可,。有關(guān)提交的操作見(jiàn)下文,。

更新項(xiàng)目

項(xiàng)目在提交前,應(yīng)該先做更新項(xiàng)目操作,。比如有一個(gè)文件a.txt,,已經(jīng)提交到svn中,這樣,,可能有其他用戶提交了新的改動(dòng)到a.txt,,你現(xiàn)在又修改了a.txt,準(zhǔn)備提交你的改動(dòng),。先操作更新a.txt,,這樣如果該文件在svn服務(wù)器已經(jīng)改動(dòng),會(huì)將改動(dòng)加入到當(dāng)前本地的a.txt中,。

在subclipse中的操作:

image

提交代碼

提交代碼,,一般會(huì)級(jí)聯(lián)當(dāng)前目錄下所有改動(dòng)的內(nèi)容。

image

刪除代碼

對(duì)于不再使用的代碼,,可以直接刪除掉,,比如通過(guò)windows刪除文件,通過(guò)ubuntu的rm命令或者通過(guò)eclipse的delete功能,,然后提交項(xiàng)目,,subclipse會(huì)知道哪個(gè)文件被刪除了,并將這個(gè)變化通知給svn服務(wù)器,。

還原代碼

如果代碼做了改動(dòng),,可以是多個(gè)文件,也可以刪除了文件或者新增了文件,,但是沒(méi)有提交到svn服務(wù)器,,可以通過(guò)還原功能恢復(fù)到改動(dòng)前的樣子。

image

版本的分支與合并

版本的分支和合并,,是版本控制的核心功能,。

比如,,軟件通過(guò)版本的分支,將項(xiàng)目分配給多人做分工開發(fā),,通過(guò)版本合并,,將這些分工實(shí)現(xiàn)的代碼合并到新的版本中;或者,,修改代碼bug的時(shí)候,,可以先打出一個(gè)版本分支,保留出現(xiàn)bug的版本,,比如分支版本名稱為pre_fix_bug_2201,,這里2201表示bug的代號(hào),然后針對(duì)這個(gè)分支做修改fix這個(gè)bug,,再將修改后的內(nèi)容提交到一個(gè)新的分支版本,,比如post_fix_bug_2201,再到適當(dāng)時(shí)候?qū)⑦@個(gè)分支合并到代碼主干中去,。

以上說(shuō)了一下版本分支與合并的用途,,這里簡(jiǎn)單說(shuō)一下svn版本分支合并的基本原理。

首先是版本分支,,實(shí)際上是將當(dāng)前版本“copy”到分支上,,非常類似windows下,將某個(gè)目錄的快捷方式復(fù)制到其他路徑,。這種copy,,可以說(shuō)是輕量級(jí)copy或者叫廉價(jià)copy,不是復(fù)制版本內(nèi)容,,而是做一個(gè)內(nèi)部的引用,。這樣的copy很快,對(duì)服務(wù)器也沒(méi)有空間上的開銷,。

版本的合并,,是svn開發(fā)中的難點(diǎn),當(dāng)做版本合并的時(shí)候,,服務(wù)器會(huì)試圖智能的合并同一個(gè)文件的不同版本,,可能會(huì)帶來(lái)版本沖突,這需要操作者做手工的處理,,消除版本沖突,。合理分工的項(xiàng)目應(yīng)該可以通過(guò)管理手段盡量避免這種情況。

以下是通過(guò)subclipse演示版本分支的操作,。首先,,項(xiàng)目文檔應(yīng)該已經(jīng)全部提交,然后,選擇

image

然后,,填寫url,一般是在tags/目錄下:

image

然后默認(rèn)選項(xiàng),,next即可,,然后選擇finish按鈕。在svn的相應(yīng)路徑下就會(huì)有一個(gè)同名的項(xiàng)目,。

image

打分支,,實(shí)際上就是建立了一個(gè)項(xiàng)目的輕量級(jí)copy。

如何從版本的一個(gè)分支切換到另外一個(gè)分支,,這也是很重要的,,它能幫助你輕松在不同的項(xiàng)目版本中自動(dòng)切換,而不必在eclipse里維持多個(gè)項(xiàng)目,。

image

選擇要切換的項(xiàng)目版本路徑,,或者直接輸入亦可。

image 

然后點(diǎn)擊ok后,,項(xiàng)目即可切換到該版本下,。

在分支上做了改動(dòng),并且已經(jīng)提交(一般tags目錄下的項(xiàng)目約定是只讀的,,不建議改動(dòng),,這里是為了舉例方便),那么,,可以將這個(gè)版本合并到trunk(主干)代碼中,,讓主干也擁有最新的代碼。

image 

選擇需要合并的源,,比如從tags上面一個(gè)版本,,合并到主干(trunk)代碼中。

image

之后,,需要設(shè)置一些合并的特性,,這里默認(rèn)配置即可。

image

執(zhí)行完畢后,,會(huì)有一個(gè)合并報(bào)告,,可見(jiàn)沒(méi)有出現(xiàn)沖突情況。

image

這時(shí)候看源代碼,,可以發(fā)現(xiàn)有改動(dòng),,這些改動(dòng)就是合并過(guò)來(lái)的代碼。

image

改動(dòng)如果沒(méi)有問(wèn)題,,就可以提交,,這樣就完成了一次版本的合并工作。

 

 

“還原”已經(jīng)提交的改動(dòng)

如果文檔沒(méi)有提交,還原是很容易的,,只需執(zhí)行還原(revert)就可以了,。有時(shí)候,已經(jīng)提交了代碼,,結(jié)果發(fā)現(xiàn)了問(wèn)題,,需要回退到之前提交的版本,就不是很容易了,。

這時(shí)候的還原,,其實(shí)是將以前的某個(gè)修訂本(revision)覆蓋當(dāng)前的本地工作拷貝。然后再提交這些改動(dòng),,成為新的修訂本,。

下面演示一下。

首先提交了一個(gè)版本的改動(dòng),,這是以后需要還原回來(lái),,這里,為了以后還原方便,,要在提交的消息中說(shuō)明改動(dòng)了什么,。(這一步在開發(fā)中是必須的,是紀(jì)律)

image

下面,,再修改一下項(xiàng)目,,然后提交一次,這里故意增加一個(gè)文件,。

image

提交以后,,后悔了,想恢復(fù)到前一個(gè)修訂版,。雖然可以通過(guò)版本號(hào)進(jìn)行覆蓋還原,,但是一般人是無(wú)法記憶這個(gè)版本號(hào)的,另外就是實(shí)際情況往往更復(fù)雜,,不會(huì)像示例中那樣是相鄰的兩個(gè)修訂版,。

所以提交修訂版時(shí)的注解消息就顯得特別重要。

這時(shí)可以通過(guò)svn的日志功能查看到這些版本和它們的注釋消息,。

image

看到歷次版本的消息內(nèi)容,。

image

這樣,根據(jù)注釋,,我們很容易找到需要還原到以前的那個(gè)修訂版,。如果不放心,我們還可以根據(jù)上下文菜單,,對(duì)比兩個(gè)修訂版的區(qū)別,。

image

看比較結(jié)果,。可以看出,,增加了一個(gè)文件,,另外一個(gè)文件中有一處差異。

image

那么,,可以確定是從125修訂版恢復(fù)(還原),。

image

更改后的項(xiàng)目,相當(dāng)于用125修訂版還原了126修訂版,。

image

可以看到126版本添加的文件不見(jiàn)了,另外VfsDemo.java文件也還原到125版本的內(nèi)容,。這時(shí)提交將成為127版本,,這個(gè)版本其實(shí)就是125版本。算是還原了主干(trunk)上的代碼,。

image

刷新歷史,,可以看到修訂版已經(jīng)生效。

image

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多