在大多数项目中,您会有一些文件和文件夹不应受到版本控制。 这些可能包括编译器创建的文件,例如 *.obj, *.lst
,也可能是用于存储可执行文件的输出文件夹。 每当您提交更改时,TortoiseSVN 都会显示您未版本控制的文件,这会填满提交对话框中的文件列表。 当然,您可以关闭此显示,但这样您可能会忘记添加新的源文件。
避免这些问题的最佳方法是将派生文件添加到项目的忽略列表。 这样,它们永远不会出现在提交对话框中,但真正的未版本控制的源文件仍然会被标记出来。
如果您在单个未版本控制的文件上单击鼠标右键,然后从上下文菜单中选择 → 命令,则会出现一个子菜单,允许您选择仅该文件,或所有具有相同扩展名的文件。 两个子菜单也都有 (递归地)
等效项。 如果您选择多个文件,则没有子菜单,您只能添加那些特定的文件/文件夹。
如果您选择忽略上下文菜单的 (递归地)
版本,则该项目不仅会在所选文件夹中被忽略,而且在所有子文件夹中也会被忽略。 但是,这需要 SVN 客户端版本 1.8 或更高版本。
如果您想从忽略列表中删除一个或多个项目,请在这些项目上单击鼠标右键,然后选择 → 。 您也可以直接访问文件夹的 svn:ignore
属性。 这允许您使用文件名通配符指定更通用的模式,这在下面的章节中描述。 阅读 名为“项目设置”的章节,以获取有关直接设置属性的更多信息。 请注意,每个忽略模式都必须放在单独的一行上。 用空格分隔它们不起作用。
忽略文件的另一种方法是将它们添加到全局忽略列表。 这里最大的区别是全局忽略列表是客户端属性。 它适用于所有 Subversion 项目,但仅在客户端 PC 上。 通常,最好尽可能使用 svn:ignore
属性,因为它可应用于特定的项目区域,并且适用于检出该项目的所有人。 阅读 名为“通用设置”的章节,以获取更多信息。
已版本控制的文件和文件夹永远不能被忽略 - 这是 Subversion 的一个特性。 如果您错误地版本控制了一个文件,请阅读 名为“忽略已版本控制的文件”的章节,以获取有关如何 “取消版本控制” 它的说明。
Subversion 的忽略模式使用文件名通配符,这是一种最初在 Unix 中用于使用元字符作为通配符来指定文件的技术。 以下字符具有特殊含义
匹配任何字符串,包括空字符串(没有字符)。
匹配任何单个字符。
匹配方括号中包含的任何字符之一。 在方括号内,用 “-” 分隔的一对字符匹配词汇上介于两者之间的任何字符。 例如,[AGm-p]
匹配 A
、G
、m
、n
、o
或 p
中的任何一个。
模式匹配区分大小写,这可能会在 Windows 上引起问题。 您可以通过配对字符来强制不区分大小写,例如,要忽略 *.tmp
,无论大小写,您可以使用像 *.[Tt][Mm][Pp]
这样的模式。
如果您想要通配符的官方定义,您可以在 shell 命令行语言的 IEEE 规范 模式匹配表示法 中找到它。
您不应在模式中包含路径信息。 模式匹配旨在用于纯文件名和文件夹名称。 如果您想忽略所有 CVS
文件夹,只需将 CVS
添加到忽略列表即可。 无需像早期版本那样指定 CVS */CVS
。 如果您想忽略 tmp
文件夹在 prog
文件夹中存在时的所有 tmp
文件夹,但在 doc
文件夹中不存在时,则应使用 svn:ignore
属性。 使用全局忽略模式无法可靠地实现此目的。