我有一个存储库,其中一些文件以 .scc
结尾在repo的几乎每个子文件夹中都有一个这样的文件,它们都已提交。
我正在使用:
TortoiseSVN 1.6.15,Build 21042 - 64 Bit
Subversion 1.6.16
使用TortoiseSVN,我可以进入每个文件夹并右键单击该文件,然后选择“删除并添加到忽略列表”,但在每个文件夹中执行此操作都很痛苦。所以我基本上寻找一种简单的方法来递归地执行与TortoiseSVN的“删除并添加到忽略列表”完全相同。通过TortoiseSVN或命令行。
答案 0 :(得分:2)
要将文件添加到忽略列表,您可以更新%USERPROFILE%\local data\.subversion\config
文件。 (我不是100%确定它所在的位置,但它应该在%.subversion
目录下的%USERPROFILE%目录下.Unix和Macs,它位于$HOME/.subversion/config
下。
在该文件中,有一个global-ignores=
参数。您可以删除其前面的#
(如果尚未删除),并为其添加.ssc
。它在我的这个文件版本中就像#90一样。
现在,您必须找到一种方法来删除所有这些.scc
文件。你所要做的就是:
$ find . -name `*.scc -exec svn del {} \;`
等等,你正在使用Windows。那更难了。我面前没有Windows机器,但我知道你可以通过这样做找到所有的*.scc
文件:
C:> dir *.scc /s/b
您可以将此管道传输到某种for
循环中,并将其传递给svn del
语句。即使我有一台Windows机器,也可能需要一段时间来计算语法。由于我面前没有Windows机器,因此更难。
最简单的方法是将输出重定向到文件,然后使用一个好的程序编辑器编辑文件(我的意思是notepad.exe
}:
C:> dir *.scc /s/b > delete_me.bat
C:> notpadplusplus delete_me.bat
现在,您可以使用Notepad++编辑文件,并使用svn del
快速为每行添加前缀。运行此delete_me.bat
文件,它将删除所有*.scc
个文件。 (我个人更喜欢Vim,但后来我是一个受虐狂。)
最大的问题是如何防止添加这些文件。忽略设置,因为我显示您是客户特定的。您可以在每个目录中设置svn:ignore
属性。这是一个影响每个人的更全面的版本,但它仍然不会阻止某人添加它们,因为这些文件仍将显示在Windows资源管理器中。
我有一个pre-commit hook可以设置,所以没有人能够再次添加这些.scc
文件。您也可以将其设置为不包括VisualStudio所放置的other types of files。