posts - 262,  comments - 221,  trackbacks - 0

          【19】切換分支


          “分支”的一個(gè)重要作用就是并行開(kāi)發(fā)---在企業(yè)級(jí)開(kāi)發(fā)中,通常需要同時(shí)開(kāi)發(fā)軟件的新版本和維護(hù)軟件的舊版本,trunk目錄通常用于存放最新的代碼,而branch目錄通常用于存放某個(gè)開(kāi)發(fā)過(guò)程中的分支。

          例如:在開(kāi)發(fā)ECoupon項(xiàng)目的過(guò)程中,程序員為了試驗(yàn)一個(gè)新需求或新功能是否可用,需要另外開(kāi)辟一個(gè)空間來(lái)做測(cè)試。但是這個(gè)程序員的工作不應(yīng)該影響到其他人的進(jìn)度,或者說(shuō)在主干線上工作的人員進(jìn)度不能受到這個(gè)程序員的影響。那么此時(shí)分支的作用就顯現(xiàn)出來(lái)了。

          我們可以給該程序員創(chuàng)建一個(gè)分支,該分支的原始版本可以來(lái)自于主干的最新可運(yùn)行代碼,讓這個(gè)程序員工作在這個(gè)分支上,而其他人并行地進(jìn)行主干線的開(kāi)發(fā)。但是因?yàn)榇饲斑@個(gè)程序員的本地工作副本是指向主干,所以他必須重新把版本關(guān)系指向這個(gè)屬于他的最新分支。

          這時(shí)他有兩種做法:
           A.從分支中檢出一份拷貝到不同于原來(lái)ECoupon項(xiàng)目的位置,然后獨(dú)立開(kāi)發(fā)
           B.使用svn switch命令來(lái)切換到版本庫(kù)的不同位置。

          這里我們選擇方法B。svn switch命令的用法是:svn switch [--relocate] URL。該命令有兩種用法:一種是不使用參數(shù)relocate的,一種是使用relocate參數(shù)的。它們的使用原則如下:

           A.如果切換后的版本庫(kù)路徑還是在同一個(gè)版本庫(kù),只是在不同的路徑下。那么使用svn switch URL
           B.如果切換后的版本庫(kù)位置已經(jīng)改變(主機(jī)遷移,版本庫(kù)遷移),但是目錄結(jié)構(gòu)不變。就需要relocate參數(shù)

          因?yàn)槲覀兦袚Q的新路徑是在同一個(gè)版本庫(kù)下,只是路徑變了。所以我們用如下命令就可以了

          E:\Temp\ECoupon_tmp>svn switch http://localhost:8000/svn/Workspace/Ericsson/ECoupon_GA/branches/paul --username=guest --
          password
          =guest
           U   .
          Updated 
          to revision 38.

          現(xiàn)在我們檢查這個(gè)本地工作副本的信息,它已經(jīng)轉(zhuǎn)向分支paul了
          E:\Temp\ECoupon_tmp>svn info .
          Path: .
          URL: http:
          //localhost:8000/svn/Workspace/Ericsson/ECoupon_GA/branches/paul
          Repository Root: http:
          //localhost:8000/svn/Workspace
          Repository UUID: 06f3a259
          -b3b5-ff4e-9a70-52e8834f1976
          Revision: 
          38
          Node Kind: directory
          Schedule: normal
          Last Changed Author: qlinpen
          Last Changed Rev: 
          38
          Last Changed 
          Date2009-12-10 18:47:59 +0800 (星期四, 10 十二月 2009)

          一個(gè)簡(jiǎn)單的命令就成功地把版本庫(kù)和本地工作副本的聯(lián)系切換過(guò)了!

          注意上面的例子中我們沒(méi)有使用--relocate參數(shù),這是因?yàn)槲覀兦袚Q的前后始終都是在同一個(gè)版本庫(kù),如果現(xiàn)在版本庫(kù)的主機(jī)換了那么就需要加上該參數(shù)了


          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2009-12-10 19:02 Paul Lin 閱讀(398) 評(píng)論(0)  編輯  收藏 所屬分類: 項(xiàng)目管理
          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點(diǎn)博客

          好友博客

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安宁市| 津市市| 宝应县| 芜湖市| 廉江市| 肇庆市| 正定县| 尉氏县| 天津市| 开化县| 廉江市| 彝良县| 宜兴市| 鄢陵县| 崇义县| 中江县| 潢川县| 汉寿县| 太仓市| 辽阳县| 东光县| 志丹县| 安阳县| 泰宁县| 保德县| 山丹县| 京山县| 兰溪市| 富蕴县| 内乡县| 浪卡子县| 乌恰县| 安庆市| 安顺市| 手游| 保康县| 南川市| 灵丘县| 托克托县| 平远县| 泰安市|