Tuesday Jul 29, 2008

NetBeans' Mercurial Repositories

The list of all NetBeans repositories can be found at http://hg.netbeans.org/. There is lot of repositories (clones) that are used for different purposes by different teams.
The most important repositories are
  • main-golden - a copy of main synchronized only after a successful continuous build. Thus it is always "safe" to pull from. If a build is broken, it will contain only older changes.
  • main - modules in the standard distribution and stable AU, build infrastructure, tests and test infrastructure, installer


There are also team repositories used by netbeans teams (e.g. core-main) and also main/contrib. The common developer work flow looks like
  1. clone the main (or main-golden) [of course, you have to do it just first time, then you are using just pull - http://wiki.netbeans.org/HgHowTos]
  2. fix bug / add new feature
  3. commit it - don't forget about the right commit message
  4. push to main
  5. when the main build pass all the change sets are pushed into the main-golden
  6. production build from main is created and published
Interested in more details?

Friday Jul 11, 2008

Automatic linking between Hg and Issuezilla

There always has been effort to link the commits of the bug fixes with the bug reports. There are an automated systems out there that do the work for you. For example JIRA can synchronize with Mercurial. Unfortunately, it wasn't such easy in the environment where the NetBeans developers had to work.
Before we moved to Mercurial VCS we had a rule that developer closing issue as FIXED had to provide also the cvs commit log to bug that he had closed. After the move to the Mercurial recently, developer are asked to provide changeset number when they are closing a bug report.

Time has changed. There has been developed new hudson plugin that adds new comment to the bug report when you commit your commit log with a message following simple pattern.
The pattern is #ISSUE_NUMBER("#[0-9]{4,7}+") wherever in the commit message. The best practice is to add the "#ISSUE_NUMBER - issue summary" to the first line of your commit. Example of commit log message: #139566 - [permui] Mercurial menu item in Tools menu doesn't follow permanent ui spec.

If you will commit the changeset with such message the you can expect the following message will appear in the issue (example)when your changes are correctly propagated into the main-golden repository :
------- Additional comments from qa@netbeans.org Tue Jul 29 14:43:08 +0000 2008 -------
Integrated into 'main-golden', available in build \*200807291401\* on http://bits.netbeans.org/dev/nightly/
Changeset: http://hg.netbeans.org/main/rev/bda38e44840f
User: Lukas Hasik 
Log: #139566 - [permui] Mercurial menu item in Tools menu doesn't follow permanent ui spec

IMPORTANT: the message is added to the issue only when the changeset is integrated into main-golden repository AND new build of main-golden passed. < href="http://blogs.sun.com/coreqa/entry/netbeans_mercurial_repositories">Main-golden is synchronized with main repository when all the tests pass. In some cases it can take a while therefore if you hurry with your bug fix verification provide us the changeset immediately when you are closing the issue as FIXED.
About

Team blog of NetBeans Core and Platform Quality Assurance team

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today