2015-11-09 5 views
1

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

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

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

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

Perforce пароль (P4PASSWD) недействительный или снят с охраной.

То, что я получает имя потока из имени клиента (который передается в сценарий Perl):

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

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

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

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

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

Спасибо,

+0

Ваш вопрос, как решить «пароль недействительный или отключенное» ошибка? Или ваш вопрос, как определить имя потока, к которому в настоящее время установлено конкретное рабочее пространство клиента? –

ответ

2

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

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

0

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

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