2010-07-21 12 views
2

Je suis sur un système Windows XP, et j'exécuter cette commande depuis la ligne de commande:Comment 'cvs logout' ne fonctionne-t-il pas?

cvs -d :pserver:[email protected]/RepositoryName login -p <pw> 

qui génère cette réponse:

Logging in to :pserver:[email protected]:2401:/RepositoryName 

Si je puis tapez:

cvs logout 

Je reçois ce message:

cvs logout: bad CVSROOT - Cannot specify port: ":pserver:[email protected]:2401/RepositoryName" 

Redémarrer mon PC n'a pas aidé. Comment suis-je entré dans cet état, et comment puis-je m'en sortir?

+1

Quel client CVS (et quelle version) utilisez-vous? Il semblerait que le port par défaut de votre CVSROOT soit incorrectement ajouté. – mwalker

Répondre

3

Comme vous ne l'avez pas spécifié CVSROOT (à savoir l'option -d) pour la commande logout, CVS ne peut obtenir ce soit à partir du bloc d'environnement ou à partir des métadonnées d'un déjà vérifié copie de travail (à savoir le fichier ./CVS/Root). Se pourrait-il que vous ayez spécifié le CVSROOT via une variable d'environnement et oublié le second deux-points (c'est-à-dire celui après le numéro de port)? En outre, spécifier le port 2401 explicitement ne devrait pas être nécessaire car il est déjà le port par défaut pour :pserver: (et dans votre exemple, vous n'avez pas spécifié le port lorsque vous avez exécuté la commande login).

Dans tous les cas, logout fonctionnera uniquement lorsque le CVSROOT spécifié correspond à celui qui a été utilisé pour la connexion. Enfin, vous devez savoir que login et logout ne délimitent pas une "session". CVS utilise un protocole sans session. En réalité, la commande login met en cache localement votre mot de passe afin que vous n'ayez pas à le saisir à nouveau pour chaque commande (CVS le lit implicitement à partir du cache à chaque fois). Logout supprime à nouveau le mot de passe du cache afin que la prochaine fois que vous exécutez une commande, vous devrez l'entrer à nouveau.

+0

Vous avez tout à fait raison. Mon CVSROOT manquait le deuxième colon. Je l'ai maintenant ajusté afin qu'il ne spécifie pas de port du tout, et la déconnexion de cvs ne se plaint plus. Je n'avais jamais eu besoin de faire une déconnexion de cvs auparavant, car j'utilise habituellement TortoiseCVS, mais je jouais hier sur la ligne de commande et j'ai découvert le comportement étrange mentionné dans ma question. Merci beaucoup. –