Получение списка рабочих областей на определенной машине с p4

Я собирался спросить это относительно superuser.com, но были только 5 по необходимости теги, таким образом, я приехал сюда... Как я могу получить список рабочих областей на определенной машине с p4?

Я могу выполнить p4 рабочие области, но это дает мне всех их, когда-либо. Как я могу отфильтровать его к определенной машине (клиент) имя.

6
задан Matt 15 May 2010 в 00:58
поделиться

2 ответа

Зависит от вашей среды. Для этого я включил базовый пакетный файл 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
9
ответ дан 8 December 2019 в 18:33
поделиться

Я знаю, что вы указали, используя P4, но вы также можете посмотреть P4Report, который дает вам доступ к Perforce с помощью SQL-запросов. После установки вам просто понадобится запрос вроде:

SELECT clients.client FROM clients WHERE (clients.host='enter your machine here')

, который вы также можете сделать из командной строки (p4sql -s "query string"). Так что, если вы не против заменить P4SQL на P4 в, вы можете более кратко чем предполагал сценарий.

P4Report можно найти в разделе «Инструменты и утилиты» на странице «Загрузки Perforce».

4
ответ дан 8 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: