The Road To Mercurial


As we have already stated, eventually GlassFish will move to Mercurial (Hg) as its primary source code management (SCM). However the road to Hg has proven more difficult than expected but let me start with why we need to move out from CVS.
  1. - CVS is fairly incompetent at moving files. With GlassFish v3, we will soon be changing the shape of the workspace to reflect our modularization effort and to stick closer to our new build system, maven2. So files will be moved around (possibly several times) until we stabilize the new brownian motion of modules relationships and without owning the cvs server (owned by java.net), we would have lost cvs history each time.
  2. - Hg is a distributed source code management system which is an advantage when dealing with massive projects like GlassFish.
  3. - Hg has the changeset concept where changes are treated as a group of related changes to several files which makes tracking and rollbacking a lot easier.
In fact, Sun is moving most of its open source projects to Hg, OpenSolaris and OpenJDK for instance so it's only natural we also move to this new SCM.
 
However moving is a difficult task, mainly because the tools to transfer the cvs history to mercurial are not capable of handling such a big repository as GlassFish V2. On top of that, our open source project host, java.net, cannot work with mercurial yet forcing us to manage our own infrastructure for user authentication, servers, and backup. We have better things to do...

So we have decided to move to Subversion ! Ok I know it sounds weird but hear me out :
  1. - java.net supports svn projects so no infrastructure work for us.
  2. - tools to move cvs history to subversion are very mature and worked flawlessly in our trial attempts.
  3. - in subversion, we can move files around without loosing history.
  4. - all IDEs in the universe supports subversion so our programmer's community don't get too impacted.
Does that mean we abandon Hg for subversion. No, the plan is still to move to Hg at some point. In particular, once we have settled our modules, we want to split the GlassFish repository in possibly 3 or 4 different java.net projects each with their private source code management. We think that creating new java.net projects will be a great time to move to mercurial.

So you have the full story, GlassFish developer, get to learn subversion for the time being and keep an eye on Mercurial.

Comments:

Post a Comment:
Comments are closed for this entry.
About

dochez

Search

Categories
Archives
« April 2015
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