[p4] Obtain a clean workspace [Re: Is there a way to audit aworkspace?]

Paul-Marc Bougharios paulmarc.bougharios at gmail.com
Tue Aug 18 10:24:31 PDT 2009


Hi Matt,

Sometimes, applying a workaround doesn't hurt.
I stress on the "sometimes" thing.
You're right about having a proper education and usage of the tools at hand:
the effectiveness of the tools is that of the user of that tool.

Cheers,
Paul-Marc Bougharios


On Tue, Aug 18, 2009 at 8:16 PM, Matt Janulewicz <
matt.janulewicz at lucasfilm.com> wrote:

>  I'm still wondering why people 'distrust' Perforce so much and want clean
> workspaces so often. The tool was obviously purchased to feel a need and I
> still think there are enough facilities built in to Perforce to not *have*
> to do clean syncs all the time.
>
> Our build processes rarely do clean syncs for day-to-day continuous builds.
> In the games industry, for instance, you might be talking about dozens of
> gigs of syncing for a build. Why bother? Leverage the tool, re-educate, play
> to the strengths of Perforce instead of working around perceived weaknesses.
>
>
> -Matt
>
>
>
> Paul-Marc Bougharios wrote:
>
> Another way of having a "clean" workspace is to delete and recreate it from
> Perforce side only.
> It can be done by doing:
> p4 have > have.log
> p4 client -o > client.log
> p4 client -d
> p4 client -i < client.log
> p4 -x have.log flush
>
> If there is a portion not needed, one would "un-sync" the path concerned
> before executing the above commands.
> As a reminder, "un-syncing" can be done by:
> p4 sync //PATH/...#0
>
> Cheers,
> Paul-Marc Bougharios
>
>
> On Tue, Aug 18, 2009 at 6:53 PM, Richard Kistruck <rhsk at ravenbrook.com><rhsk at ravenbrook.com>
> wrote:
>
> > (Note change of topic, from auditing an existing workspace, to obtaining
> a
> > new clean one).
> >
> > On 2009-08-18Tue, at 04:31, Slava Imeshev wrote:
> >
> >> p4 sync -f a bullet-proof way of having a clean build
> >>> workspace, which is a good idea for release/QA builds.
> >>>
> >>
> >> I should have mentioned that "bullet-proof" implied emptying
> >> the build workspace before running p4 sync -f.
> >>
> >
> > "sync -f" DOES NOT overwrite open files.  If you want to obtain a clean
> > workspace, you must revert all open files first, or no amount of syncing
> > will help you.
> >
> >  <
> >
> http://www.perforce.com/perforce/doc.091/manuals/cmdref/sync.html#1040665>
> >
> > (And, even worse, when you have an open file, "p4 sync -f" gives a
> > potentially misleading report of "myfile.txt - file(s) up-to-date." --
> try
> > it!  Your p4 version may differ...)
> >
> >
> >
> > To obtain a clean workspace, starting from nothing, one suitable
> procedure
> > is:
> >
> >  1.  p4 revert mywork/...
> >  2.  rm -rf mywork
> >  3.  p4 sync -f mywork/... at NNN
> >
> > Discussion: The "revert" is necessary to close any p4-opened files.  You
> > probably want to check for them with "p4 opened mywork/..." before
> blindly
> > reverting them all!  For anyone who doesn't speak Unix, the "rm -rf"
> removes
> > the "mywork" directory and everything it contains.
> >
> > (One more note: If you are doing this from a script, and relying on it
> for
> > a product that carries your reputation, then you had better also make
> sure
> > your script checks for and halts if there are any errors from the p4
> > commands, such as from the network going down!)
> >
> > Again: this is the procedure I use, to obtain a small clean workspace
> from
> > scratch; corrections or improvements are welcomed.
> >
> > Richard Kistruck
> > Ravenbrook Limited
> > _______________________________________________
> > perforce-user mailing list  -  perforce-user at perforce.com
> > http://maillist.perforce.com/mailman/listinfo/perforce-user
> >
> _______________________________________________
> perforce-user mailing list  -  perforce-user at perforce.com
> http://maillist.perforce.com/mailman/listinfo/perforce-user
>
>



More information about the perforce-user mailing list