你不能忽視的東西,在你的資料庫。這不是在Subversion中忽略的工作。
忽略僅僅是爲了防止意外加入文件到存儲庫的方式。如果存儲庫中已存在文件,則不能忽略它。
全球忽略只適用於文件,而不是目錄。如果你說忽略你的Subversion配置文件.settings
,它不會忽略一個名爲.settings
目錄,但只有一個名爲.settings
。而且,它只會忽略.settings
文件,如果該文件不在存儲庫中。
基本上,如果你說svn add *
或svn status
,不在版本庫中的文件,您搜索全局忽略圖案不會被添加在svn status
所示。就是這樣。
您可以創建一個名爲svn:ignore
目錄類似的屬性。但svn:ignore
也會忽略目錄。例如,如果你有一個Maven項目,可以設置svn:ignore
= target
和目標文件夾將不被報告。但svn:ignore
僅適用於屬性所在的目錄,而不適用於子目錄。
所以你怎麼能忽略.settings
目錄?簡單:你不檢查它。不幸的是,在Subversion中沒有簡單的方法。這裏是你可以做什麼:
$ svn checkout --depth=immediates http://server/src/myproj
這將檢查所有在您的工作目錄中的文件夾和文件,但沒有任何子目錄。在Kornshell和BASH(如果設置shopt -s extglob
):
$ svn update --set-depth=infinity !(.settings)
這將繼續在所有目錄的結帳除了.settings
目錄。
你也可以這樣做:
$ svn update --set-depth=exclude .settings
刪除.settings
目錄一旦它已經簽出。這不會從資源庫中刪除.settings
目錄,但它會從你的工作目錄中刪除.settings
目錄,並svn diff
您的工作目錄(而不是庫的URL)將不報到的.settings
下的任何內容。
的一點大重要的一點,我需要強調的是:只有忽略防止意外添加文件到您的存儲庫。它不會阻止某人添加它,並且一旦它在那裏,它就不會被忽略。
此外,您的全局忽略設置對所有人都不是全球性的。只是給你。如果您想阻止人們添加不應添加到存儲庫的文件,則需要預先提交鉤子,如this one。
這個鉤子可以用來防止與特定名稱的文件或目錄被提交,也可以用來確保對文件和目錄的屬性設置。例如,您可能需要確保人們無法在項目中添加.settings
目錄。或者目錄上的svn:ignore
屬性設置爲忽略.settings
目錄。
在Windows上,文件'config'是'%APPDATA%\ Subversion \ config'。例如。 'C:\ Documents and Settings \ Peter \ Application Data \ Subversion \ config'。 – 2016-11-29 18:29:14