←Older revision |
Revision as of 09:08, 12 August 2010 |
Line 1: |
Line 1: |
- | #REDIRECT [[wikipedia::Mercurial_(software)]]
| + | [[wikipedia::Mercurial_(software)|Mercurial]] (also known as [[Hg]]) is a distributed versioning system. |
| + | |
| + | === Question === |
| + | |
| + | There are a couple of guys in the team that I am currently working in who |
| + | would like to switch from [[Subversion]] to [[Mercurial]]. Since you have been through |
| + | that already, I was wondering if you could give me some feedback on how it |
| + | went. Did the migration go well, did you have any major disruptions, ... ? |
| + | Any practical hints are greatly appreciated. |
| + | |
| + | === Answer === |
| + | |
| + | I am really glad we switched to [[Hg]]. Distributed systems are really great. |
| + | However the transition period was not easy. While [[Subversion]]] is for [[clueless]] |
| + | developers, in the [[Hg]] world people have to think. And that is slightly |
| + | unnatural for some of [[Chapter 1|these days programmers]]. One set of notes describing the issues can for |
| + | example be found at [[Mercurial_vs._Subversion]] page. |
| + | |
| + | For a while people were complaining and making mistakes. But slowly most of |
| + | them got over the problems and learned at least the basic commands to use [[Hg]]. |
| + | At that time I decided to make them more effective and we implemented |
| + | [[netbeans:HgParallelProjectIntegration]]. |
| + | |
| + | This [[teamwork|workflow]] really uses the power of distributed versioning system. You can |
| + | have a pyramid of repositories and builders and on each level you can ensure |
| + | the commit breaks nothing essential. Mistakes done by individual developers |
| + | are isolated and make little harm (in contrast to previous model when each |
| + | error means to everyone: "stop the world" and fix it). I am really proud of |
| + | this workflow, but my co-workers hated me for at least six months. Of course, I |
| + | was really bad, I forced them to think a bit about [[Hg]], while they wanted to |
| + | code. |
| + | |
| + | These days the hate is mostly gone. [[Hg]] and [[[netbeans:HgParallelProjectIntegration|parallel integration]] really makes |
| + | us more productive. Once you get used to it, it is almost natural (throw |
| + | some sarcastic comments in [[Talk:Mercurial|here]]). Definitely more natural than following |
| + | practice of our new co-workers: |
| + | |
| + | {{#ev:youtube|fVc_VPMsj7A}} |
| + | |
| + | So my advice is clear: Use [[Hg]] you will not have to learn to sing! |
| + | |
| + | [[Category:Video]] |