2010-01-21 10 views
20

Quindi, virtualmente non è possibile utilizzare la riga di comando di perforce per qualcosa di diverso dalla sincronizzazione. La mia radice area di lavoro è mappato a C: \ Ecco una linea del mio cliente spec: //claims1.0/main/... //cthiel/code/claims1.0/main/...Problemi utilizzando la linea di comando perforce sotto cygwin

Ogni volta che accendo Cygwin e provo a lavorare con qualsiasi file nel mio depot (come p4 edit), ottengo un errore sulla falsariga di: Path '/cygdrive/c/code/commonTest/main.p4ignore' non è sotto la radice del client 'C: \'.

I percorsi non corrispondono, perché l'equivalente di C: \ per cygwyn è/cygdrive/c. Quindi non è mai in grado di trovare file con la riga di comando perforce.

C'è un modo per risolvere questo problema? È molto fastidioso.

risposta

11

Anche mo 'betta':
Utilizzare il client p4 cygwin: http://filehost.perforce.com/perforce/r07.2/bin.cygwinx86/p4.exe

Basta assicurarsi che questo è nel tuo percorso prima della Perforce/p4.exe. Et voilà.

+0

questa versione a cui punta il collegamento non è ovviamente la più recente/massima, ma le altre versioni sono disponibili anche nelle directory di pari livello. –

+3

È possibile ottenere l'ultimo client da qui: http://www.perforce.com/downloads/complete_list Fare clic su "Altro" e quindi su "cygwin" – Philip

+1

l'ultimo client di cygwin perforce ha funzionato per me, grazie Phillip! Stavo avendo problemi con P4CONFIG essere "ignorato" sotto cygwin quando si utilizza il client NTX86 2008. Il problema non si verifica con i client NTX86 p4.exe 2010 e 2011. – Bogatyr

35

trovato una soluzione:
Aggiungi questo al vostro .bashrc:

function p4() { 
export PWD=`cygpath -wa .` 
/cygdrive/c/Program\ Files/Perforce/p4.exe [email protected] 
} 

funziona come un fascino per me.

+0

Ho trovato questo preferibile al client cygwin p4 per qualche motivo. Probabilmente la mia mancanza di conoscenza - ho scoperto che il cygwin binario mi ha richiesto di impostare una password tramite la variabile di ambiente (sempre yucky per vedere le variabili env con dati sensibili), e nonostante ciò ho avuto lo stesso errore. Questo ha funzionato magicamente. –

+0

Sei un risparmiatore di vita. PWD era il problema nel mio script, perché avevo mappato il mio% TEMP% come/tmp :-) – anishsane

+3

Ho trovato che * non * esportare PWD è migliore perché la modifica di $ PWD può rovinare emacs e cambia anche il prompt di bash in formato windows. Preferisco farlo: function p4() {PWD = 'cygpath -ma.'" 'which p4'" $ @}. In questo modo PWD viene modificato solo all'interno del comando p4. – dividebyzero

1

Una versione della funzione .bashrc modificato per evitare il sovraccarico e trovando cygpath eseguibile p4.exe nel PATH automaticamente:

function p4() { 
    PWD= `which p4` "[email protected]" 
} 
0

radice Alt sembra funzionare bene per me. Tuttavia non sto usando cygwin. Il mio codice sorgente risiede nel server linux e ho un client nella macchina Windows. Ho mappato l'area di lavoro del server su Windows utilizzando l'unità di rete.

4

Si prega di notare, il Perforce CLI client for CygWin has been deprecated e non sarà più supportato dopo il 5/1/2013, secondo il sito web Perforce. Si discute di questo argomento nei forum di supporto di Perforce, incluso a poll which attempts to gauge the level of interest nel supporto continuo per il client CygWin. Il supporto viene sospeso per ragioni finanziarie (canoni di licenza a Redhat per la distribuzione Cygwin commerciale); quindi, se viene mostrato un interesse sufficiente, tale decisione può essere riconsiderata.

Se si utilizza il client Cygwin P4, si ha mai o si è interessati all'argomento, ti invito a partecipare al sondaggio. Grazie.

Problemi correlati