svn忽略一个文件,但将其包含在结帐中

时间:2010-11-09 23:42:35

标签: svn

我在存储库中有一个项目。人们很快就会开始检查,研究它,然后再做出改变。但是该项目中有一个文件(我自己设计的精心配置文件),每个人都必须有一份副本,但是他们会对它进行更改,而这些更改永远不应该被检入(它们永远不应该被发送)通过更新回到存储库)。

所以,我希望签出项目的每个用户都能收到这个配置文件,但是我希望在所有提交中都忽略它。

到目前为止我所读到的内容让我觉得这是不可能的。看来,一旦我使用这个配置文件导入项目,它就处于版本控制之下,除了删除它之外,我们再也无法忽略它。

我希望我误解了,解决方案很简单。

有人可以帮忙吗?

哦,如果可能的话,我需要一个命令行解决方案。很多工作都是在没有ssh连接的无头linux机器上完成的。

谢谢!

编辑:我选择了cdhowie的回答。除了按照他的建议创建模板配置文件(例如app.config.template)之外,我还使用“svn propedit svn:ignore”来在提交时忽略真正的配置文件名(例如app.config)。

3 个答案:

答案 0 :(得分:11)

通常,您执行此操作的方法是提供用户或脚本将复制到其所属位置的模板文件。该文件将被忽略。

例如,假设您有app.config作为配置文件。您可以将其作为app.config.template或类似的东西提交。用户必须复制并重命名该文件才能开始开发。 SVN会忽略app.config

这对于更新来说并不干净,但它是关于你能得到的最好的。另一种选择是在存储库中设置访问限制,以便其他任何人都无法更改app.config

编辑:我说这对于更新并不干净,但是第二个想法,如果开发人员正在改变这个文件,他们可能不希望你的更新破坏他们自己的设置。使用模板文件实际上对开发人员来说更容易,因为他们可以选择要合并的更改。

答案 1 :(得分:3)

实际上有两种方法可以在版本化文件上“忽略”提交。 @cdhowie已经提到了'模板'解决方案。第二种方法使用更改列表,如this帖子中所述。

svn changelist ignore-on-commit file-you-want-to-add

答案 2 :(得分:2)

如果文件不存在,您可以修改项目以创建文件的预设版本。

该文件根本不在SVN中,并且每个客户端都会在第一次运行代码时获取它。

这种可行性取决于项目的工作方式以及可执行代码的放置位置。