Как я могу избавиться от сообщений 'remote:', которые появляются в каждой строке, возвращаемой post-receive в git? - PullRequest
2 голосов
/ 03 июля 2010

Я создал хук после получения в git. Хук выводит на экран сообщения, которые отправляются обратно git-клиенту, выполняющему push, и выводятся обратно.

Как мне избавиться от текста «remote:» перед каждой строкой вывода? Это довольно отвлекает. (Я знаю, что это возможно, потому что я видел это на практике, я просто не знаю, как это делается.)

1 Ответ

3 голосов
/ 03 июля 2010

Примечание. Префикс может быть важен, чтобы не ошибиться в сообщениях из удаленной системы в качестве сообщений из локальной системы.

Тем не менее, нет способа отключить префикс, но все они записаны вSTDERR.Вы можете перенаправить / захватить / отфильтровать stderr из git push , чтобы сделать то, что вы хотите.

Грубый способ работы может быть примерно таким:

git push ... 2>&1 | sed -e 's/^remote: //'

Он отправляет stdout в трубу и отправляет stderr туда же.На другом конце канала sed читает объединенный вывод и удаляет любые префиксы remote:.Это должно быть хорошо, так как мы вряд ли увидим префиксы remote: в потоке stdout.Подобное сочетание stdout и stderr, как правило, приемлемо для интерактивного использования (поскольку в любом случае они, вероятно, собирались на одно и то же устройство tty), но, возможно, это не очень хорошая идея для использования в автоматических контекстах (например, в сценариях).

...