Stupid win32 perforce tricks

MarcP.Kwiatkowskimarc at MarcP.Kwiatkowskimarc at
Thu Apr 2 23:03:15 PST 1998

If you want to create a client that is capable of mapping
files to different FAT or NTFS drives, just export the 
drives of interest, and use the UNCs in your perforce client.

For example suppose I want to map a bunch of perl modules
to d:/perl/lib/, gnumake and some other scripts to c:/local/bin,
and a bunch of source to e:/.  Using the win32 explorer,
I share c:/local as //thelonious/local, d:/perl as 
//thelonious/perl, and e: as //thelonious/home.  Now I can map 
gnumake and other script to c:/local/bin, various perl modules
to d:/perl/lib/.../*.pm, and my current project to e:/project using
the client below:

Client: //thelonious-client

Date:     1998/04/02 18:12:45

Owner:       marc

        Created by marc.

Root:   //thelonious

Options:    nomodtime noclobber

	//depot/thirdparty/gnu/make-3.76.1/WinRel/make.exe //thelonious-client/local/bin/make.exe
	//depot/build-tools/bin/... //thelonious-client/local/bin/...
	//depot/build-tools/lib/... //thelonious-client/local/lib/...
	//depot/build-tools/lib/.../*.pm //thelonious-client/perl/lib/.../*.pm
	//depot/project/develop/... //thelonious-client/home/project/...

Note how I map most of /build-tools/lib to c:/local/lib, but stick the 
perl-modules where my installation of perl expects them.

Forgive me if this is old hat.  I haven't seen it
before, and it is so simple but so cool.  I felt I had to share it.

As a side note.  I find it simpler to make a separate client for utilities
and third party stuff than to include it in every project client.  For
both thirdparty and in-house utilities the client mappings tend to be
non-trivial.  For my home machine I want only the bare minimum I need 
to pull over a modem and when architecture matters I need win32.  For
my work machine I mostly want a full copy of things and typically need
solaris versions of binaries.  I find it preferable to get the mappings
right once and be done with it, since these clients change rarely.

For builds, I create labels that are rooted at //depot, so I can add
all the files from all the clients involved in a build, including the
third-party/in-house-utilities client.

- -- 
marc at

More information about the perforce-user mailing list