硬廣:《SVN與TortoiseSVN實戰》系列已經寫了五篇,第二篇《SVN與TortoiseSVN實戰:標簽與分支》和第三篇《SVN與TortoiseSVN實戰:TortoiseSVN新建及合並分支》重點介紹了標簽和分支的概念及實際操作演示,關注人數較多,三、四篇《SVN與TortoiseSVN實戰:沖突詳解(二)》詳解了SVN如何判定沖突及沖突文件說明和解決沖突方法。
本篇詳細SVN中補丁的概念,版本控制之道這本書對於SVN的講解比較全面了,但書中也沒有講解補丁的概念,關於SVN補丁的介紹也寥寥無幾。
其實學習和掌握補丁的用法后,在某些項目環境中還是有用武之地的,主要講以下兩點:
1、SVN補丁的概念;
2、SVN補丁的應用場景;
3、SVN補丁的制作及應用;
感謝博友的建議,在每篇前寫明本篇所要講述的重點 ~。~
1、SVN補丁的概念
SVN補丁其實並不神秘,只是平時工作中接觸較少。
SVN補丁可以理解為一個patch格式的文件,這個patch格式文件可以忠實記錄文件變動,而這個patch文件是根據SVN中文件的修改制作的。
Create patch和Apply patch就是創建和應用補丁,至於Properties為什么在這一組會在屬性篇中講,TortoiseSVN菜單的分組划分是很有設計哲學的,沒事時可以仔細研究下。
2、SVN補丁的應用場景(一)
第一種場景看下這兩張圖:
圖一的方式可以用之前講的主干/分支來解決,每次修改主線版的內容通過合並的方式將修改合並到定制版中,這種方式需要在每個定制版中合並,人工每次操作非常麻煩,還容易出錯。
圖二是使用補丁的方式,主線版修改后創建補丁,在所有定制版中統一應用一次補丁,其目錄結構如下:
patches下是所有定制版的項目目錄,這樣划分可以在整個patches目錄上應用一次補丁,大大簡化了操作。
2、SVN補丁的應用場景(二)
還有一種是涉及到權限的應用,將某些項目組的成員配置成只有讀權限,而沒有寫權限。
這些只讀權限的成員不能直接提交修改,而需要將修改制作成補丁,發給具有寫權限的成員,審核通過后應用補丁,提交到SVN中。
這也是基於SVN的一種權限管理,熟悉Git的應該會比較理解。
3、SVN補丁的制作及應用(一)
最簡單的方法是基於修改的文件直接創建補丁,在將本地文件修改后,在簽入SVN之前(嘆號標記時),選中文件,使用TortoiseSVN的Create patch菜單可以直接將文件的修改創建為patch格式的補丁文件:
3、SVN補丁的制作及應用(二)
還有一種方式可以基於已簽入的改動來創建補丁,這種方式甚至可以創建降級補丁。
在主干目錄上使用TortoiseSVN的Show Log菜單,用Ctrl選中兩個版本,右鍵使用圖中標記的菜單:
新窗口中使用File Save存為補丁即可。
補丁的應用非常簡單了,就不演示了,選中應用位置使用Apply patch菜單選擇應用的補丁即可。
記錄,為更好的自己!