硬廣:《SVN與TortoiseSVN實戰》系列已經寫了七篇,本系列結合TortoiseSVN對SVN中容易被忽視的部分進行了詳解。
關於屬性的奇技淫巧較多,分為兩篇來寫,第一篇詳見《SVN與TortoiseSVN實戰:屬性的奇技淫巧(一)》,內容概要:
1、屬性的概念和基礎操作;
2、屬性的關鍵字展開;
3、使用屬性忽略某些文件;
4、設置Mime類型;
5、自動設置屬性;
6、引用外部項目;
7、設置簽入日志限制;
8、屬性沖突;
4、設置Mime類型
SVN將項目倉庫中的文件分為兩種:文本文件和二進制文件。
由於二進制文件是不可讀的,因此SVN對於合並文件、處理沖突時會對二進制文件進行區別對待。
使用TortoiseSVN的Properties菜單打開屬性窗口,使用New按鈕選擇Minme-Type,如下圖進行設置:
大家可以試一下設置為二進制后產生沖突與文本類型的差別。
5、自動設置屬性
自動設置屬性其實就是SVN對所有某個類型的文件進行相同的屬性自動設置。
比如把所有的.java文件設置一個屬性,可以使用如下配置:
enable-auto-props = yes [auto-props] *.java = svn :keywords =Date Rev Id *.txt = svn :keywords =LastChangedDate LastChangedRevision
自動設置屬性僅在本地有效。
6、引用外部項目
有時候,你的SVN中的項目可能依賴了另一個項目倉庫中的代碼,通常這些共用和通用的代碼會有一個獨立的項目倉庫。
SVN提供了externals屬性來把其它項目倉庫中的代碼納入到你的本地拷貝中,而這些簽出的外部依賴項建議作為只讀拷貝,不要對其修改。
新建一個目錄,使用TortoiseSVN的Properties菜單打開屬性窗口,使用New按鈕選擇Externals:
在URL中輸入外部依賴項的SVN地址即可。
7、設置簽入日志限制
在團隊管理中要求每次提交必須填寫提交日志是強烈推薦的做法,可以幫助團隊成員了解其他成員的修改情況,也便於做歷史追蹤。
TortoiseSVN通過自有的屬性,允許設置提交日志和鎖定日志的最小長度。如果你輸入的日志短於預設值,提交會被禁止,這兩個屬性如下:
tsvn:logminsize;
tsvn:lockmsgminsize;
由於是通過TortoiseSVN自有的屬性來設置的,因此只有使用TortoiseSVN客戶端才有效。
在項目根目錄上右鍵,使用TortoiseSVN的Properties菜單打開屬性窗口,使用New按鈕選擇Log Sizes:
1、2分別是簽入和加鎖的日志最小字符數。
還有一種實現這種限制的方法是在SVN服務端編寫鈎子,不過稍微麻煩一點。
8、屬性沖突
屬性跟文件一樣,不同成員同時對同樣位置的修改也會產生沖突,更簡單點說是對同一個屬性的修改。
如果因為其他用戶已經提交了同樣的屬性,提交時出現沖突,會產生一個 .prej
文件。
沖突的處理窗口如下:
對於沖突處理,可以參考《SVN與TortoiseSVN實戰:沖突詳解(一)》講解的比較清楚,觸類旁通。
記錄,為更好的自己!