SlideShare a Scribd company logo
1 of 16
Mercurial robertmaclean www.sadev.co.za ∞ @rmaclean ∞ robert@sadev.co.za
Mercurial April 2005 Created for Linux Kernel  DVCS Distributed Version Control System It’s just source control, so what you know is still relevant
Client/Server Source Control Central management All code, all history, all settings Just working set Good & established tool (build, WI) integration SVN Merge has only working set knowledge LOCKS?! ARRGGHH! Connection to server needed .svn pollution  Cannot share between people without the server Server is unaware of renaming
DVCS Everyone has full repo Tool integration is still growing Merge has full knowledge No locking hg hg hg hg hg hg Can work disconnected Single .hg directory Aware of renaming Easy to share between people
So it is perfect? Some management (users) issues Can be solved on the transport Maturity needed No reason not to check-in ALL the time Backups? Can’t delete branches Performance issues Can’t pull a working set Workflows need to change
Workflow chaos ,[object Object]
Run testing, deployment builds
What happens if you go dark?
What about security?
How do I add or remove users?
Where is the backup that we will use when the building burns down?hg hg hg hg hg hg
The Blessed Repo Workflow Build server runs against blessed repo WI against this hg hg hg hg hg hg hg Backup this Central Management Here  Familiar model
The Hybrid Blessed Repo Workflow Mercurial to SVN Bridge hg hg hg hg hg hg SVN
Network of Trust Workflow King hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg Penguins Disk Graphics Networks Lieutenants Unwashed Masses
Corporate Network of Trust Workflow Seniors hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg Intermediates Juniors
Deployment Team Workflow Deploy Can run own workflows Can have own build and ship quality gates hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg Pre-Prod Can have own branching strategy Development

More Related Content

What's hot

Building cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesBuilding cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile Services
Kevin DeRudder
 
Use html5 to build what you want, where you want it
Use html5 to build what you want, where you want itUse html5 to build what you want, where you want it
Use html5 to build what you want, where you want it
Kevin DeRudder
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
Rasheed Waraich
 

What's hot (20)

WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOpsWinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
WinOps Conf 2016 - Matteo Emili - Development and QA Dilemmas in DevOps
 
Microservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or NightmareMicroservices Architecture: Nirvana or Nightmare
Microservices Architecture: Nirvana or Nightmare
 
VISUG: Visual studio for web developers
VISUG: Visual studio for web developersVISUG: Visual studio for web developers
VISUG: Visual studio for web developers
 
Building cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile ServicesBuilding cross platform applications using Windows Azure Mobile Services
Building cross platform applications using Windows Azure Mobile Services
 
Devops e a nova cultura - TDC Florianopolis 2015
Devops e a nova cultura - TDC Florianopolis 2015Devops e a nova cultura - TDC Florianopolis 2015
Devops e a nova cultura - TDC Florianopolis 2015
 
Use html5 to build what you want, where you want it
Use html5 to build what you want, where you want itUse html5 to build what you want, where you want it
Use html5 to build what you want, where you want it
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
What Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java DevelopmentWhat Visual Studio Code can do for Java Development
What Visual Studio Code can do for Java Development
 
Windows 8
Windows 8Windows 8
Windows 8
 
Mini-Training: NDepend
Mini-Training: NDependMini-Training: NDepend
Mini-Training: NDepend
 
ASP.NET Core 2.0: The Future of Web Apps
ASP.NET Core 2.0: The Future of Web AppsASP.NET Core 2.0: The Future of Web Apps
ASP.NET Core 2.0: The Future of Web Apps
 
WebMatrix
WebMatrixWebMatrix
WebMatrix
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
ASP.NET & Unit Testing
ASP.NET & Unit TestingASP.NET & Unit Testing
ASP.NET & Unit Testing
 
Zalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium GridZalenium - How to run Selenium Script using Docker and Selenium Grid
Zalenium - How to run Selenium Script using Docker and Selenium Grid
 
Component testing with cypress
Component testing with cypressComponent testing with cypress
Component testing with cypress
 
Laravel Dusk
Laravel DuskLaravel Dusk
Laravel Dusk
 
Developing SPI applications using Grails and AngularJS
Developing SPI applications using Grails and AngularJSDeveloping SPI applications using Grails and AngularJS
Developing SPI applications using Grails and AngularJS
 
Single-page applications and Grails
Single-page applications and GrailsSingle-page applications and Grails
Single-page applications and Grails
 
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows ConferenceWinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
WinOps Conf 2015 - Steve Thair - Why we need a DevOps on Windows Conference
 

Viewers also liked

Viewers also liked (6)

Windows 7 API Code Pack
Windows 7 API Code PackWindows 7 API Code Pack
Windows 7 API Code Pack
 
Visual Studio Productivity Tools
Visual Studio Productivity ToolsVisual Studio Productivity Tools
Visual Studio Productivity Tools
 
Development for nokia
Development for nokiaDevelopment for nokia
Development for nokia
 
Multitasking in applications
Multitasking in applicationsMultitasking in applications
Multitasking in applications
 
Aspect oriented programming
Aspect oriented programmingAspect oriented programming
Aspect oriented programming
 
Welcome to the cloud
Welcome to the cloudWelcome to the cloud
Welcome to the cloud
 

Similar to Mercurial

Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
Enkitec
 

Similar to Mercurial (20)

Deploying systems using AWS DevOps tools
Deploying systems using AWS DevOps toolsDeploying systems using AWS DevOps tools
Deploying systems using AWS DevOps tools
 
DevOps With Chef and Azure
DevOps With Chef and AzureDevOps With Chef and Azure
DevOps With Chef and Azure
 
North east user group tour
North east user group tourNorth east user group tour
North east user group tour
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
 
Accelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and MicroservicesAccelerate your Application Delivery with DevOps and Microservices
Accelerate your Application Delivery with DevOps and Microservices
 
Har du en DevOps i ditt team?
Har du en DevOps i ditt team?Har du en DevOps i ditt team?
Har du en DevOps i ditt team?
 
sahithi_Build_Release_Resume
sahithi_Build_Release_Resumesahithi_Build_Release_Resume
sahithi_Build_Release_Resume
 
Har du en DevOps i ditt team?
Har du en DevOps i ditt team?Har du en DevOps i ditt team?
Har du en DevOps i ditt team?
 
Laravel CI / CD in Azure Web Apps - Global Azure Bootcamp Jakarta
Laravel CI / CD in Azure Web Apps -  Global Azure Bootcamp JakartaLaravel CI / CD in Azure Web Apps -  Global Azure Bootcamp Jakarta
Laravel CI / CD in Azure Web Apps - Global Azure Bootcamp Jakarta
 
Continuous Delivery for Agile Teams
Continuous Delivery for Agile TeamsContinuous Delivery for Agile Teams
Continuous Delivery for Agile Teams
 
DevOps Jobs descriptions.pdf
DevOps Jobs descriptions.pdfDevOps Jobs descriptions.pdf
DevOps Jobs descriptions.pdf
 
AvenDATA and Devops
AvenDATA and DevopsAvenDATA and Devops
AvenDATA and Devops
 
Aswin
AswinAswin
Aswin
 
Devops - Continuous delivery patterns with serverless stack
Devops -  Continuous delivery patterns with serverless stackDevops -  Continuous delivery patterns with serverless stack
Devops - Continuous delivery patterns with serverless stack
 
Care and feeding notes
Care and feeding notesCare and feeding notes
Care and feeding notes
 
Modern Continuous Software Delivery
Modern Continuous Software DeliveryModern Continuous Software Delivery
Modern Continuous Software Delivery
 
Live Session1 lightning web component
Live Session1 lightning web componentLive Session1 lightning web component
Live Session1 lightning web component
 
Common blind spots on the journey to production vijay raghavan aravamudhan
Common blind spots on the journey to production  vijay raghavan aravamudhanCommon blind spots on the journey to production  vijay raghavan aravamudhan
Common blind spots on the journey to production vijay raghavan aravamudhan
 
Kevin Glavin - Continuous Integration, Continuous Delivery, and Deployment (C...
Kevin Glavin - Continuous Integration, Continuous Delivery, and Deployment (C...Kevin Glavin - Continuous Integration, Continuous Delivery, and Deployment (C...
Kevin Glavin - Continuous Integration, Continuous Delivery, and Deployment (C...
 
ALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin erroresALM Tour 2013 - Entregar a tiempo y sin errores
ALM Tour 2013 - Entregar a tiempo y sin errores
 

More from Robert MacLean

More from Robert MacLean (20)

14 things you need to be a successful software developer (v3)
14 things you need to be a successful software developer (v3)14 things you need to be a successful software developer (v3)
14 things you need to be a successful software developer (v3)
 
Git
GitGit
Git
 
OWASP TOP 10
OWASP TOP 10OWASP TOP 10
OWASP TOP 10
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
Looking at the Vue
Looking at the VueLooking at the Vue
Looking at the Vue
 
Kotlin 101
Kotlin 101Kotlin 101
Kotlin 101
 
Features of Kotlin I find exciting
Features of Kotlin I find excitingFeatures of Kotlin I find exciting
Features of Kotlin I find exciting
 
JavaScript Gotchas
JavaScript GotchasJavaScript Gotchas
JavaScript Gotchas
 
DevConf Survival Guide
DevConf Survival GuideDevConf Survival Guide
DevConf Survival Guide
 
Visual Studio ❤ JavaScript
Visual Studio ❤ JavaScriptVisual Studio ❤ JavaScript
Visual Studio ❤ JavaScript
 
What is new in C# 6?
What is new in C# 6?What is new in C# 6?
What is new in C# 6?
 
Putting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/TestPutting the DOT in .NET - Dev/Ops/Test
Putting the DOT in .NET - Dev/Ops/Test
 
A Developer Day 2014 - Durban
A Developer Day 2014 - Durban A Developer Day 2014 - Durban
A Developer Day 2014 - Durban
 
Agile lessons learned in the Microsoft ALM Rangers
Agile lessons learned in the Microsoft ALM RangersAgile lessons learned in the Microsoft ALM Rangers
Agile lessons learned in the Microsoft ALM Rangers
 
Hour of code - Train the trainer
Hour of code - Train the trainerHour of code - Train the trainer
Hour of code - Train the trainer
 
Building services for apps on a shoestring budget
Building services for apps on a shoestring budgetBuilding services for apps on a shoestring budget
Building services for apps on a shoestring budget
 
3 things your app API is doing WRONG
3 things your app API is doing WRONG3 things your app API is doing WRONG
3 things your app API is doing WRONG
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 
LightSwitch
LightSwitchLightSwitch
LightSwitch
 
How to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutesHow to build a Mobile API or HTML 5 app in 5 minutes
How to build a Mobile API or HTML 5 app in 5 minutes
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Mercurial

  • 1. Mercurial robertmaclean www.sadev.co.za ∞ @rmaclean ∞ robert@sadev.co.za
  • 2. Mercurial April 2005 Created for Linux Kernel DVCS Distributed Version Control System It’s just source control, so what you know is still relevant
  • 3. Client/Server Source Control Central management All code, all history, all settings Just working set Good & established tool (build, WI) integration SVN Merge has only working set knowledge LOCKS?! ARRGGHH! Connection to server needed .svn pollution Cannot share between people without the server Server is unaware of renaming
  • 4. DVCS Everyone has full repo Tool integration is still growing Merge has full knowledge No locking hg hg hg hg hg hg Can work disconnected Single .hg directory Aware of renaming Easy to share between people
  • 5. So it is perfect? Some management (users) issues Can be solved on the transport Maturity needed No reason not to check-in ALL the time Backups? Can’t delete branches Performance issues Can’t pull a working set Workflows need to change
  • 6.
  • 8. What happens if you go dark?
  • 10. How do I add or remove users?
  • 11. Where is the backup that we will use when the building burns down?hg hg hg hg hg hg
  • 12. The Blessed Repo Workflow Build server runs against blessed repo WI against this hg hg hg hg hg hg hg Backup this Central Management Here Familiar model
  • 13. The Hybrid Blessed Repo Workflow Mercurial to SVN Bridge hg hg hg hg hg hg SVN
  • 14. Network of Trust Workflow King hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg Penguins Disk Graphics Networks Lieutenants Unwashed Masses
  • 15. Corporate Network of Trust Workflow Seniors hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg Intermediates Juniors
  • 16. Deployment Team Workflow Deploy Can run own workflows Can have own build and ship quality gates hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg hg Pre-Prod Can have own branching strategy Development
  • 17. Proven Practises Alignment? Branching Plan your branching Own the merge Look after branches Repo Don’t break the build Separate your repo Don’t forget to shelve Use labels Tech Try concurrent access Don’t be afraid of branching concepts Auto merge for checkout only Management Don’t use the audit trail for blame Useful & meaningful check in messages You Be light and quick with checkouts Keep up to date Don’t check in unneeded binaries Working folders should be disposable Use undo/revert sparingly
  • 18. Commands (51) Add, AddRemove, Remove [rm] Annotate [Blame] Archive Backout Bisect Bookmarks Branch & Branches Bundle & Unbundle Cat Clone Commit [ci] Copy [cp] & Rename [move, mv] Diff Export & Import [patch] Forget Grep Heads Help Identify [id] Incoming [in] & Outgoing [out] Init Locate Log [history] Manifest Merge & Resolve Parents Path Pull & Push Recover Revert Rollback Root Serve ShowConfig [debugconfig] Status [st] Summary [sum] Tag & Tags Tip Update [up, checkout, co] Verify Version
  • 20. Other DVCS Options Git Linus Torvalds Linux Kernal Requires packing maintenance Unfriendly version numbers FAST Linux & Mac Different patching ideology No working set issue Can delete branches Bazaar Canonicial Ubuntu Slow Closer to SVN Monotone, Darcs, Plastic, SVK, Codeville, GNU arch, Bitkeeper