Perforce - получение имени потока в триггерном скрипте

Я хочу создать триггер для предотвращения извлечения файлов, если они принадлежат определенному потоку.

Я использую триггер предварительного редактирования пользователем.

Триггер выполняет Perl-скрипт.

Когда я выполняю в сценарии Perl команду p4, я получаю эту ошибку:

Принудительный пароль (P4PASSWD) недействителен или не установлен.

Что я сделал, так это получил имя потока из имени клиента (которое передается сценарию Perl):

 $ stream = `p4 client -o $ client | grep ^Stream: | awk '{print \$ 2}'`;
 chomp $ stream;

Это не работает.

Кроме того, попытка присвоить $p4 новому P4 не удалась.

Кто-нибудь знает, как это решить?

По крайней мере, дайте мне способ извлечь имя потока из имени клиента?

Спасибо,


person AJ Gottes    schedule 09.11.2015    source источник
comment
Ваш вопрос, как разрешить неверный пароль или ошибку сброса? Или ваш вопрос заключается в том, как выяснить имя потока, для которого в данный момент установлено конкретное рабочее пространство клиента?   -  person Bryan Pendleton    schedule 10.11.2015


Ответы (3)


Вы должны войти в Perforce, чтобы запустить p4 client. В интерактивной оболочке вы делаете это с помощью p4 login, который запрашивает пароль. Как только это будет подтверждено, Perforce будет держать вас в системе в течение недели или около того (зависит от настроек вашего сервера P4). В течение этой недели ваша команда должна быть выполнена успешно, но по истечении срока действия сеанса она снова начнет давать сбой.

Если истечение срока действия является для вас проблемой, вам необходимо приобрести бессрочный билет. Это должно быть разрешено администратором вашего сервера (прочитайте «Чтобы создать билеты с неограниченным сроком действия...» по адресу вход на p4). См. также P4TICKETS.

person sferencik    schedule 09.11.2015

В качестве альтернативы
$ stream = p4 -F "%Stream%" -ztag client -o;

Это просто даст вам имя потока (обрезка не требуется)

person Venkat    schedule 25.04.2016

В качестве другой альтернативы используйте p4 switch, чтобы отобразить имя текущего потока.

person Thoma    schedule 12.03.2019