如何svn:忽略源代码管理下的文件?

时间:2012-02-15 15:45:39

标签: svn

svn:ignore 属性会忽略不受源代码管理的文件,因此它们不会出现svn status ?(它们不会提出来,如果你做add

,也会被忽略

但是,如果我想忽略源代码管理下的文件怎么办? svn:ignore 不会忽略它 例如,我想要做的是设置一个配置文件,将其添加到svn,所以当系统必须部署在测试或实时服务器(它是一个Web应用程序)时,它就在那里,但对于本地环境开发,我需要修改配置文件以使用我的本地设置进行设置。

但是我不希望提交此更新,所以,我该怎么办?

svn delete只会将它们从存储库中删除,在测试服务器上执行svn update时,它将删除配置文件,这不是我想要的。

3 个答案:

答案 0 :(得分:1)

使用svn:externals的一种方法。 您将链接到包含配置文件的路径。在Buildserver上,您可以选择“--ignore-externals”选项。

无论如何,我通常只删除buildscript中的文件。不是很优雅,但做的工作。

答案 1 :(得分:1)

不幸的是,这并非在svn中轻松完成。我见过的最接近的是this question的接受答案,但这意味着您还必须将其他文件放入更改列表中。不幸的是,一些svn IDE插件(subversive I'm looking at you!)似乎没有对变更列表的良好支持。

答案 2 :(得分:1)

更改后不应提交的文件(如配置文件)应视为模板文件,其名称反映此处理方式。将“.template”附加到文件名,并在存储库中具有该文件的默认内容。签出工作副本后,每个用户必须手动将此文件复制到工作版本(没有“.template”扩展名),并可选择更改内容。不得将此工作文件添加到存储库(使用svnlook命令的某些服务器端pre-commit-hook脚本可以确保这一点。)

如果更改此模板文件,则会出现问题。每个用户都必须响应此更改(可能什么也不做,但可能会更改其工作文件)。有一些方法可以自动提醒用户模板更改(使用用户端更新后挂钩脚本),但这可能只是矫枉过正。当有人更改模板时,它应该只通知所有其他有关更改的内容,就是这样。