是否应将.bundle目录添加到CVS?

问题描述

最近,我将一些Ruby项目依赖项移至development组,以免将其安装在生产环境中(例如rubocop

在这些项目中,我看到有一个文件.bundle/config,其内容如下:

---
BUNDLE_WITH: "development"

---
BUNDLE_WITHOUT: "development"

我认为我可以安全地将此文件(和.bundle文件添加.gitignore,但是可以确定-是否有最佳实践?

$PROJECT_ROOT/.bundle目录中找不到任何有用的信息

解决方法

TL; DR

不要将.bundle目录存储在源代码中。它旨在作为某些捆绑程序设置和标志的本地缓存,而不是所有项目贡献者之间共享的东西。

分析

对于在源代码管理中存储Gemfile.lock的支持和反对有一些论点,但是.bundle目录的内容并不打算在项目中的多个用户/计算机之间共享。跟踪.bundle / config的唯一潜在用例是记住生产或测试分支中各个运行的某些标志,但是无论如何that behavior is deprecated

实用上,存储.bundle目录可能会导致开发人员意外使用标志。这很可能导致不必要的调试工作,并给项目贡献者带来令人惊讶的行为。对于处理Bundler标志,Rake任务或设置/部署脚本是一个更好的选择,尤其是因为此行为已被弃用并计划在Bundler 3中消失。