2010-01-21 7 views
20

Ainsi, virtuellement, vous ne pouvez pas utiliser la ligne de commande perforce pour autre chose que la synchronisation. Ma racine de l'espace de travail est mis en correspondance C: \ Voici une ligne de mon spec client: //claims1.0/main/... //cthiel/code/claims1.0/main/...Problèmes lors de l'utilisation de la ligne de commande perforce sous cygwin

Chaque fois que je lance cygwin et que j'essaie de travailler avec des fichiers de mon dépôt (comme p4 edit), j'obtiens une erreur du type: Le chemin '/cygdrive/c/code/commonTest/main.p4ignore' n'est pas sous la racine du client 'C: \'.

Les chemins ne correspondent pas, car l'équivalent de C: \ pour cygwyn est/cygdrive/c. Il n'est donc jamais possible de trouver des fichiers avec la ligne de commande perforce.

Y at-il un moyen de résoudre ce problème? C'est très agaçant.

Répondre

11

Même mo 'Betta':
Utilisez le client Cygwin p4: http://filehost.perforce.com/perforce/r07.2/bin.cygwinx86/p4.exe

Assurez-vous que c'est dans votre chemin avant la Perforce/p4.exe. Et voilà.

+0

cette version pointe sur ce lien n'est évidemment pas le dernier/le plus grand, mais les autres versions sont également disponibles dans les répertoires frères. –

+3

Vous pouvez obtenir le dernier client d'ici: http://www.perforce.com/downloads/complete_list Cliquez sur "Autre", puis "cygwin" – Philip

+1

le dernier client cygwin perforce a travaillé pour moi, merci Phillip! J'avais des problèmes avec P4CONFIG étant "ignoré" sous cygwin en utilisant le client NTX86 2008. Le problème ne se produit pas avec les clients 2010 et 2011 NTX86 p4.exe. – Bogatyr

35

trouvé une solution:
Ajouter à votre .bashrc:

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

fonctionne comme un charme pour moi.

+0

J'ai trouvé cela préférable au client cygwin p4 pour une raison quelconque. Probablement mon propre manque de connaissance - J'ai trouvé que le binaire cygwin m'obligeait à définir un mot de passe via une variable d'environnement (toujours heureux de voir les variables env avec des données sensibles), et encore j'ai eu la même erreur. Cela a fonctionné comme par magie. –

+0

Vous êtes une bouée de sauvetage. PWD était le problème dans mon script, parce que j'avais mappé% TEMP% comme/tmp :-) – anishsane

+3

J'ai trouvé que * pas * PWD d'exportation est mieux parce que changer $ PWD peut gâcher emacs et change également l'invite bash au format Windows. Je préfère faire ceci: fonction p4() {PWD = 'cygpath -ma.'" 'qui p4'" $ @}. De cette façon, PWD n'est modifié que dans la commande p4. – dividebyzero

5

Vous pouvez configurer des altroots dans les spécifications de votre client, cela pourrait couvrir cela?

Bien que le cygwin p4 soit la solution que j'opterais pour. Mais je voudrais aller à la dernière version: http://filehost.perforce.com/perforce/r09.2/bin.cygwinx86/p4.exe - cela fonctionnera avec n'importe quel serveur plus ancien, mais aura moins de bugs.

1

Une version modifiée de la fonction .bashrc pour éviter les frais généraux et cygpath trouver exécutable p4.exe dans le PATH automatiquement:

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

racine Alt semble fonctionner très bien pour moi. Cependant, je n'utilise pas cygwin. Mon code source réside dans le serveur Linux et j'ai un client dans Windows machine. J'ai mappé l'espace de travail du serveur sur Windows en utilisant le lecteur réseau.

4

S'il vous plaît noter, le Perforce CLI client for CygWin has been deprecated et ne sera plus pris en charge après 01/05/2013, selon le site Web de Perforce. Il y a une discussion de ce sujet sur les forums de support Perforce, y compris a poll which attempts to gauge the level of interest dans le soutien continu pour le client CygWin. Le support est arrêté pour des raisons financières (frais de licence à Redhat pour la distribution commerciale de Cygwin); donc si un intérêt suffisant est montré, cette décision peut être reconsidérée.

Si vous utilisez le client P4 Cygwin, que vous avez déjà ou que vous vous intéressez au sujet, je vous invite à participer au sondage. Merci.