2010-05-15 7 views
6

Stavo per chiedere questo su superuser.com, ma c'erano solo 5 tag di perforazione così sono arrivato qui ... Come posso ottenere un elenco di aree di lavoro su uno specifico macchina con p4?Ottenere un elenco di aree di lavoro su una macchina specifica con p4

Posso eseguire p4 aree di lavoro, ma questo mi dà tutti, sempre. Come posso filtrarlo in un nome specifico della macchina (client).

risposta

9

A seconda dell'ambiente. Ho incluso un file batch di Windows di base per farlo.

Corsa p4 clients. Tira fuori la seconda parola da ogni riga, questo è il nome del cliente. Esegui p4 client -o <name>. Grep per ^Host:.*\b<hostname>\b. Se grep restituisce successo, quel client è per quella macchina. Accumula la lista.

In 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 
+0

Nel tuo secondo paragrafo intendi "Esegui' p4 client -o '", non 'workspaces' di nuovo? Questo è quello che hai nello script batch. – tenpn

+0

Ah sì, sono caduto nella terminologia P4V tra la scrittura del file batch e la scrittura di questo post su di esso. 'client' e 'spazio di lavoro' sono intercambiabili, anche se nel secondo caso non dovrebbe essere plurale. Risolverà. –

4

so specificato utilizzando P4, ma si potrebbe anche guardare P4Report, che vi dà accesso a query SQL Perforce. Una volta installato, si avrebbe solo bisogno di un qualcosa di interrogazione come:

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

che si può anche fare da linea di comando (p4sql -s "query string") Quindi, se non ti dispiace sostituendo P4SQL per P4 in te posso dirmi più conciso rispetto alla sceneggiatura suggerita.

P4Report è disponibile nella sezione Strumenti & Utilità della pagina Perforce Downloads.

Problemi correlati