京山游俠

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

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

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

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

          01.png

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

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

          03.png

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

          04.png

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

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

          05.png

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

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

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

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

          06.png

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

          07.png

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

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


          評論

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

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

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

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

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

          2009-03-20 22:05 by swanky
          我一直以為,出現這種沖突,是技術上的問題,以為自己操作的錯誤,以為還有更好的方法來處理,原來,碰到這種問題,還真難辦。雖然這些都會,但還是受益匪淺!
          主站蜘蛛池模板: 都昌县| 中阳县| 涞水县| 夹江县| 屯留县| 郑州市| 伊通| 麻阳| 清徐县| 咸宁市| 吉安市| 南和县| 孙吴县| 航空| 轮台县| 临沭县| 山阴县| 汉源县| 安溪县| 长顺县| 嘉善县| 高邑县| 永定县| 曲水县| 康保县| 新巴尔虎左旗| 台南市| 凤台县| 莒南县| 措勤县| 绥德县| 靖州| 玛沁县| 云林县| 温泉县| 普兰县| 高州市| 炉霍县| 扶沟县| 依安县| 右玉县|