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

时间:2008-09-23 17:02:57

标签: svn version-control

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

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

6 个答案:

答案 0 :(得分:60)

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

在每个目录的基础上,您可以编辑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

答案 1 :(得分:5)

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

通过在目录上使用svn propsetsvn propedit,您将能够使Subversion忽略在特定目录中与该模式匹配的所有文件。但是,如果您更改~/.subversion/config的{​​{1}}部分中的全局忽略,Subversion将忽略此类文件,无论它们位于何处。

答案 2 :(得分:2)

请参阅博文 svn:ignore

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

关于命令行内容的博客文章,但我相信它对你正在使用的任何客户端都能正常工作。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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