svn忽略而不删除文件?

svn忽略而不删除文件?,svn,Svn,如何在不删除svn repo中的文件的情况下忽略这些文件 当我在现有项目上工作时,我经常需要设置项目的本地版本,并使用本地数据库。以drupal为例,我签出svn repo,更改settings.php文件以匹配本地数据库,但现在我必须确保不再提交设置文件 有没有聪明的svn命令可以解决这个问题?svn propedit svn:ignore./some\u path 来自SVN帮助: 我的项目中有一个文件 开发人员必须更改,但我不这样做 希望那些本地的MOD永远是 坚信的如何使“svn提交”

如何在不删除svn repo中的文件的情况下忽略这些文件

当我在现有项目上工作时,我经常需要设置项目的本地版本,并使用本地数据库。以drupal为例,我签出svn repo,更改settings.php文件以匹配本地数据库,但现在我必须确保不再提交设置文件


有没有聪明的svn命令可以解决这个问题?

svn propedit svn:ignore./some\u path

来自SVN帮助:

我的项目中有一个文件 开发人员必须更改,但我不这样做 希望那些本地的MOD永远是 坚信的如何使“svn提交” 忽略该文件?**

答案是:不要 将该文件置于版本控制之下。 相反,请放置文件的模板 在版本控制下,类似于 “file.tmpl”

然后,在初始的“svn”之后 “签出”,让您的用户(或 生成系统)执行的常规操作系统副本 将模板设置为正确的文件名, 并让用户自定义副本。这个 文件未设置版本,因此它永远不会 承诺。如果你愿意,你可以 将文件添加到其父目录的 svn:忽略属性,所以它不会 在“svn状态”中显示为“?” 指挥部


创建名为“.template”的文件版本,并对其进行版本控制。签出时,根据需要重命名和编辑。然后使用svn属性svn:ignore忽略副本。

一个可能的解决方案是使用变更列表。您可以将要更改的文件分组到变更列表中,然后在svn提交时指定变更列表——不在变更列表中的文件不受影响

创建变更列表
svn变更列表数学修复integer.cmathops.c

仅提交变更列表中的文件

svn ci-m“修复bug”-changelist math fixes

最简单的方法是转到包含配置文件的任何目录并在其上设置属性:

svn:ignore settings.php

它将在所有提交和更新过程中保持原样。您的命令可能如下所示:

$svn propset svn:ignore'settings.php./

谈到使用模板文件创建名为
ignore on commit
的变更列表,它仅在使用TortoiseSVN时有效


但同样,这是一个按用户设置。

参见此问答:更像是可能的重复:在这个问题提出7年后,我仍在寻找一个有效的解决方案。找到什么了吗?@Slav如果您使用的是Ortoisesvn,您可以使用changelist并点击ignore-on-commit。是的,这会解决问题,但设置文件已在svn控制下,我不想改变这一点,因为我也必须在生产环境中改变它,我不能这样做。如果生产文件包含数据库的连接字符串信息,那么它就不应该在源代码管理中。更安全的方法是将符号链接到由构建/部署过程创建的文件(位于比源存储库更安全的位置)。请记住,“应该”是一个动词,“应该”仅适用于非人性的完美世界。问题在于如何在提交时实际忽略,而不是仅仅忽略(从而实际删除)工作副本文件。BIN可以被忽略和删除,但conn文件不能被删除,但在提交过程中必须被忽略。我已经尝试过,但设置文件仍将被提交是,这会忽略仅本地文件,但不会阻止跟踪已在回购中的文件。OP已声明不想从回购中删除该文件。svn:如果文件仍然存在于repo中,则ignore不会执行任何操作。这听起来需要做很多工作,我不想指定我已更改的文件,而是不应该提交的文件,也许我理解你错了……我刚刚测试了这个。我进行了签出,使用svn propset svn:ignore'readme./在一个文件上设置了一个svn ignore,然后进行了提交,但readme文件在更改时仍然提交。它还讨论了“创建一个预提交钩子脚本,在添加特定属性时拒绝提交。然后,您可以将此属性添加到工作副本中的文件中,以防止“提交”,以防您不使用Tortoise SVN