This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 194550

Summary: Use Mercurial subrepos to synchronize main and contrib
Product: www Reporter: Jesse Glick <jglick>
Component: Builds & RepositoriesAssignee: pgebauer <pgebauer>
Status: RESOLVED WONTFIX    
Severity: normal    
Priority: P3    
Version: 7.0   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:
Bug Depends on: 190537    
Bug Blocks:    
Attachments: Skeleton of patch

Description Jesse Glick 2011-01-20 21:05:17 UTC
Created attachment 105219 [details]
Skeleton of patch

Currently the list of modules to be included in the experimental cluster, many of which are in the contrib repo, is kept in nbbuild/cluster.properties in the main clones. This causes synchronization problems since we can push immediately to contrib but only indirectly to main-silver. One fix is to separate the list of contrib/* modules in the experimental cluster into a file in the contrib repo so a module can be atomically created and registered, or atomically deleted and deregistered, etc.

(An alternate solution would be to use http://mercurial.selenic.com/wiki/Subrepository to tie a particular revision of contrib to a matching revision in main. This would likely involve implementing http://issues.hudson-ci.org/browse/HUDSON-4838 as well. TBD if it is even possible to have an optional subrepo.)
Comment 1 Jesse Glick 2011-09-01 15:53:38 UTC
Storing the contrib/* module list in the contrib repository would help for the case that you are adding or removing a contrib module. It would not help for the case that you are making some change in main which would break the build in contrib, whether a Java-level incompatibility or some other thing. In some cases the matching change in contrib can be made and pushed first, but in other cases the changes must be synchronized. Only subrepos would help for these last cases.

Reading the subrepo docs, it looks like this could work if there were a "master" repo with no real files that just contained main and contrib as subrepos. nbms-and-javadoc would then check out the master repo (assuming the Hudson plugin were made to produce an aggregated changelog). The problem is that this would not interact well with team repositories; would really only make sense to have one main repository with a bunch of branches.
Comment 2 Jesse Glick 2012-06-11 14:18:28 UTC
Adjusting summary - subrepos would probably be better than this patch.