您如何在 Subversion 下包含/排除某种类型的文件?

Posted

技术标签:

【中文标题】您如何在 Subversion 下包含/排除某种类型的文件?【英文标题】:How do you include/exclude a certain type of files under Subversion? 【发布时间】:2010-09-12 10:43:24 【问题描述】:

我对包含/排除行话感到困惑,而我实际的 SVN 客户端似乎没有(或者我一直无法轻松找到)添加或删除某种类型文件的简单选项用于版本控制。

例如,假设我添加了整个 Visual Studio 文件夹及其解决方案、项目、调试文件等,但我只想对实际的源文件进行版本控制。最简单的方法是什么?

【问题讨论】:

【参考方案1】:

您可能最安全的是排除特定文件类型,而不是选择要包含的文件类型,因为您可以添加新类型而不会意识到它没有被版本控制。

您可以按目录编辑svn:ignore 属性。

运行

svn propedit svn:ignore .

为每个相关目录打开一个编辑器,其中包含要忽略的模式列表。

然后在每一行上放置一个与您要忽略的文件类型相对应的模式:

*.user
*.exe
*.dll

你有什么。

或者,正如建议的那样,您可以将这些模式添加到您的 ~/.subversion/config 文件中的 global-ignores 属性中(或在 Windows 上为 "%APPDATA%\Subversion\config" - 请参阅 Configuration Area Layout in the red bean book for more information)。在这种情况下,用空格分隔模式。这是我的。行首的# 引入了注释。我忽略了 Ankh .Load 文件和所有 *.resharper.user 文件:

### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
# global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store
global-ignores = Ankh.Load *.resharper.user

【讨论】:

要添加到 TortoiseSVN 的全局忽略设置,右键单击您的项目文件夹,TortoiseSVN...设置...常规...在 Subversion 区域中,您可以编辑“全局忽略模式”。 是否可以为每个项目添加忽略?就像在 git 中一样。在 git 中,您将忽略文件放在项目根目录中,并且优先于全局忽略。【参考方案2】:

这可以使用svn:ignore 属性或~/.subversion/config 文件中的 global-ignores 属性来实现。 (滚动到第一个链接的顶部以查看有关编辑属性的说明。)

通过在目录上使用svn propsetsvn propedit,您将能够使Subversion 忽略特定目录中与该模式匹配的所有文件。但是,如果您在 ~/.subversion/config[miscellany] 部分更改 global-ignores,Subversion 将忽略这些文件,无论它们位于何处。

【讨论】:

【参考方案3】:

见博文svn:ignore

我知道使用 TortoiseSVN 可以单击已签出的根文件夹,并可以通过选择“属性”菜单项添加任意属性。在这种情况下,您只需指定要排除的文件模式。

有关命令行内容的博客文章,但我确信它适用于您使用的任何客户端。

【讨论】:

【参考方案4】:

在最低级别,SVN 允许您忽略具有svn:ignore 属性的某些文件或模式。用于 SVN 的 VS 加载项(例如 VisualSVN)将自动代表您忽略这些文件。如果您使用TortoiseSVN,您可以在资源管理器中右键单击文件和文件夹,然后选择添加到忽略列表

【讨论】:

【参考方案5】:

另一种方式,当使用 TortoiseSVN 时,您可以选择“Commit...”,然后右键单击文件并移动到更改列表“ignore-on-commit”。

【讨论】:

【参考方案6】:

使用svn:ignore 属性,您可以使用通配符。

【讨论】:

以上是关于您如何在 Subversion 下包含/排除某种类型的文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过某种模式 CSPOJ 排除所有文件夹?

如何从表单中排除字段?

我可以以某种方式从java中的Collections.Min / Collections.Max中排除或过滤掉一个值吗?

在 subversion 中创建一个“标签”,指示下一个版本中应该包含哪些文件

Android Studio:如何从自动完成中重新包含已排除的库?

Play Framework中,打包时如何排除文件?