防止在SVN中提交web.config

时间:2011-08-11 15:17:59

标签: svn web-config commit ignore

是否可以阻止在执行SVN提交时提交web.config文件?我有以下SVN全局忽略模式集,但它仍然无法阻止它。如果我用“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中删除,因此不再提交。

2 个答案:

答案 0 :(得分:1)

全局忽略实际上适用于您不想在存储库中使用的文件类型,因此您不会 意外地 添加它们。这就是为什么他们都是后缀。另外,它们只适用于那台机器,因此无法真正执行它。您可以在每个目录中设置svn:ignore,并且可以设置为您不添加的特定文件或目录。 / p>

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

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

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

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

答案 1 :(得分:0)

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