Крюки Subversion съедают свой STDOUT. После запуска сценария STDOUT отсутствует. Вы даже не можете заставить скрипт предварительной фиксации отправить STDOUT другому процессу.
Однако внутри ловушки предварительной фиксации STDOUT все еще существует и все еще может быть перенаправлен. Например, мой хук состоит из сценария оболочки, состоящего из нескольких строк утилит командной строки Unix. У каждой утилиты командной строки есть STDIN и STDOUT, и я могу передавать данные от одного к другому. Но как только этот скрипт-хук завершится, STDOUT не будет.
Другое дело, что нет способа сообщить STDOUT через парадигму ловушек. Subversion не предоставляет никакой связи. Существует ссылка для STDERR, но только в случае сбоя самой ловушки. Это ловушка перед фиксацией, я сомневаюсь, что вы намеренно хотите потерпеть неудачу в этой ловушке, просто чтобы предоставить пользователю отчет.
Что вы можете сделать, это использовать другие способы уведомления. Некоторые люди предложили по электронной почте. Вы можете запустить скрипт пост-фиксации, чтобы сгенерировать отчет и отправить его по электронной почте на основе адреса электронной почты пользователя. Я бы не стал делать это как триггер перед фиксацией, потому что вы не хотите, чтобы транзакция потерпела неудачу, потому что отчет не работал.
Некоторые люди предположили, что вы можете сопоставить пользователя, который сделал коммит, с адресом электронной почты и отправить электронное письмо пользователю. Я бы не стал этого делать, потому что пользователи будут просто игнорировать электронную почту. Они уже получают десятки, если не сотни электронных писем от различных процессов, предупреждающих их о том или ином.
Я бы порекомендовал использовать такой продукт, как Hudson, для непрерывных сборок, и чтобы этот отчет был сгенерирован Hudson и размещен на странице сборки, сгенерированной Hudson. Таким образом, разработчик может вернуться и изучить отчет. На самом деле, в Hudson уже есть различные плагины, которые выполняют проверку ошибок и создают всевозможные хорошие отчеты и графики (обычно работают с findbugs или другими подобными проектами).
Одним из наиболее интересных плагинов является игра , которая присуждает очки за успешные сборки, исправление ошибок и предупреждений и т. Д. Она представляет таблицу лидеров, поэтому разработчики могут сравнивать свои результаты с другими разработчиками. Я никогда не использовал его, но некоторые люди из группы пользователей Hudson говорят, что разработчики становятся очень конкурентоспособными по своим оценкам.