0

在进行 SVN 提交时是否可以防止 web.config 文件被提交?我有以下 SVN Global 忽略模式集,但它仍然不能阻止它。如果我用“web.config”替换“*.config”,它仍然不会阻止它。

http://screencast.com/t/fLKoZhYykYG

全局忽略模式:

*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store */bin */obj bin obj aspnet_client *.tmp */legacy legacy *.suo *.user *.config

======================

简单的答案(即使下面的实用程序非常好):

右键单击 Web.config 文件,然后选择“删除并添加到忽略列表”。文件上的图标会变成一个红色的“X”。然后提交更改。它不会删除物理文件,但会从 SVN 中删除它,因此不会再提交。

4

2 回答 2

1

全局忽略确实适用于您的存储库中不需要的文件类型,因此您不会意外添加它们。这就是为什么它们都是后缀。另外,它们只针对那台机器是本地的,因此无法真正强制执行。您可以svn:ignore在每个目录中进行设置,也可以将其设置为您不添加的特定文件或目录。

忽略并svn:ignore仅适用于尚未在您的存储库中的文件,因此如果 web.config 已经存在,则无法使用它们。而且,它们不会阻止您有目的地指定您希望该文件在您的存储库中。基本上,全局忽略的文件不会显示为 ? 当你这样做时svn status,如果你这样做,将不会被添加svn add *。但是,您始终可以执行 asvn add web.config并将其添加到您的存储库中。

如果你真的想确保它永远不会被添加,你可以使用我的 pre-commit "Kitchen Sink" 钩子。这个钩子脚本做了很多不同的任务,它可以做的一件事是允许你禁止基于 Glob 或 Regex 模式的文件。如果有人做了一个svn add web.config并尝试提交它,这个预提交钩子将禁止该事务。

我最近重写了脚本,您可以下载并尝试一下。您将需要 Perl,但我编写的脚本不需要任何可选模块,因此安装非常简单。如果您使用的是 Unix 系统,那么早至 5.8 的 Perl 应该可以正常工作。在 Windows 上,您可以下载 ActiveState Perl 或 Strawberry Perl,预提交挂钩将毫无问题地运行。

我使用钩子脚本来阻止用户添加所有不同的 VisualStudio 用户文件,或者 bin/obj 和 bin/release 目录。我还阻止有人在 /target 目录中添加。它还可用于允许用户创建标签,但阻止对其进行任何编辑。

于 2011-08-11T21:16:05.510 回答
0

右键单击 Web.config 文件,然后选择“删除并添加到忽略列表”。文件上的图标会变成一个红色的“X”。然后提交更改。它不会删除物理文件,但会从 SVN 中删除它,因此不会再提交。

于 2011-11-03T19:54:37.753 回答