[英]SVN Delete and Ignore recursively
我有一个存储库,其中一些文件以.scc结尾
几乎在 repo 的每个子文件夹中都有这些文件之一,并且它们都已提交。
我正在使用:
TortoiseSVN 1.6.15,内部版本 21042 - 64 位
颠覆 1.6.16
使用 TortoiseSVN,我可以进入每个文件夹并右键单击该文件并选择“删除并添加到忽略列表”,但是在每个文件夹中都这样做很痛苦。 所以我基本上是在寻找一种简单的方法来递归地执行与 TortoiseSVN 的“删除并添加到忽略列表”完全相同的操作。 通过 TortoiseSVN 或命令行。
要将文件添加到忽略列表,您可以更新%USERPROFILE%\\local data\\.subversion\\config
文件。 (我不是 100% 确定它的位置,但它应该在 %USERPROFILE% 目录下的.subversion
目录下。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 资源管理器中。
我有一个可以设置的预提交钩子,所以没有人能够再次添加这些.scc
文件。 您还可以将其设置为不包含 VisualStudio 放入的其他类型的文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.