<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    gdufo

     

    eclipse下SVN subclipse插件

    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ī)開(kāi)發(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ī)制需要逐漸去理解。

    檢出代碼

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

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

    svn co http://easymorse.googlecode.com/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開(kāi)發(fā)人員來(lái)說(shuō),在eclipse中編寫(xiě)了一個(gè)項(xiàng)目,并決定把項(xiàng)目共享到版本控制器上,這時(shí)就需要初始導(dǎo)入操作了。

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

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

    image

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

    image

    填寫(xiě)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ù)字證書(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)目分配給多人做分工開(kāi)發(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)有空間上的開(kāi)銷。

    版本的合并,是svn開(kāi)發(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

    然后,填寫(xiě)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)了什么。(這一步在開(kāi)發(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

    posted on 2012-04-28 21:09 gdufo 閱讀(22447) 評(píng)論(0)  編輯  收藏 所屬分類: SVN等版本控制器

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    Hibernate

    友情鏈接

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 综合亚洲伊人午夜网 | 国产一区二区三区免费| 又大又黄又粗又爽的免费视频| 久操免费在线观看| 久久精品国产亚洲av成人| 久久久亚洲欧洲日产国码aⅴ| 永久免费AV无码网站国产| 91免费国产在线观看| 久久亚洲日韩看片无码| 亚欧在线精品免费观看一区| 国产成人免费手机在线观看视频| 久久久亚洲欧洲日产国码农村| 精品一区二区三区免费| 久久精品国产亚洲AV高清热| 永久在线观看www免费视频| 亚洲一区二区三区无码国产| 羞羞网站在线免费观看| 亚洲美女高清一区二区三区| 亚洲福利一区二区| 一级看片免费视频囗交| 成人毛片免费观看| 亚洲国产成人精品不卡青青草原| 亚洲中文字幕人成乱码| 浮力影院第一页小视频国产在线观看免费 | 羞羞网站免费观看| 国产亚洲精品成人a v小说| 亚洲午夜一区二区三区| 国产小视频免费观看| 中国一级毛片视频免费看| 夜色阁亚洲一区二区三区| 91精品国产亚洲爽啪在线观看| 免费精品国产自产拍在线观看图片 | 国产亚洲欧洲Aⅴ综合一区| 久久国产精品一区免费下载| 亚洲成_人网站图片| 亚洲国产精品无码久久久久久曰| 美女视频黄免费亚洲| 亚洲天堂中文字幕在线| 午夜亚洲国产精品福利| 久久久久久亚洲精品| 国产三级免费电影|