2011-09-16 58 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应用程序中,所以它们会自动忽略。