SVN與TortoiseSVN實戰:屬性的奇技淫巧(二)


硬廣:《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實戰:沖突詳解(一)》講解的比較清楚,觸類旁通。


記錄,為更好的自己!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM