修复 P4 命令行始终有效

修复 P4 命令行始终有效

概括:除非我从 P4V 打开 shell,否则Perforce 命令行p4无法正常工作。如何/在哪里编辑内容以修复我的配置,使其始终有效?

细节

在 Windows 7x64 上,如果我运行cmd.exe然后使用 p4 命令行,它会尝试连接到不再存在的旧服务器:

C:\>p4 info
Perforce client error:
        Connect to server failed; check $P4PORT.
        TCP connect to p4proxy-bdr:2006 failed.
        connect: p4proxy-bdr:2006: WSAETIMEDOUT

C:\>echo %P4PORT%
%P4PORT%

但是,如果我启动 P4V(连接到正确的服务器),右键单击工作区中的任何文件并选择“在此处打开命令窗口”,则相同的命令可以正常工作:

C:\>p4 info
User name: gkistner
Client name: gkistner-dt2
Client host: gkistner-dt2
Client root: C:/p4/p4sw
Current directory: c:\
Peer address: <redacted>
Client address: <redacted>
Server address: <redacted>
Server root: <redacted>
Server date: 2013/08/13 10:05:09 -0700 PDT
Server uptime: 1512:04:23
Server version: <redacted>
Server license: <redacted>
Server license-ip: <redacted>
Case Handling: sensitive

C:\>echo %P4PORT%
p4sw:2006

当我从 vanilla 启动 P4 时,它从哪里获取配置?cmd.exe我如何将其更改为与 P4V 设置的相同?

答案1

可以使用命令设置 P4 的命令行设置p4 set。在工作 shell 下,不带任何参数,这将列出当前值:

C:\>p4 set
P4CLIENT=gkistner-dt2
P4EDITOR=C:\Windows\SysWOW64\notepad.exe (set)
P4PASSWD=<redacted> (set)
P4PORT=p4sw:2006
P4USER=gkistner

然后,转到非工作 shell 并复制/粘贴这些内容,并以下列内容作为前缀p4 set

C:\>p4 set P4CLIENT=gkistner-dt2
C:\>p4 set P4EDITOR=C:\Windows\SysWOW64\notepad.exe
C:\>p4 set P4PASSWD=<redacted>
C:\>p4 set P4PORT=p4sw:2006
C:\>p4 set P4USER=gkistner

现在你可以关闭这个 shell 并打开任意一个新 shell,P4 就可以工作了。

答案2

我使用的方法如下:

1 我通过环境变量设置的所有全局 perforce 设置:

P4EDITOR=C:\Program Files (x86)\Vim\vim74\gvim.exe

2 告诉 perforce,特定客户端的配置存储在.p4config客户端视图根文件夹中的文件中。这也是通过环境变量完成的:

P4CONFIG=.p4config

3 然后,在每个客户端的根文件夹中,我创建一个.p4config文件并在那里设置特定客户端的配置,如下所示:

P4CLIENT=my_client_1
P4PORT=server:1234
P4USER=myusername

相关内容