Mercurial(hg) How 2 letters will solve all your problems
Your developers: today Who has the database class open? I need to fix a bug! Okay, I’ll save my changes – you copy/paste yours into Notepad, reload the file, then add your changes back in. Okay, the new API is in the API-new directory, I left the old API for legacy stuff until we get it refactored. Can someone help the new guy get his environment up and running? I know you’re at home, but can you make the change and email it to me?
Your developers: tomorrow hg merge Changes between multiple developers are combined – like magic hg pull / hg update Get the work others have done, merge it with what I’ve done hg branch New features and massive rewrites can take place, without affecting other developers hg clone The new guy is ready to go hg push Changes are available to anyone else with access
Version control definitions Remote Repository Hosted online Where code is passed between developers hg pull hg push Index Hosted locally Code that is either incoming/outgoing the working copy hg update hg commit Working Copy Hosted locally Where the magic happens
Remote Repository Workflow:nomad developer A single developer that works from multiple locations. Index Index Working Copy Desktop Working Copy Laptop
Remote Repository Workflow:equal rights Every developer has equal rights to push code into the remote repository. Index Index Index Working Copy Developer A Working Copy Developer B Working Copy Developer C
Project Remote Repository Workflow:codebaseoverlord Codebase Overlord One developer controls the pushes into the project’s remote repository. (Indexes removed for graphic clarity). Remote Repository Remote Repository Remote Repository Developer A Developer B Developer C