概括:除非我从 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