京山游俠

          專注技術(shù),拒絕扯淡
          posts - 50, comments - 868, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          上一篇中,我使用Subversion建立了自己的版本庫,服務(wù)器端使用的是Subversion自帶的工具svnserve。當(dāng)然,實際應(yīng)用中更流行的是使用httpd搭配Subversion模塊。使用httpd的安裝和配置方法見http://www.aygfsteel.com/jarod/archive/2007/10/27/156372.html

          建立服務(wù)器后,就可以使用它來工作了。我先建立了一個Hello World工程,然后將它導(dǎo)入到版本庫。由此可見,向版本庫中導(dǎo)入數(shù)據(jù),是使用版本庫的第一個步驟,然而,這個步驟并不常用,因為每個項目只需要導(dǎo)入一次而已。

          假設(shè)youxia導(dǎo)入這個工程后,就下班回家休息了,但是onionz是一個夜貓子,他在晚上又對這個工程進行了更改。第二天一早,youxia又開始他的工作,他想知道在他休息的時候項目有什么新的進展,這個時候,他可以在項目名上點鼠標(biāo)右鍵,從快捷菜單中選擇“比較對象”->“資源庫中的最新內(nèi)容”,如下圖:

          01.png

          從下面圖中可以看到,有哪些文件進行了更改,也可以看到改變的是這些文件的哪幾行:
          02.png

          看完之后,youxia應(yīng)該把版本庫中的最新內(nèi)容更新到他的工作拷貝中,以便進行他這一天的工作。他可以選在快捷菜單中的“小組”->“更新”,如下圖:

          03.png

          這個時候,版本庫中的最新內(nèi)容就會被下載到y(tǒng)ouxia的工作拷貝中,下圖是控制臺的輸出內(nèi)容,其中文件名前的“A”代表這個文件是新增加的,而“U”代表這個文件是被更改過了的。如下圖:

          04.png

          由于截圖太占用屏幕空間,因此,下面的菜單操作將不再提供圖片了,畢竟,跟SVN有關(guān)的操作都在“小組”和“比較對象”這兩個菜單中,用起來也很簡單。

          這個時候,youxia就可以使用他的工作拷貝來進行他的工作了。在他完成修改后,他需要把他的工作提交到服務(wù)器。不過且慢,再提交之前還是先看看今天做了哪些工作,要檢查清楚,不然,有可能把不小心進行的誤操作也提交到版本庫。要查看做了哪些修改,可以選擇菜單“比較對象”->“基本修訂版”,比較結(jié)果如下圖:

          05.png

          在這里,我要對“基本修訂版”做一個解釋,什么是基本修訂版呢?我們可以理解成我們剛剛更新后存儲在工作拷貝中的版本,也就相當(dāng)于我們的工作還沒開始進行時的內(nèi)容。因此,這個比較得到的結(jié)果就是我們今天工作的成果。在這個強大的IDE中,其實并不一定需要執(zhí)行這個命令,只要看看工作臺左邊的“包資源管理器”,文件圖標(biāo)發(fā)生了變化的文件,都是被修改過了的。

          確認(rèn)之后,點擊快捷菜單“小組”->“提交”,youxia就把他今天的所有工作都提交到版本庫中了。

          以上的流程,比較類似于單用戶工作的模式,沒有沖突發(fā)生。整個過程可以總結(jié)為“更新”——“修改”——“提交”,中間夾雜著兩次“比較”,其實要不要比較也無所謂。然而現(xiàn)實工作中往往比這要復(fù)雜得多,極有可能是多個用戶在同時編輯同一個文件,當(dāng)你想提交的時候,版本庫中的內(nèi)容已經(jīng)發(fā)生了改變。

          如果發(fā)生沖突,提交過程會失敗,如下圖:

          06.png

          這個時候,就需要再一次點擊快捷菜單“小組”->“更新”,所有的沖突就可以體現(xiàn)出來了,如下圖:

          07.png

          這個時候,就需要和修改了該文件的程序員進行溝通了,在達(dá)成一致后,才能決定這個文件最終保留什么內(nèi)容。切不可在沒有溝通的情況下隨便刪掉別人的內(nèi)容,那太不尊重人了,除非你是這個項目的老總。形式上的修改之后,還要考慮到這么修改以后軟件是否可以正常運行,這就離不開單元測試了。測試通過之后,可以點擊快捷菜單“小組”->“標(biāo)記為已解決”來告訴SVN沖突已經(jīng)被解決了。最后,點擊“小組”->“提交”,將最后的修改提交到版本庫。

          ?在有沖突發(fā)生時,整個過程可總結(jié)為“更新”——“修改”——“試提交”——“溝通”——“解決沖突”——“單元測試”——“提交”。


          評論

          # re: 使用Subversion進行源代碼管理(三):常用操作  回復(fù)  更多評論   

          2008-05-03 18:55 by SVN開源社區(qū)
          不錯http://www.svnhost.cn

          # re: 使用Subversion進行源代碼管理(三):常用操作  回復(fù)  更多評論   

          2008-07-12 10:24 by 莫愁
          不知道是不是原創(chuàng),文章寫的不錯!
          有點缺憾是關(guān)于沖突部分介紹的不夠詳細(xì),有些讓人費解,能夠把沖突的解決在介紹詳細(xì)些就更好了

          # re: 使用Subversion進行源代碼管理(三):常用操作  回復(fù)  更多評論   

          2009-03-20 22:05 by swanky
          我一直以為,出現(xiàn)這種沖突,是技術(shù)上的問題,以為自己操作的錯誤,以為還有更好的方法來處理,原來,碰到這種問題,還真難辦。雖然這些都會,但還是受益匪淺!
          主站蜘蛛池模板: 明光市| 安岳县| 崇信县| 太康县| 罗源县| 安塞县| 青岛市| 班玛县| 延长县| 竹北市| 慈溪市| 兴山县| 会同县| 扶绥县| 绵竹市| 云梦县| 普安县| 凉山| 张掖市| 旬邑县| 咸宁市| 马鞍山市| 阿拉善盟| 鄂伦春自治旗| 微博| 九寨沟县| 新野县| 廊坊市| 柏乡县| 咸丰县| 海兴县| 茌平县| 泽普县| 岳西县| 惠水县| 玉龙| 大同县| 霞浦县| 嘉鱼县| 开阳县| 达尔|