【发布时间】:2015-06-09 18:13:09
【问题描述】:
我有带有测试的 Ruby gem,它依赖于另一个 gem。
最近有另一个 gem 的新版本,由于行为的变化,它破坏了我的 gem 的测试套件。
我知道应该归咎于另一个 gem 的哪个次要版本,但我想找出确切的提交(点发布之间有数百个提交),以便我了解问题出在哪里。
我之前使用过 git bisect 来缩小我的 repo 中的错误提交,但我可以为依赖项做类似的事情吗?
【问题讨论】:
我有带有测试的 Ruby gem,它依赖于另一个 gem。
最近有另一个 gem 的新版本,由于行为的变化,它破坏了我的 gem 的测试套件。
我知道应该归咎于另一个 gem 的哪个次要版本,但我想找出确切的提交(点发布之间有数百个提交),以便我了解问题出在哪里。
我之前使用过 git bisect 来缩小我的 repo 中的错误提交,但我可以为依赖项做类似的事情吗?
【问题讨论】:
你可以稍微摆弄一下:
在您应用的目录中运行
bundle config --local local.mygem path/to/checkout
您的应用现在应该从您的结帐中加载该 gem,并且您应该能够在该 repo 上运行 git bisect。 zeus、spring 之类的东西可能需要在每个修订版签出后重新启动 - 他们倾向于查看 gemfile.lock,因此可能不会注意到 gem 本身是否发生变化。
完成后,恢复对 gemfile 的更改并编辑 .bundle/config 以删除覆盖。
【讨论】: