[Perforce]password (P4PASSWD) invalid or unset. 的错误解决

前言

使用 Perforce , 可以使用Perforce 的Client 端。

有时候在编写一些脚本或代码的时候, 可能或使用到 Perforce的命令的方式。

正常状况下, 使用如下命令:

p4 -C utf8 -p host:port -u username -p password -c workspace sync //depot_path/...

就可以sync perforce 的源文件了。

登录的帐号和密码直接接在命令的后面。


但是以上的方法并不一定正确, 可能会出现 

Perforce password (P4PASSWD) invalid or unset

的错误。

在同一台机器上使用 p4 client 登录之后就正常了。

出现这个的原因基本上是 服务端对于验证设置的原因。

服务端需要 ticket 这样的验证方式。

所谓的ticket , p4 client 在登录的时候会在机器的

C:\Documents and Settings\user\下 新建一个 p4tickets.txt 的文件, 里面的内容是一系列的类似防伪码的东西。


搜索到的说明

细致的说明一下原因:

网络上的解释:
Your server's security level doesn't allow command line passwords.
You can get around this by using a ticket value instead. Use the
login command to get a valid ticket value:

p4 login -p

That will display the ticket value instead of saving it. You should
be able to cut and paste that into your command.

=====
If you are a superuser, you should be able to log in without specifying a
password.

If you have an active ticket for your superuser account, use: p4 login
<build_user>

Otherwise use: p4 -u <superuser_user> -P <superuser_password> login <build_user>


官方:
Problem:        
When issuing a p4 command in a trigger on a Windows server, the command returns the error:

Perforce password (P4PASSWD) invalid or unset.

This error indicates that the command did not find a valid ticket for the current user and it needs to log in to create one.


解决方法

1. 方法一

先登录,再执行sync等其他命令
echo %p4passwd%|p4 login


2. 方法二

使用已经有的ticket


    Set the location of P4TICKETS with set or p4 set [-s]:

    p4 set P4TICKETS=C:\Perforce\tickets.txt

    Log in as the trigger user:

    p4 login triggeruser

    In the trigger, make sure P4TICKETS is set to the same location. You can skip this step if you used p4 set -s to set P4TICKETS:

    set P4TICKETS=C:\Perforce\tickets.txt


方法一, 我有实际的使用过, 方法二还未试用




你可能感兴趣的:([Perforce]password (P4PASSWD) invalid or unset. 的错误解决)