Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8237742

Add information about backing out changes to the developer's guide


    • Type: Enhancement
    • Status: New
    • Priority: P3
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: docs
    • Labels:


      I'd like to add the following text to the Developer's guide (http://openjdk.java.net/guide/index.html) under "What happens next".
      The description is plain text here but I intend to follow the formatting as it is done in the rest of the guide. A formated version is available here: https://wiki.openjdk.java.net/display/HotSpot/HotSpot+How+To (The text below has been updated.)

      Backing out a changeset

      If a change that causes a regression is identified, one way to handle the regression is to back out the change. Any Committer can back out changes. The back out changeset will go through the standard code review process.

      There are two parts to this task, how to do the bookkeeping in JBS, and how to do the actual back out in mercurial.

      How to work with JBS when a change is backed out

      1. Close the original JBS issue and mark it with "Fix Failed", which is an alternative on the "Verify" action.
      2. If the intention is to fix the change and submit it again, create a redo-issue to track that the work still needs to be done. Clone the original JBS issue and use prefix [REDO] on the summary.
       - Make sure relevant information is brought to the clone.
      3. Create a backout-issue:
       - Alternative 1 - a regression is identified directly. Create a Sub-Task to the redo-issue with the same summary, but prefix with [BACKOUT].
       - Alternative 2 - an investigation issue is created, and during the investigation backing out the change is identified as the best solution.
            a. Use the investigation issue for the backout.
            b. Change summary to the same as the issue to back out and prefix with [BACKOUT].
            c. Link the redo-issue and the backout-issue.
       - Alternative 3 - no redo issue was created. Create a backout-issue with the same summary, but prefix with [BACKOUT].
            a. Link the backout-issue and the original issue.

       - Note that comments are not brought over to the clone.
       - ProblemList and exclude labels will continue to point to the original bug (unless updated at back out). This is accepted since there is a clone link to follow.

      How to work with mercurial when a change is backed out

      In order to back out a change, the hg backout command is recommended, which essentially applies the anti delta of the change. Make sure you perform the back out in the most upstream repostiory the change has spread to.
      hg backout [OPTION]... [-r] REV

      reverse effect of earlier changeset

          Prepare a new changeset with the effect of REV undone in the current
          working directory.

          If REV is the parent of the working directory, then this new changeset is
          committed automatically. Otherwise, hg needs to merge the changes and the
          merged result is left uncommitted.




            • Assignee:
              jwilhelm Jesper Wilhelmsson
              jwilhelm Jesper Wilhelmsson
            • Votes:
              0 Vote for this issue
              1 Start watching this issue


              • Created: