我在Windows XP系统上,我从命令行执行此命令:
cvs -d :pserver:CharlesAnderson@ServerName/RepositoryName login -p <pw>
生成此响应:
Logging in to :pserver:CharlesAnderson@servername:2401:/RepositoryName
如果我输入:
cvs logout
我收到此消息:
cvs logout: bad CVSROOT - Cannot specify port: ":pserver:CharlesAnderson@ServerName:2401/RepositoryName"
重新启动我的电脑没有帮助。我是如何进入这种状态的,如何摆脱它呢?
答案 0 :(得分:3)
由于您没有为-d
命令指定CVSROOT(即logout
选项),因此CVS只能从环境块或已检出的工作副本的元数据中获取此值(即./CVS/Root
文件。你是否可以通过环境变量指定CVSROOT并忘记第二个冒号(即端口号后面的冒号)?此外,显式指定端口2401不是必需的,因为它已经是:pserver:
的默认端口(在您的示例中,当您运行login
命令时实际上没有指定端口)。
在任何情况下logout
仅在指定的CVSROOT与用于登录的CVSROOT匹配时才有效。
最后,您应该知道login
和logout
不会划分“会话”。 CVS使用无会话协议。 login
命令实际执行的操作是在本地缓存您的密码,因此您不必为每个命令重新输入密码(CVS每次都会从缓存中隐式读取它)。 Logout
再次从缓存中删除密码,以便下次运行命令时,您必须再次输入密码。