在SVN服务器上,有一个文件名为 config.conf. 。我有一个本地版本,称为相同的东西(在同一个地方)。 如何确保我的本地配置不会被覆盖或签入?

当我在这里时,目录的答案是否不同?

我正在使用 Tortoise SVN,但命令行答案很酷。

谢谢!

[抱歉,如果这个基本问题之前已被问过......我找了找,没找到。]

有帮助吗?

解决方案

如果您以相同的名称并将其粘贴在同一目录中,SVN 将始终认为该文件是存储库的一部分。您的选择是

  • 重命名它(也许编写一个shell脚本 mv config.conf config.conf.theirs && mv config.conf.mine config.conf 然后运行您的应用程序)
  • 移动它。也许可以向您的应用程序添加一些逻辑,以检查本地用户特定目录中的 config.conf,然后如果未找到,则使用默认的 config.conf

其他提示

对于这个问题的一半,TortoiseSVN有一个很好的答案:忽略提交

这可以防止您意外提交“仅限本地”信息。更改,但它无法解决意外更新本地更改文件的问题。

查看此博客文章,详细了解如何:

http://blog.baljeetsingh。净/ 2009/02 / TIPS-技巧 - svn的-忽略-ON-commit.html

  1. 使用svn:ignore将其从存储库中排除(您必须先将其从存储库中删除)
  2. 使用占位符值在config.conf.default中保留副本。您可以将默认副本保留在存储库中。
  3. 正常使用config.conf - subversion将不再看到它

谢谢大家。我以为Eoin可能生气了,但事实确实如此。您不能忽略处于版本控制中的文件。

根据乌龟文档

忽略版本化项目

版本化的文件和文件夹永远无法忽略 - 这是颠覆的功能。如果您错误地将文件版本版本为“忽略已经版本版本的文件”的部分,以获取有关如何“不转化”它的说明。

以及来自 SVN 文档

我的项目中有一个文件,每个开发人员都必须更改,但是我不希望那些本地mod曾经投入。如何使“ SVN commit”忽略文件?

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

然后,在初始“ SVN结帐”之后,请您的用户(或构建系统)将模板的正常操作系统副本执行到适当的文件名,并让用户自定义副本。该文件是不转让的,因此永远不会投入。如果您愿意,可以将文件添加到其父目录的SVN:忽略属性中,因此它不会显示为“?”。在“ SVN状态”命令中。

这真是太烦人了……我想我只需要小心该文件并制作我自己的配置的备份副本(我可以忽略)。

感谢大家的回答。

您可以将svn-ignore:属性添加到本地文件夹中,该文件夹不包括config.conf甚至* .conf

但是我相信,你必须完全从SVN中排除这个文件,即如果它已经被检入了repo,你需要先从存储库中删除它

当存在配置文件的颠覆时,我发现有一个专用于它的整个中继非常有用。 为什么? 大多数是因为你可以只有两个本地存储库副本,一个用于本地用途,一个用于远程控制。

像这样:

/ workdir / configuration [是/ workdir / conf_local的链接]
/ workdir / conf_local [保持本地conf更新,但不会设置我的设置]
/ workdir / conf_remote [始终使用远程数据更新,因此我可以提交更改]

我不知道你有什么样的设置,或者这是否适用于你碰巧使用的任何语言,但这是我用网站和PHP做的方式。

首先,您创建默认配置,该配置可能具有不适用于90%设置的天真值,但会为您提供有关哪些值以及实际可配置的内容的参考。此脚本通常称为“ config.default.php ”或类似的东西。在这个脚本的底部可以找到:

if (file_exists("config.php")) require "config.php";

简单的逻辑。如果有配置文件的用户覆盖,则将其加载,并让它覆盖它需要的任何内容。然后只需通过已在所有开发机器上解释的方法以及因任何原因保留svn checkout的任何生产机器来忽略此用户配置文件。这是一种非常灵活的设置,可以为大多数语言/环境设置类似的程序。

正如Scrappydog指出的那样

您可以在提交对话框中使用/创建不同的列表

它支持 ignore-on-commit 列表,这样这个列表下的文件就不会显示..

你可以参考 此博客链接 了解详情。

http://blog.baljeetsingh达网络/ 2009/02 / TIPS-技巧 - svn的-忽略-ON-commit.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top