svn:忽略 - 它是如何工作的?

时间:2011-09-16 18:32:39

标签: svn svnignore

我很难理解svn:ignore属性。如果有人可以帮助我,那就太好了。

我从svn存储库中检出了一个grails web应用程序,该存储库具有应用于* .log文件和/ target文件夹的svn:ignore属性。显然,当我检出* .log文件时,/ target文件夹丢失了。在我的本地工作副本上处理此grails应用程序后,将创建/ target目录和* .log文件。现在,当我将更改提交到svn repo时,/ target文件和* .log文件是否也会被提交?或者它们会被自动忽略,因为在grails应用程序的svn副本上已经存在svn:ignore属性?

希望我已经说清楚了。

感谢您提供的任何帮助。

2 个答案:

答案 0 :(得分:3)

  

svn:ignore属性包含一定的文件模式列表   Subversion操作将忽略。也许是最常用的   特殊属性,它与全局忽略一起使用   运行时配置选项(参见“Config”一节)来   从命令svn status中过滤未版本控制的文件和目录,   svn add,和svn import。

     

很容易解释svn:ignore属性背后的基本原理。   Subversion不假设一个文件中的每个文件或子目录   工作副本目录用于版本控制。资源必须   使用svn add明确地放在Subversion的管理下   或svn import命令。因此,通常有很多资源   一个没有版本化的工作副本。

     

现在,svn status命令显示为每个输出的一部分   尚未编译的工作副本中的无版本文件或子目录   通过global-ignores选项(或其内置默认值)过滤掉   值)。这样做是为了让用户可以看到他们是否可能   忘记将资源添加到版本控制。

     

但是Subversion不可能猜出每个资源的名称   应该被忽略。此外,经常有一些事情应该是   在特定存储库的每个工作副本中都被忽略。强迫   该存储库的每个用户都要为这些资源添加模式   他们的运行时配置区域不仅仅是一个负担,而且还有   可能与其他工作的配置需求冲突   用户已签出的副本。

     

解决方案是存储对其唯一的忽略模式   资源可能出现在目录的给定目录中   本身。基本上是无版本资源的常见示例   目录唯一但可能出现在那里,包括来自的输出   节目汇编。或者 - 使用更适合此的示例   book - 作为结果生成的HTML,PDF或PostScript文件   将一些源DocBook XML文件转换为更清晰的输出   格式。

<强>参考:

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

答案 1 :(得分:1)

svn:ignore属性包含某些Subversion操作将忽略的文件模式或目录名称列表。如果将更改提交到svn repo,则不会提交/ target文件和* .log文件,并且由于grails应用程序的svn副本上已存在的svn:ignore属性,它们会自动被忽略。