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

Nan*_*ada 47 svn version-control

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

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

Bla*_*rad 62

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

在每个目录的基础上,您可以编辑svn:ignore属性.

svn propedit svn:ignore .
Run Code Online (Sandbox Code Playgroud)

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

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

*.user
*.exe
*.dll
Run Code Online (Sandbox Code Playgroud)

你有什么.

或者,如建议的那样,您可以将这些模式添加到global-ignores〜/ .subversion/config文件中的属性中(或者"%APPDATA%\Subversion\config"在Windows上 - 有关更多信息,请参阅红豆书中的配置区域布局).在这种情况下,将模式与空格分开.这是我的.#在行的开头引入了评论.我忽略了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
Run Code Online (Sandbox Code Playgroud)


Max*_*tor 5

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

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