Migrating to Mercurial (Hg) : Sustaining NetBeans 6.1 and beyond



  • When NetBeans vx.y is released, the sustaining branch for that version will be created. (See HgCreatingReleaseClones for technical tips on doing this.) Sustaining will make appropriate requests to RE for such branch creation.
  • The branch will be used for creating patches to NetBeans vx.y and for any other approved post-release work.
  • The branch will be placed in high-resistance mode upon creation, to ensure controlled changes to the branch.
  • Regular builds will be set up for the branch and the instructions on building the branch documented at wiki.netbeans.org.
  • The builds will be done on external server (just as for development) making the builds available for the community.

Deliverables should be followed up as done in HgMigrationChecklist.

Build frequency and storage

  • The sustaining branch for the latest release will be built once per day. The branches for the previous releases will be built once per week or once a month. Builds can also be requested on-demand and will be looked into depending on BE resource availability.
  • The builds used for releasing patches should be backed up and kept.
  • For regular builds, it is sufficient to keep a reasonable number of successful builds:
  • 4 for monthly and weekly builds
  • 7 for daily builds
  • Failed builds should be kept until the next successful build and then cleared away.
  • There is another way to do this:
  • Keep only the last successful regular build.
  • Keep failed builds until the next successful build.
  • For patch release, sustaining will always request on-demand builds. On-demand builds should always be kept. This method would work better if regular and on-demand builds are done in separate directory structures.


  • Binaries will not be maintained in Hg but in http://hg.netbeans.org/binaries/ . We should ensure that files that are in possible use by sustaining branches should not be removed.
  • Resolved. The binary server is append-only and files cannot be deleted or modified from there. Also Note that (1) if some binary files were deleted, it would suffice to find them somewhere and upload them again; (2) if you modified a binary file on the server, the build would reject it (hash mismatch).
  • Changes made to sustaining branches need to controlled and tracked.
  • Resolved. Changes to CVS sustaining branches were tracked by setting up cronjobs that periodically do a cvs checkout. With Hg, we will instead utilise any support the system provides for high-resistance mode. Sustaining branches upon creation will be placed in high-resistance mode.


Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo