手册

忽略文件和目录

图 4.33. 未版本化文件的资源管理器上下文菜单

Explorer context menu for unversioned files


在大多数项目中,您将拥有不应该进行版本控制的文件和文件夹。这些可能包括编译器创建的文件,*.obj, *.lst,也许是用于存储可执行文件的输出文件夹。每当您提交更改时,TortoiseSVN 都会显示您的未版本化文件,这会填满提交对话框中的文件列表。当然,您可以关闭此显示,但您可能会忘记添加新的源文件。

避免这些问题的最佳方法是将派生文件添加到项目的忽略列表中。这样,它们将永远不会出现在提交对话框中,但真正的未版本化源文件仍将被标记出来。

如果您 右键单击 单个未版本化文件,然后从上下文菜单中选择命令 TortoiseSVN添加到忽略列表,将出现一个子菜单,允许您仅选择该文件,或选择所有具有相同扩展名的文件。这两个子菜单也都有一个 (递归) 等效项。如果您选择多个文件,则没有子菜单,您只能添加这些特定文件/文件夹。

如果您选择忽略上下文菜单的 (递归) 版本,则该项目不仅会被忽略所选文件夹,还会被忽略所有子文件夹。但是,这需要 SVN 客户端版本 1.8 或更高版本。

如果您想从忽略列表中删除一个或多个项目,请 右键单击 这些项目,然后选择 TortoiseSVN从忽略列表中删除 您也可以直接访问文件夹的 svn:ignore 属性。这允许您使用文件名通配符指定更通用的模式,如以下部分所述。阅读 名为“项目设置”的部分,以获取有关直接设置属性的更多信息。请注意,每个忽略模式都必须放在单独的行上。用空格分隔它们不起作用。

全局忽略列表

忽略文件的另一种方法是将它们添加到 全局忽略列表 中。这里最大的区别是全局忽略列表是一个客户端属性。它适用于 所有 Subversion 项目,但仅在客户端 PC 上。通常,最好在可能的情况下使用 svn:ignore 属性,因为它可以应用于特定的项目区域,并且对所有检出项目的每个人都有效。阅读 名为“常规设置”的部分,以获取更多信息。

忽略版本化项目

版本化文件和文件夹永远不会被忽略 - 这是 Subversion 的一项功能。如果您错误地版本化了文件,请阅读 名为“忽略已版本化的文件”的部分,以获取有关如何 取消版本化 它的说明。

忽略列表中的模式匹配

Subversion 的忽略模式使用文件名通配符,这是一种最初在 Unix 中使用的技术,使用元字符作为通配符来指定文件。以下字符具有特殊含义:

*

*:匹配任何字符串,包括空字符串(无字符)。

?

?:匹配任何单个字符。

[...]

[ ]:匹配方括号中包含的任何一个字符。在方括号内,用 - 分隔的字符对匹配这两个字符之间任何一个字符。例如 [AGm-p] 匹配 AGmnop 中的任何一个。

模式匹配区分大小写,这在 Windows 上可能会导致问题。您可以通过配对字符来强制不区分大小写,例如,要忽略 *.tmp 不管大小写,您可以使用类似 *.[Tt][Mm][Pp] 的模式。

如果您想要通配符的官方定义,您可以在 IEEE 关于 shell 命令语言的规范中找到它 模式匹配符号 .

全局忽略列表中不包含路径

您不应该在模式中包含路径信息。模式匹配旨在用于普通文件名和文件夹名。如果您想忽略所有 CVS 文件夹,只需将 CVS 添加到忽略列表中。您无需像在早期版本中那样指定 CVS */CVS。如果您想忽略所有 tmp 文件夹,当它们存在于 prog 文件夹中但不存在于 doc 文件夹中时,您应该使用 svn:ignore 属性。没有可靠的方法可以使用全局忽略模式来实现这一点。

TortoiseSVN 主页