Hi there,
I used to extensively play with srcsrv+perforce in my previous company but it
appeared broken here.
The problem seems to be that “p4 info” and “p4 -p” do not use the same
$P4PORT format. The indexing script (part of Windbg 6.5.3.7) uses the port
name output from “p4 info” command (should have read from %P4PORT%).
C:\depot\dk\win\windbg\6.5.0003.7\sdk\srcsrv>p4 info
User name: hguan
Client name: testndis6
Client host: LTIRVD-HGUAN
Client root: c:\depot
Current directory: c:\depot\dk\win\windbg\6.5.0003.7\sdk\srcsrv
Client address: 10.7.82.136:4600
Server address: lhdepot1106.broadcom.com:1666
Server root: D:\Program Files\Perforce
Server date: 2005/08/14 14:50:47 -0700 Pacific Daylight Time
Server version: P4D/NTX86/2005.1/83219 (2005/07/25)
When windbg tries to retrieve a source file from the server, it issues
command:
SRCSRV: p4.exe -p lhdepot1106.broadcom.com:1666 print -o
“C:\windbg\src\IRVD_DEPOT\depot\FilterDrivers\WDM\bfport\irp.c\1\irp.c” -q
//depot/FilterDrivers/WDM/bfport/irp.c#1
But p4.exe doesn’t like the port name with domain. It works with
lhdepot1106:1666. But if I use lhdepot1106:1666 in my srcsrv.ini for
indexing, the script reads the port name from “p4 info” cmd and complains
“lhdepot1106.broadcom.com:1666 not in your srcsrv.ini” then it won’t do
anything.
To get it to work with my perforce, I have to make change the p4.pm script to
override the p4port with the environment variable instead.
my ($Server, $Root);
while (<$hProc>) {
chomp;
if (m/Server\saddress:\s(.*)/i) {
$Server = $1;
-> $Server = $ENV{‘P4PORT’}
} elsif (m/Client\sroot:\s(.*)/i) {
$Root = $1;
}
}
Is this a known issue or I’ve missed something obvious?
Thanks
Calvin
–
Calvin Guan (Windows DDK MVP)
NetXtreme Longhorn Miniport Prime
Broadcom Corp. www.broadcom.com