2010-01-21 5 views
20

So kann virtuell die Perforce-Befehlszeile für nichts anderes als die Synchronisierung verwenden. Mein Arbeitsplatz Wurzel wird auf C zugeordnet: \ Hier ist eine Zeile meines Klienten spec: //claims1.0/main/... //cthiel/code/claims1.0/main/...Probleme mit Perforce-Befehlszeile unter cygwin

Jedes Mal, wenn ich Cygwin starte und versuche, mit irgendwelchen Dateien in meinem Depot zu arbeiten (wie zum Beispiel p4 edit), erhalte ich einen Fehler wie folgt: Pfad '/cygdrive/c/code/commonTest/main.p4ignore' ist nicht unter Client-Wurzel 'C: \'.

Die Pfade stimmen nicht überein, da das Äquivalent von C: \ für Cygwyn/cygdrive/c ist. Es ist also nie möglich, Dateien mit der Perforce-Befehlszeile zu finden.

Gibt es eine Möglichkeit, das zu beheben? Es ist sehr nervig.

Antwort

11

Auch mo 'Betta':
Verwenden Sie den Cygwin p4 Client: http://filehost.perforce.com/perforce/r07.2/bin.cygwinx86/p4.exe

So stellen Sie sicher, dass dies in Ihrem Pfad ist vor dem Perforce/p4.exe. Et voila.

+0

Diese Version, auf die dieser Link verweist, ist offensichtlich nicht die neueste/größte, aber die anderen Versionen sind auch in gleichgeordneten Verzeichnissen verfügbar. –

+3

Sie können den neuesten Client von hier erhalten: http://www.perforce.com/downloads/complete_list Klicken Sie auf "Andere" und dann "Cygwin" – Philip

+1

die neuesten cygwin client Zwangsarbeit Client für mich gearbeitet, danke Phillip! Ich hatte Probleme mit P4CONFIG unter Cygwin "ignoriert", wenn Sie den NTX86 2008 Client verwenden. Das Problem tritt bei den NTX86 p4.exe-Clients 2010 und 2011 nicht auf. – Bogatyr

35

eine Lösung gefunden:
Fügen Sie diese auf Ihre .bashrc:

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

wirkt wie ein Zauber für mich.

+0

Ich fand dies aus irgendeinem Grund gegenüber dem cygwin p4 Client vorzuziehen. Wahrscheinlich mein eigener Mangel an Wissen - ich fand, dass die cygwin-Binärdatei erforderte, dass ich ein Passwort über eine Umgebungsvariable (immer yucky, um env-Variablen mit sensiblen Daten zu sehen) setzte, und selbst dann bekam ich den gleichen Fehler. Das hat auf magische Weise funktioniert. –

+0

Sie sind ein Lebensretter. PWD war das Problem in meinem Skript, weil ich meine% TEMP% als/tmp gemappt hatte :-) – anishsane

+3

Ich fand, dass * nicht * PWD zu exportieren ist besser, weil das Ändern von PWD Emacs durcheinander bringen kann und bash prompt in Windows-Format ändert. Ich mache das lieber: function p4() {PWD = 'cygpath -ma.'' 'was p4'" $ @}. Auf diese Weise wird PWD nur innerhalb des p4-Befehls geändert. – dividebyzero

5

Sie können Altroots in Ihrer Client-Spezifikation einrichten, die das abdecken könnte?

Obwohl das Cygwin p4 die Lösung ist, würde ich gehen. Aber ich würde für die neueste Version gehen: http://filehost.perforce.com/perforce/r09.2/bin.cygwinx86/p4.exe - es wird mit jedem älteren Server funktionieren, wird aber weniger Bugs haben.

1

Eine modifizierte Version der Bashrc Funktion der cygpath Overhead- und der Suche nach p4.exe ausführbare Datei in der PATH automatisch zu vermeiden:

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

Alt Wurzel für mich zu funktionieren scheint. Allerdings benutze ich nicht Cygwin. Mein Quellcode befindet sich im Linux-Server und ich habe den Client in Windows-Maschine. Ich habe den Arbeitsbereich des Servers unter Windows mit dem Netzwerklaufwerk zugeordnet.

4

Bitte beachten Sie, die Perforce CLI client for CygWin has been deprecated und wird nach dem 1. 5. 2013 nicht mehr unterstützt, laut der Perforce-Website. Es gibt eine Diskussion dieses Themas in den Perforce-Support-Foren, einschließlich a poll which attempts to gauge the level of interest für die fortlaufende Unterstützung des CygWin-Clients. Support wird aus finanziellen Gründen eingestellt (Lizenzgebühren für Redhat für kommerzielle Cygwin-Distribution); Wenn also genügend Interesse gezeigt wird, kann diese Entscheidung überdacht werden.

Wenn Sie den P4 Cygwin-Client verwenden, haben Sie jemals Interesse an dem Thema, und ich fordere Sie auf, an der Umfrage teilzunehmen. Vielen Dank.