[p4] How to *really* back out a revision
Robert Cowham
robert at vaccaperna.co.uk
Wed Mar 26 02:49:28 PDT 2008
I agree with Steve that an obliterate is sometimes appropriate, but I would
always test out the speed of obliterates on a copy of your live server
before doing it for real.
For one client with a very large repository an obliterate of a single file
at a single revision is taking many hours - this with a 2006.2 server :(
Robert
> -----Original Message-----
> From: perforce-user-bounces at perforce.com
> [mailto:perforce-user-bounces at perforce.com] On Behalf Of Stephen Vance
> Sent: 26 March 2008 01:15
> To: Roy Smith
> Cc: perforce-user at perforce.com Com
> Subject: Re: [p4] How to *really* back out a revision
>
> In my opinion, this is an occasion where obliterate is justified.
> Solution (1) doesn't work because you can't have a client
> spec map a revision. The revision is determined by the sync,
> which leaves you with an open opportunity for more errors.
> Solution (2) could work, but is ugly and inadvisable for the
> reasons you cite.
>
> Steve
>
> Roy Smith wrote:
> > We've got an ugly problem caused by an accidental submit to
> a release
> > branch.
> >
> > Our patch generation process depends on file timestamps changing.
> > Skipping a few details, we build the baseline, then resync
> to the head
> > of the release branch, then rebuild. Anything that's changed, gets
> > put into the patch.
> >
> > Somebody accidentally submitted a new version of a commonly used
> > header file to the release branch. There's lots to talk
> about how to
> > prevent that from happening again, but that's a different
> story, and
> > what's done is done. We can resubmit the correct version
> as the new
> > head revision. That will result in the correct source file
> > *contents* being on #head, but as far as make is concerned, when we
> > rebuild, the file timestamp will have changed. That will
> cause a lot
> > of things will get rebuilt which don't need to get rebuilt
> (resulting
> > in a mongo patch, which we're trying to avoid).
> >
> > One solution is "p4 obsolete file#head". It would
> certainly fix the
> > problem, but I'm reluctant to use obliterate for all the commonly
> > cited reasons why it's not a good idea. Other ideas we've
> thought of
> > include:
> >
> > 1) Building a complex client spec which specifically maps the
> > "correct" revision of the offending file. This should work, but it
> > would be a special case in our patch process, and special
> cases tend
> > not to mix well with reproducible processes.
> >
> > 2) Creating a new branch starting with the correct revisions of
> > everything and using that as our new release branch.
> Again, I think
> > this works, but becomes an exception to the normal process going
> > forward.
> >
> > Anybody have any better ideas how to recover?
> >
> > -------------------
> > Roy Smith <smith_roy at emc.com>
> > Software Guy, EMC Common Management Group
> > 44 South Broadway, 7th floor
> > White Plains, NY 10601
> > +1 914 580 3427
> > AIM: roysmith649
> >
> > _______________________________________________
> > perforce-user mailing list - perforce-user at perforce.com
> > http://maillist.perforce.com/mailman/listinfo/perforce-user
> >
> >
>
> --
> Stephen Vance
> www.vance.com
> _______________________________________________
> 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