Mercurial(hg)How 2 letters will solve all your problems
Your developers: todayWho 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: tomorrowhg mergeChanges between multiple developers are combined – like magichg pull / hg updateGet the work others have done, merge it with what I’ve donehg branchNew features and massive rewrites can take place, without affecting other developershg cloneThe new guy is ready to gohg pushChanges are available to anyone else with access
Version control definitionsRemote RepositoryHosted onlineWhere code is passed between developershg pullhg pushIndexHosted locallyCode that is either incoming/outgoing the working copyhg updatehg commitWorking CopyHosted locallyWhere the magic happens
Remote RepositoryWorkflow:nomad developerA single developer that works from multiple locations.IndexIndexWorking CopyDesktopWorking CopyLaptop
Remote RepositoryWorkflow:equal rightsEvery developer has equal rights to push code into the remote repository.IndexIndexIndexWorking CopyDeveloper AWorking CopyDeveloper BWorking CopyDeveloper C
Project Remote RepositoryWorkflow:codebaseoverlordCodebase OverlordOne developer controls the pushes into the project’s remote repository.(Indexes removed for graphic clarity).Remote RepositoryRemote RepositoryRemote RepositoryDeveloper ADeveloper BDeveloper C

Mercurial: Beginners (v1)

  • 1.
    Mercurial(hg)How 2 letterswill solve all your problems
  • 2.
    Your developers: todayWhohas 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?
  • 3.
    Your developers: tomorrowhgmergeChanges between multiple developers are combined – like magichg pull / hg updateGet the work others have done, merge it with what I’ve donehg branchNew features and massive rewrites can take place, without affecting other developershg cloneThe new guy is ready to gohg pushChanges are available to anyone else with access
  • 4.
    Version control definitionsRemoteRepositoryHosted onlineWhere code is passed between developershg pullhg pushIndexHosted locallyCode that is either incoming/outgoing the working copyhg updatehg commitWorking CopyHosted locallyWhere the magic happens
  • 5.
    Remote RepositoryWorkflow:nomad developerAsingle developer that works from multiple locations.IndexIndexWorking CopyDesktopWorking CopyLaptop
  • 6.
    Remote RepositoryWorkflow:equal rightsEverydeveloper has equal rights to push code into the remote repository.IndexIndexIndexWorking CopyDeveloper AWorking CopyDeveloper BWorking CopyDeveloper C
  • 7.
    Project Remote RepositoryWorkflow:codebaseoverlordCodebaseOverlordOne developer controls the pushes into the project’s remote repository.(Indexes removed for graphic clarity).Remote RepositoryRemote RepositoryRemote RepositoryDeveloper ADeveloper BDeveloper C