Sealyu

          --- 博客已遷移至: http://www.sealyu.com/blog

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
          1.create patch
          使用create patch可 以生成一個或者多個修改過的文件和當前版本差異的patch(支持目錄樹)
          通常情況下,create patch將 修改保存為.patch或.diff文件
          可以將.patch或.diff文件的內容復制出來,發給需要審查的人
          .patch或.diff文件中記錄了發生這個patch的版本號以及具體修改的內容
          針對某個文件或某幾個文件的若干種修改,可以生成多個.patch或.diff文件
          2.apply patch
          可以將.patch或.diff文件應用到對應版本的項目,就像打補丁一樣
          同一個項目/文件夾下,可以選擇應用需要的patch
          通常來說,應用一個patch時文件版本和生成這個patch時文件的版本是一致的;如果不一致,也可以強制應用,svn會自動進行diff(這時候需要手動合并)
          linux下,可以使用系統的patch命令來應用patch,eg: patch -p0 <xxx.patch
          3.使用
          暫時不需要提交或不允許提交的修改,可以選擇create patch來保存修改的內容
          選擇create patch來 保存修改的內容并且提交patch,通過審查后,(在服務器端)應用patch
          當一個功能有多種解決方案時,可以生成多個patch,(提交后)分別經過測試,再 決定應用哪個patch
          多個功能分別需要改同一個文件的不同地方(即沒有同一行),可以做成多個patch, 應用patch的順序沒有要求(在linux下應用也一樣成功,只是會生成多個.orig文 件)
          多個連續性的功能,他們修改的文件都與一個base作patch,例:p1在v1的 基礎上開發v2,生成v2和v1之間的patch1;p2在v2的基礎上開發v3,生成v3和v1之間的patch2,這樣只要應用patch2也就應用 了patch1。
          4.帶來的問題
          一個較早的patch,在經過多輪提交后,如果想再要應用,需要嚴格的diff
          如果兩個patch分別改了同一行代碼,應用第一個patch后要再應用第二個patch時, 仍然需要diff。如果在linux下,會產生沖突,生成.orig和.rej兩個文件(此時仍然需要手動進行比較合并)
          第3部分提到的連續性,要準確的預見到,比較困難
          第3部分提到的多個連續的功能,后做的功能的某個文件更新了先做的功能的內容,但先做的功能可能還涉及到其他文件,容易造成漏更新文件的情況
          posted on 2010-04-21 23:21 seal 閱讀(586) 評論(0)  編輯  收藏 所屬分類: 版本控制
          主站蜘蛛池模板: 沙洋县| 樟树市| 蕲春县| 如东县| 富平县| 自贡市| 团风县| 乌拉特前旗| 望谟县| 西藏| 青龙| 连平县| 宁强县| 肇东市| 营山县| 通州区| 太仆寺旗| 如皋市| 阿拉善左旗| 渝北区| 常宁市| 宜良县| 都兰县| 石狮市| 汤原县| 称多县| 郴州市| 长泰县| 台中县| 紫云| 绿春县| 西贡区| 清水河县| 喜德县| 闽侯县| 班玛县| 招远市| 肃南| 安达市| 同江市| 南岸区|