【问题标题】:Prevent web.config from being committed in SVN防止 web.config 在 SVN 中提交
【发布时间】:2011-08-11 15:17:59
【问题描述】:

是否可以在进行 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 中删除它,因此不会再提交。

【问题讨论】:

    标签: svn web-config commit ignore


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢您的帖子。等我有时间,我会试试这个。
    • 这太棒了!你住在哪个城市,所以我可以给你买啤酒? :-)
    • David,您的工具可以删除或修改提交给 SVN 的文件吗?我问的原因是因为我们公司有一个新的 PCI(安全)策略,我们不能在 SVN 的 web.config 中存储敏感信息(即:连接字符串中的密码,web.config 文件中的某些值等。 )。这是你曾经被问过的吗?我们可能可以处理已经提交的旧代码,但我认为弄清楚会很酷。
    • @MacGyver:可能通过 pre-commit 钩子来防止具有特定名称或包含特定字符串的文件被提交,但发明一个万无一失的系统,你主要要发明一个更大的傻瓜,他找到了一种方法来挫败它。不幸的是,在 Subversion 中,一旦提交信息,就没有简单的方法来删除信息。 1.8 版应该可以解决这个问题,但那可能是明年。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 2017-03-20
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多