Well, I’ve finally decided on my project for this open source course. I am happy to report that I will be working on Mercurial. For anyone that doesn’t know it is a Distributed Version Control Sytem (DVCS). Now if you are like me you’re probably wondering what in the world that is? Is it like subversion or CVS, if not then whats the difference? Let me explain…
Centralized Version Control System (CVCS) vs Distributed Version Control System (DVCS)
- CVCS focuses on synchronizing, tracking and backing up files
- DVCS is for sharing changes. Every change has a GUID
- Downloading or Recording and applying changes are all separate steps while in a CVCS the happen together
- DVCS would be suitable for larger projects with many developers
Mercurial is now used to house all Mozilla source. One of the advantages of a DVCS like Mercurial is that it frequently has branches and merges. The downside of this is that the history can become complicated and confusing very fast. For the project my job will be create a hopefully awesome browser-based UI for navigating Mercurial repository history. But before we can get to that it is important to understand how Mercurial iteself works. One can find a great getting started guide to Mercurial here. Have a read if you are interested.
Now my next task is to quickly get in touch with people who can guide me in the right direction and get me started on this project. But first I’m going to try to download Mercurial and pull the Firefox source with my own two hands. I hope to have my experiences on here in the coming week…