我对include / exclude行话感到困惑,而我的实际SVN客户端似乎没有(或者我一直无法轻易找到)添加或删除某种类型文件的简单选项用于版本控制。
比方说,我已经添加了整个Visual Studio文件夹及其解决方案,项目,调试文件等,但我只想对实际的源文件进行版本控制。最简单的方法是什么?
答案 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 propset
或svn 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”。