0

目前我解析 STDERR 输出 以向用户git push -q显示任何git push错误。这在大多数情况下都非常有效。然而,当推送到 Heroku 时,它们的 pre-receive 钩子也会将服务器状态和应用程序状态输出到 STDERR。

我基本上只是在寻找一种简单的方法来区分输出是否实际上是来自 git 与无关 Heroku 数据的错误。我尝试检查是否存在“ ---->”前缀,但并非所有 Heroku 输出都有它。我还想过在 STDERR 字符串中检查“ fatal:”和“ ssh:”,但这似乎很脆弱。而且我找不到任何以 git 错误为前缀的文档***:

发送到 STDERR 的实际 Git 错误:

ssh: Could not resolve hostname heroku.com: nodename nor servname provided, or not known
fatal: The remote end hung up unexpectedly

典型的 Heroku 状态:

-----> Heroku receiving push
-----> Rack app detected
-----> Gemfile detected, running Bundler version 1.0.3
       All dependencies are satisfied
       Compiled slug size is 8.4MB
-----> Launching.... done
       http://XXXXXXX.com deployed to Heroku

有没有人有更好的方法来完成只识别真正的 git 错误的想法?

4

1 回答 1

0

根据 Heroku 的说法:截至目前,没有可靠的方法来区分 Heroku 输出和 Git 输出。但他们正在努力标准化他们的输出格式。

所以主要是寻找最常见的元素。

于 2010-11-29T21:28:56.230 回答