2011-09-16 88 views
2

我很難理解svn:ignore屬性。如果有人能幫助我,這將是很好的。svn:忽略 - 它是如何工作的?

我從svn倉庫中檢出了一個grails web應用程序,該倉庫已將svn:ignore屬性應用於* .log文件和/ target文件夾。很顯然,當我檢出* .log文件和/目標文件夾丟失。在我的本地工作副本上處理這個grails應用程序後,會創建/ target目錄和* .log文件。現在,當我將更改提交到svn repo時,/ target文件和* .log文件是否也會被提交?或者他們會被自動忽略,因爲svn:ignore屬性已經存在於svn的grails應用程序副本中?

希望我已經說清楚了。

感謝您提供的任何幫助。

+0

如果您希望人們繼續回答您的問題,您需要批准您之前提出的問題的答案(請參閱答案左側的複選標記)。 – JVerstry

+0

同意。請批准或「接受」給您帖子的答案。否則,你不會幫助社區的評級系統。 –

+0

我很抱歉我知道..我批准了我以前的問題的答案,並將繼續這樣做.. –

回答

3

svn:ignore屬性包含一定的文件模式列表,其中某些特定的操作將被忽略。也許是最常用的 特殊屬性,它與全局忽略 運行時配置選項(請參閱「配置」一節)配合使用,以 過濾未版本控制的文件和目錄命令svn status, svn add,和svn導入。

svn:ignore屬性背後的基本原理很容易解釋。 Subversion不會假定 工作副本目錄中的每個文件或子目錄都用於版本控制。資源必須使用svn add 或svn import命令明確地置於Subversion的管理之下。因此, 中經常有很多資源沒有版本化工作副本。現在

,svn status命令顯示其輸出的每個 版本的文件或子目錄的工作副本,是不是已經 被過濾掉的一部分,全球忽略選項(或者其內置的默認 值)。這樣做是爲了讓用戶可以看到他們是否忘記了向版本控制添加資源。

但是Subversion不可能猜到 應被忽略的每個資源的名稱。此外,在特定存儲庫的每個工作副本中經常會忽略的內容應該是 。爲了強制 該存儲庫的每個用戶將這些資源的模式添加到 其運行時配置區域將不僅僅是一個負擔,而且還有 可能與用戶已檢查的其他工作 副本的配置需求衝突出。

解決方案是存儲忽略模式,這些模式對於可能出現在給定目錄中的目錄 本身可能會出現的 資源是唯一的。基本上 目錄特有的非版本化資源的常見例子,可能會出現在那裏,其中包括來自 程序編譯的輸出。或者 - 使用更適合於此書的示例 - 作爲將源DocBook XML文件轉換爲更清晰的輸出 格式的 的結果而生成的HTML,PDF或PostScript文件。

參考:

http://svnbook.red-bean.com/en/1.1/ch07s02.html

1

的svn:ignore屬性中包含的文件模式或目錄名,其中某些Subversion操作將忽略列表。如果您將更改提交到svn repo中,那麼/ target文件和* .log文件將不會被提交,並且由於svn:ignore屬性已經存在於svn副本的grails應用程序中,所以它們會自動忽略。