1

我有一个存储库,其中一些文件以.scc结尾

在 repo 的几乎每个子文件夹中都有一个这些文件,并且它们都已提交。

我正在使用:
TortoiseSVN 1.6.15,Build 21042 - 64 Bit
Subversion 1.6.16

使用 TortoiseSVN,我可以进入每个文件夹并右键单击文件并选择“删除并添加到忽略列表”,但在每个文件夹中都这样做很痛苦。所以我基本上是在寻找一种简单的方法来递归地执行与 TortoiseSVN 的“删除并添加到忽略列表”完全相同的操作。通过 TortoiseSVN 或命令行。

4

1 回答 1

2

要将文件添加到忽略列表,您可以更新%USERPROFILE%\local data\.subversion\config文件。(我不能 100% 确定它的位置,但它应该位于.subversion%USERPROFILE% 目录下的某个目录下。Unix 和 Mac,它会在$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,但我是一个受虐狂)。

The big question is how to prevent adding these files back. Ignores set up as I showed you are client specific. You could setup a svn:ignore property in each directory. This is a more global version that affects everyone, but it still won't prevent someone from adding them because the files will still show up in Windows Explorer.

I have a pre-commit hook that can be setup, so no one will ever be able to add in these .scc files again. You could also set it up not to include the other types of files that VisualStudio puts in too.

于 2012-11-13T01:04:11.900 回答