2011-08-05 79 views
6

不是项目.bundle/config指定与项目相关的配置的重点吗?为什么rails默认忽略.bundle?

+0

您能否提供更多信息?这个文件的内容是什么,你使用的是什么版本的bundle和rails? –

+0

rails 3,最新的捆绑器,内容不是什么,但是由'rails new foo'生成的.gitignore的内容忽略.bundle –

+0

更新了我的回答。 –

回答

11

bundle-configmanpage是说:

该命令允许您使用捆绑的配置 系统进行交互。 Bundler按照该优先顺序从本地应用程序 (app/.bundle/config),环境变量和用户的主目录 目录(〜/ .bundle/config)中检索其配置。 因此,请确保您没有任何配置文件优先于您要使用的配置文件。

您可以配置此使用bundle config (option),运行bundle config没有任何选项文件自己或设置选项显示当前配置。 例如,您可以设置编译时间选项,它们的mysql的宝石,像这样:

bundle config build.mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config 

所以,是的,app/.bundle/config用于设置为当前项目捆绑选项。

编辑: 此更改在commit efa85055中添加到Rails github回购。您可以查看该版本的file herecommit here

的提交信息是从José Valim,并提到你有一个问题关于行:

制作斌/导轨致电轨/命令/应用程序,修复发电机使用 和更新.gitignores。

再次编辑: 这就是为什么你不应该检查.bundle目录到任何一个VCS quote from bundler

请勿检入.bundle目录或其中的任何文件。 这些文件是特定于每台特定计算机的,并且用于在软件包安装 命令的运行之间持续执行的安装选项 。

+0

这是一个信息丰富的概述,但你没有回答有关为什么默认情况下忽略配置的问题。 :)我认为显而易见的一点是,要让每个用户都能够控制每个项目的捆绑器行为 - 但这太糟糕了,因为捆绑器和rvm在所有系统上都更加简单和一致,事情变得更好。 .. –

+0

你是什么意思被忽略?在文档中没有提到这一点,我不认为这是预期的行为。如果您在'app/.bundle/config'中设置了选项,则应该使用它们。 –

+0

你的意思是被git忽略。那么它最有可能是安全问题,而不是开发人员通常通过源代码包或VCS分发的东西。 –