来自heroku的ruby-git diff

我已经在heroku上部署了一个篝火机器人(sinatra应用程序使用tinder来收听篝火室),我想查询它在另一个heroku应用程序上部署的内容和我们的
github repo中的内容之间的git差异.如果我在本地这样做,我只是

>克隆github repo
>添加heroku遥控器
>根据要求运行git diff

但是,在heroku上,我仅限于使用tmp目录(在竹子上)或短暂的文件系统(在雪松上),并且还难以为应用程序运行的用户管理ssh密钥.

如何在heroku上完成此操作,最好是能够以树格式显示结果?

最佳答案 我将假设您对
cedar’s ephemeral filesystem不满意,因为每次dyno重启都会丢失文件并且不会显示交叉dyno.接受这些限制显然是最简单的解决方案(每个dyno可能必须创建自己的特定git存储库,但就是这样).

第二个最直接的解决方案是在别处计算git日志.您可以编写一个类似Web服务的小应用程序(可能与Sinatra)接受两个存储库URL,并返回它们的差异.然后你可以从heroku应用程序查询.但我想这是排除在外的,因为你要求“在Heroku上”这样做.

这将我们带到最后的解决方案;它涉及在记忆中创造一切;必须使用像FakeFS之类的东西创建初始文件夹,并且必须从ruby本地完成git控件; Scott Chacon’s grit fork做本机调用而不是炮击,所以它可能有效(我不知道Chacon的更改是否被移植到主要的砂砾).这样所有的文件系统访问都可以从ruby完成,一切都在内存中(顺便说一句,你可能想要升级你的内存)

我没有亲自尝试过这些,我不知道他们的表现如何.

如果你需要持久性,也许你可以将整个事物整理到数据库中,但这听起来很麻烦.

我希望这有帮助.

点赞