Причина, по которой вы получаете только «$ user» без предшествующего двоеточия, заключается в том, что вы захватываете выходные данные из whoami
, и эти выходные данные включают новую строку. Эта новая строка интерпретируется как конец вашей строки для отправки. Попробуйте chomp $user
избавиться от новой строки перед использованием $user
.
Если скрипт вызывается через SVN
коммит, похоже на $ user и
$ commit строки пусты, $ user и
$ репо передаются ...
Я собираюсь предположить, что вы имеете в виду, что через SVN $user
и $commit
пусты, но передаются $rev
и $repos
, поскольку это имело бы смысл ...
У вас будет такая же проблема с $commit
из svnlook
, но поскольку фиксация происходит в конце вашего сообщения, у вас будет проблема только в том случае, если в вашем сообщении есть новые строки. Например, если первая строка вашего сообщения - новая строка, вы ничего не увидите. Для этого я бы порекомендовал удалить все новые строки из сообщения, вероятно, с y/\n//
.
Относительно того, что $user
пусто изнутри крючка, это зависит от того, как вы используете SVN. Вполне возможно, что whoami
не сможет найти идентификатор пользователя, например, если процесс, выполняющий ловушку, не связан ни с каким логином. В этом случае вам, вероятно, понадобится другой метод определения пользователя, например, первая строка вывода из svnlook info
.