jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          svn版本暗中偷換妙法

          Posted on 2010-11-15 11:44 幻海藍夢 閱讀(353) 評論(0)  編輯  收藏 所屬分類: 版本管理

          http://tieba.baidu.com/f?kz=739070271


          使用Subversion 管理代碼和文檔時,最苦惱的事情莫過去錯誤地Import了不該導入的東西,比較obj文件、ncb文件、bsc文件等,不僅浪費了Subversion 數據庫的空間(或者磁盤空間),也常常因為這些無用文件的微小變化使整個Project的版本信息發生變化。若是不留神把代碼目錄下的大量樣本或者幾個幾 百兆的AVI也Import了,那么,想象一下飛刀李每天下班后守夜備份源代碼時痛苦表情吧……
          最讓人氣憤的是,我們常用的 tortoisesvn工具并未提供取消本次Import的功能,Update to revision也不會把誤導入的東西從Subversion數據庫中清除。這意味著,面對錯誤的Import,你有權保持沉默,你所講的一切將會沒人理 睬。
          不過,tortoise再狡猾也斗不過好程序員,經過昨夜雨疏風驟的一番嘗試,終于發現了一個瞞天過海的辦法,和兄弟們共享一下,看起來我們 的后半生再也不必為錯誤的Import而喪心病狂地重建Subversion數據庫了。
          具體方法——
          1.Subversion數據庫目錄 結構為
          ├—conf
          ├—dav
          ├—db
          │ ├—revprops
          │ ├—revs
          │ └—transactions
          ├—hooks
          └—locks
          其中,db"revprops和db"revs分別保存各版本的增量 變化和各版本的屬性信息(如最后修改時間、作者等)。
          2.假設該數據庫存放在C:"SourceCode,且db"revprops和db "revs目錄中文件列表分別為:
          C:"SourceCode"db"revprops"0
          C:"SourceCode"db"revprops"1
          C:"SourceCode"db"revprops"2
          C:"SourceCode"db"revprops"3
          C:"SourceCode"db"revprops"4
          C:"SourceCode"db"revprops"5
          C:"SourceCode"db"revprops"6
          C:"SourceCode"db"revprops"7
          C:"SourceCode"db"revprops"8
          C:"SourceCode"db"revprops"9
          C:"SourceCode"db"revprops"10
          C:"SourceCode"db"revprops"11
          C:"SourceCode"db"revprops"12
          C:"SourceCode"db"revprops"13
          C:"SourceCode"db"revprops"14
          C:"SourceCode"db"revprops"15
          C:"SourceCode"db"revprops"16
          C:"SourceCode"db"revprops"17
          C:"SourceCode"db"revprops"18
          C:"SourceCode"db"revprops"19
          C:"SourceCode"db"revprops"20
          C:"SourceCode"db"revprops"21
          C:"SourceCode"db"revprops"22
          C:"SourceCode"db"revprops"23
          C:"SourceCode"db"revprops"24
          C:"SourceCode"db"revprops"25
          C:"SourceCode"db"revprops"26
          C:"SourceCode"db"revprops"27
          C:"SourceCode"db"revprops"28
          C:"SourceCode"db"revprops"29
          C:"SourceCode"db"revprops"30
          C:"SourceCode"db"revprops"31

          C:"SourceCode"db"revs"0
          C:"SourceCode"db"revs"1
          C:"SourceCode"db"revs"2
          C:"SourceCode"db"revs"3
          C:"SourceCode"db"revs"4
          C:"SourceCode"db"revs"5
          C:"SourceCode"db"revs"6
          C:"SourceCode"db"revs"7
          C:"SourceCode"db"revs"8
          C:"SourceCode"db"revs"9
          C:"SourceCode"db"revs"10
          C:"SourceCode"db"revs"11
          C:"SourceCode"db"revs"12
          C:"SourceCode"db"revs"13
          C:"SourceCode"db"revs"14
          C:"SourceCode"db"revs"15
          C:"SourceCode"db"revs"16
          C:"SourceCode"db"revs"17
          C:"SourceCode"db"revs"18
          C:"SourceCode"db"revs"19
          C:"SourceCode"db"revs"20
          C:"SourceCode"db"revs"21
          C:"SourceCode"db"revs"22
          C:"SourceCode"db"revs"23
          C:"SourceCode"db"revs"24
          C:"SourceCode"db"revs"25
          C:"SourceCode"db"revs"26
          C:"SourceCode"db"revs"27
          C:"SourceCode"db"revs"28
          C:"SourceCode"db"revs"29
          C:"SourceCode"db"revs"30
          C:"SourceCode"db"revs"31

          3. 假設C:"SourceCode"db"current內容為
          31 21r 2
          這表明當前版本為第31版

          4.假設最后一 次導入(revision = 31)出現失誤,希望回到前一個版本并放棄本次導入的全部內容,可以直接刪除
          C:"SourceCode"db "revs"31和C:"SourceCode"db"revprops"31兩個文件,并使用UltraEdit-32打開C:"SourceCode "db"current文件(注意此時不要選擇轉換到DOS格式),將其中的31修改為30即可。

          5.使用tortoisesvn工具提 供的show log功能,就可以看到目前的最新版本已經是30了,那些不想要的文件也不見了。

          轉自:創意安天論壇

          主站蜘蛛池模板: 台东县| 缙云县| 侯马市| 綦江县| 台江县| 浮梁县| 同仁县| 永清县| 龙游县| 宾阳县| 中方县| 浦县| 邓州市| 南阳市| 石狮市| 莱州市| 莒南县| 苏州市| 大城县| 志丹县| 屏山县| 高密市| 兴城市| 阿克陶县| 红原县| 宝山区| 禄丰县| 农安县| 娄底市| 和静县| 青州市| 姚安县| 无极县| 瑞昌市| 安阳市| 普安县| 宁蒗| 大安市| 通化县| 阿巴嘎旗| 崇明县|