[p4] Who deleted a client

Jeff A. Bowles jab at piccoloeng.com
Wed Oct 3 11:36:30 PDT 2001

At 09:18 AM 10/3/2001 -0700, Russell C. Jackson wrote:
>1. Create the clientspec
>2. Run p4 client -o > clientname.txt
>3. Check in clientname.txt into the source area for the product it belongs
>4. Modify the build script to first sync out clientname.txt
>5. Then the build script runs p4 client -i < clientname.txt
>6. Then it does a full sync against that client to setup for the build.

         Rusty mentioned something in this checklist that is
         a "stealth" item, something that should be really
         emphasized for all build scripts.

         Don't ever assume that your build script contents,
         the ones sitting in your workspace, are the current
         revision. They should be, they better be, they must be.

         But they might not be. Someone might've made a mod
         to the script and checked it in; will your overnight or
         product builds use the new functionality?

         Also, is your build script checked into the area that's
         specific to a particular release, or is it the same build
         script for EVERY release?  Odds are good that the
         set of things to build for 1.0 aren't going to be the same
         as for 5.0, and you don't want the headache of trying to
         have your 5.0 script support older (1.0) builds. It's no fun.


         1. Rusty's point #4 ("sync out the client spec") is actually
         dancing near my point. Always pull the things you'll need
         for the build from the most recent (or explicitly labeled)
         copy [in the appropriate place] from the depot.
         2. There's a command, "p4 print filename", that pulls a
         copy from the depot without going through the client spec
         and without changing the database information about which
         revisions/files you "have". So
                 "p4 sync //depot/main/buildscript.pl > /tmp/build.pl"
         might be a sequence you want. (You might end up with
         two build scripts, one that's three lines long that just pulls
         down the REAL script, sets some env variables or arguments,
         and runs it.)

         I'm still not sold on the "recreate the client on the fly
         for the builds" strategy, since I prefer to just empty the
         existing client and resync, but there's room on the bus
         for all sorts of riders...


More information about the perforce-user mailing list