Выполнить триггер изменения-отправки для запуска скрипта на клиенте - PullRequest
3 голосов
/ 09 апреля 2019

Я решил опубликовать здесь, после публикации на SuperUser , так как я хочу получить информацию от разработчиков программного обеспечения, которые могли столкнуться с этим сценарием раньше!

Я хотел бы начатьпоследовательность шагов проверки на клиентской стороне 1007 * для файлов, открытых в списке изменений перед разрешением отправки списка изменений.

Например, я хочу убедиться, что еслифайл открывается для добавления, редактирования или удаления как часть списка изменений, чтобы конкретный связанный файл обрабатывался надлежащим образом на основе матрицы условий для этого соответствующего файла:

  • Соответствующий открываемый файлдля добавления / редактирования / удаления
  • Соответствующий файл существует на диске и не существует на диске
  • Соответствующий файл существует в хранилище и не существует в хранилище
  • Соответствующий файл былизменено или не изменено относительно файла депо

Эти шаги проверки должны быть начаты доT принимается сервером Perforce.Кроме того, проверка должна выполняться на стороне клиента, поскольку я должен иметь возможность согласовывать автономную работу с копиями на клиентских дисках.

Среда:

  • Сервер Perforce 2017.2
  • Компьютеры MacOS и Windows, отправляющие сообщения в разные филиалы

Следственные действия уже охвачены

  • Первоначальный проект представлял собой исключительно клиентский пользовательский инструмент , но это не идеал, поскольку это было бы изменением потока, с которым знакомы пользователи, и мне также пришлось бы реализоватьпользовательский графический интерфейс.

  • Среди других подходов я рассмотрел создание триггеров в 2017.2.2 ;однако даже если бы я использовал триггер change-content со всеми файлами списков изменений, доступными на сервере, я не смог бы правильно выполнить шаги проверки и исправления.

  • Другой возможностью было бы использование триггера изменения-отправки и использование переменных сценария триггера в 2017.2 для получения IP-адреса клиента, имени хоста, текущего рабочего каталога клиента и т. Д.чтобы вы могли запустить скрипт на сервере, чтобы попытаться удаленно подключиться к клиентскому компьютеру.Однако для запуска любого сценария на компьютере клиента и, в частности, для его локальной рабочей области, потребуются учетные данные, которые, скорее всего, не будут доступны.

Я хотел бы использовать изменение-отправкутриггер на сервере Perforce для запуска сценария / связанного исполняемого файла на клиентском компьютере для выполнения операций p4 в их рабочей области для выполнения шагов проверки.Однако ссылки, которые я нашел (хотя и несколько лет назад), указывают, что это невозможно:

Спасибо заЗаранее и за вашу помощь!

1 Ответ

2 голосов
/ 09 апреля 2019

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

В этом суть -серверу Perforce не разрешается отправлять клиенту произвольный код для выполнения.Если вам нужен такой тип функциональности, вам придется пробить собственную дыру в безопасности клиента (а затем придумать свой собственный способ убедиться, что он не используется не по назначению), и, похоже, вы уже пошли по этому путии решил, что это того не стоит.

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

Я бы рекомендовал начать с такого подхода, а затем искать способы уменьшения трения.Например, вы можете использовать триггер отправки изменений, чтобы определить, пропустил ли пользователь пользовательский рабочий процесс (возможно, с помощью специального инструмента, добавив токен в описание изменения для проверки триггера), а затем выдать ему сообщение об ошибке, которое выводитвернуть их в нужное русло, например «Запустите Инструменты> Изменить валидатор или обратитесь за помощью к wanda@yourdomain.com»

...