我正在使用 VS2008 和 Resharper。Resharper 创建一个目录 _Resharper.ProjectName。这些文件对我所知道的源代码控制没有任何价值,并且在提交更改时会导致问题。我怎样才能让 SVN 忽略它们?我使用 TortoiseSVN 作为我的 SVN 接口。
编辑:你们很快。
我正在使用 VS2008 和 Resharper。Resharper 创建一个目录 _Resharper.ProjectName。这些文件对我所知道的源代码控制没有任何价值,并且在提交更改时会导致问题。我怎样才能让 SVN 忽略它们?我使用 TortoiseSVN 作为我的 SVN 接口。
编辑:你们很快。
将文件名(甚至模式_Resharper.*
)添加到svn:ignore
其父目录的属性中。
在我输入此内容后阅读手册时,将在此处发布我自己的问题的答案。在 TortoiseSVN 中,转到设置。添加
*ReSharper*
到“全局忽略模式”。将项目添加到全局忽略模式意味着这些文件对于您为安装了 TortoiseSVN 的客户端工作的任何项目都将被忽略,因此在所有情况下都可能不适合使用全局忽略。
如果在将它们添加到存储库之前从 TortoiseSVN 菜单中选择此选项,您还可以将特定文件和目录添加到单个项目的忽略列表中。“之前”部分是最初让我绊倒的地方。由于这是一个开发人员项目,我一直在检查二进制文件等。b/c 它对其他开发人员没有任何影响,并且 Resharper 文件进入了那里。
将 Resharper 缓存存储在系统临时文件夹中。检查 r# 中的第一个设置页面。环境->常规->系统->存储缓存..
简短的回答:“svn:ignore”属性
长答案:
# cd /your/working/copy
# export EDITOR=vi
# svn propedit svn:ignore .
(在自己的行上添加“_Resharper.ProjectName”并将文件写出)
编辑:呃... doh,刚刚意识到您说的是乌龟...这就是您使用 SVN 命令行版本的方式
svn 有一个“忽略”属性,您可以将其附加到文件名模式或目录。被忽略的文件和目录不会在“svn st”命令中报告,也不会进入 repo。
示例:您在 .c 和 .h 文件中有 C 源代码,但编译器创建了一堆 .o 文件,您不想让 subversion 麻烦告诉您。您可以使用 Subversion 的属性功能告诉它忽略这些。
对于一个签出工作目录中的一些文件,例如 myproject/mysource/
bash> svn propedit svn:ignore mysource
在弹出的文本编辑器中(在 linux 中,可能是 vi 或任何您的 EDITOR env var 设置为),每行添加一个文件名模式。不要在模式后添加尾随空格(这会使 svn 感到困惑)。
*.o
*.bak
就这样。您可能想立即进行提交,因为有时 svn 会担心用户在两次提交之间对文件进行太多不同类型的更改。(我的规则是:如果有疑问,请提交。它很便宜)
对于出现在庞大目录树中许多地方的文件类型,请编辑保存在存储库中的 subversion 配置文件。这需要存储库管理员的操作,除非您可以直接访问存储库(不是通过 svn: 或 http: 或 file:,但可以“cd”到存储库位置并“ls”它的文件)。svn 书籍应该有详细信息;我现在不记得了。
由于我不使用 Tortoise,我不知道上面的描述如何直接翻译 - 但这就是为什么我们有可编辑的答案(快乐!)
这篇博文提供了一个示例,说明如何通过命令行 svn 执行您想要的操作。 http://sdesmedt.wordpress.com/2006/12/10/how-to-make-subversion-ignore-files-and-folders/
这些变化将反映在 TortoiseSVN 中。
我相信有一种方法可以通过乌龟做到这一点,但是我没有 Windows vm 可访问的 atm,抱歉:(
SVN 仅控制您在创建存储库时放入的内容。不要只导入整个项目文件夹,而是在构建之前导入“干净”文件夹。构建后,您将获得所有目标文件或 _Resharper 文件夹等,但它们不受版本控制。
我忘记了:
svn:忽略命令是告诉 SVN 排除某些文件的另一种可能性。您可以将其作为属性添加到版本控制的文件夹中,例如使用 TortoiseSVN。