[p4] Fixing a release branch

Jeff A. Bowles jab at pobox.com
Fri Mar 30 10:46:44 PST 2007


The best way, the safest way, and the easiest way.  They aren't the same
thing, in this case.

The best way:
     Convince yourself that the check-ins to the "oops" branch were
     only the original branching operations, even if from the wrong  
revisions
     in the parent.   Then run an  "integrate -f" (force) from the  
correct
     revisions and redo the work / checkin.  Spend a little time  
verifying that
     you don't have accidental files that are new-since-correct- 
branch-point
     appearing in the child.

     This gives you the history of the "oops" and how it was fixed,  
which will
     be nice to view in the future.

The safest way:
     Hold your nose, pick a different codeline name (even if it's  
different
     by one character in the directory name.)  Branch from the  
correct place
     to there, and make the "oops" branch invisible using "p4 protect".

     This has the least chance of "bigger-oops" mistakes.

The easiest way:
     Convince yourself that the check-ins to the "oops" branch were
     only the original branching operations, even if from the wrong  
revisions
     in the parent.  Then telephone tech support and do an obliterate  
of the
     "oops" branch while they are on the phone listening to the typing.

     They have dealt with enough "oops" cases to help prevent this from
     being an "oops-even-more" situation.

-Jeff Bowles

ps. Remember that you're eventually running a command that looks like:
              p4   integrate    //depot/main/... at label     //depot/ 
releases/xx.y/...
              p4   submit
That might be "@label", might be "@date", and might be "@changelist".
(It will almost-never be "#have" or "@client".  That is supported by the
tool, but might lead to process-related surprises.)

On Mar 30, 2007, at 8:01 AM, Vander Werf, Bruce wrote:

> We branched our main codeline as a release branch, only to realize  
> that
> we had included changes made since the point of release. I would  
> like to
> do this again at an earlier point (changelist), but I'm not sure the
> best way to do this.
>
> I can obliterate the bad branch, but I am worried about side effects.
> When I tested this, the report was 'Would delete 594 client 594
> integration 297 revision records.' There have been no revisions to the
> branch, so I'm concerned about what this actually deleting.
>
> I tried deleting the bad branch. When I tried then to renintegrate at
> the proper point, it simply returned:
>
>     //depot/blah/blah/... at 896 - all revision(s) already integrated.
>
>
> What's the best solution here?
>
> _______________________________________________
> 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