Я собирался спросить это относительно superuser.com, но были только 5 по необходимости теги, таким образом, я приехал сюда... Как я могу получить список рабочих областей на определенной машине с p4?
Я могу выполнить p4 рабочие области, но это дает мне всех их, когда-либо. Как я могу отфильтровать его к определенной машине (клиент) имя.
Зависит от вашей среды. Для этого я включил базовый пакетный файл Windows.
Запустите клиентов p4
. Вытяните второе слово из каждой строки, это имя клиента. Запустите p4 client -o
. Grep для ^ Хост:. * \ B <имя хоста> \ b
. Если grep возвращает успех, этот клиент предназначен для этой машины. Накапливайте список.
В Windows:
set CLIENTS=
for /f "tokens=2" %%c in ('p4 clients') do call :ProcessClient %%c
echo clients on %HOSTNAME% are %CLIENTS%
pause
goto :eof
:ProcessClient
for /f "tokens=1,2" %%h in ('p4 client -o %1') do if "Host:%HOSTNAME%"=="%%h%%i" set CLIENTS=%CLIENTS% %1
goto :eof
Я знаю, что вы указали, используя P4, но вы также можете посмотреть P4Report, который дает вам доступ к Perforce с помощью SQL-запросов. После установки вам просто понадобится запрос вроде:
SELECT clients.client FROM clients WHERE (clients.host='enter your machine here')
, который вы также можете сделать из командной строки (p4sql -s "query string"). Так что, если вы не против заменить P4SQL на P4 в, вы можете более кратко чем предполагал сценарий.
P4Report можно найти в разделе «Инструменты и утилиты» на странице «Загрузки Perforce».