SlideShare a Scribd company logo
1 of 18
Hosam Aly, JDC 2012
Introduction to Mercurial (Hg)
 Distributed Version
Control System
 Practical demo
 Under the hood
(if time permits)
Friday, March 09, 2012 1Hosam Aly, JDC 2012
Centralized Version Control
Friday, March 09, 2012 2Hosam Aly, JDC 2012
Centralized Version Control
 When you check new code in,
everybody else gets it.
 You can check in buggy code and drive
everyone else crazy, or...
 You can avoid checking it in until it’s fully
debugged, even if it takes weeks.
 You lose the benefit
of version control!
Friday, March 09, 2012 3Hosam Aly, JDC 2012
Centralized Version Control
 Different Versions / New Features:
Branch and Merge
 But SVN has a bad merging reputation!
 From the SVN Book v1.6 (§4.4.11):
The bottom line is that Subversion's merge-
tracking feature has an extremely complex
internal implementation. Because the
feature is relatively new, a numbers of edge
cases and possible unexpected behaviors
may pop up.
Friday, March 09, 2012 4Hosam Aly, JDC 2012
Distributed Version Control
Friday, March 09, 2012 5Hosam Aly, JDC 2012
Practical Demo
Friday, March 09, 2012 6Hosam Aly, JDC 2012
Mercurial Commands
 Init
 Clone
 Commit
 Push
 Pull
 Update
 Revert
 Rollback
Friday, March 09, 2012 7Hosam Aly, JDC 2012
Mercurial Advantages
 Locally accessible repository
 History information available all the time
 Fast operations using local data
 Backup on every machine!
 Easy branching and merging
 Branches can be named or unnamed
 Using changesets makes merging painless
 Encourages quick, throw-away prototyping
 Guarantees data integrity
Friday, March 09, 2012 8Hosam Aly, JDC 2012
Mercurial Advantages (2)
 Very easy sharing, even without a
server!
 Safety of user’s changes when updating
 Sane history management
 Ability to recover from unpublished mistakes
 Ability to revert (backout) an old changeset
 Cross-platform first-class tool support
 With plugins for many IDEs
Friday, March 09, 2012 9Hosam Aly, JDC 2012
Mercurial Advantages (3)
 Efficient management of tiered repositories
Friday, March 09, 2012 10Hosam Aly, JDC 2012
Similar Tools
Friday, March 09, 2012 11Hosam Aly, JDC 2012
Bazaar
Usability vs. Power
Friday, March 09, 2012 Hosam Aly, JDC 2012 12
Martin Fowler
Version Control Tools
17 Feb 2010
Mercurial Adoption
Friday, March 09, 2012 13Hosam Aly, JDC 2012
Questions and Answers
Friday, March 09, 2012 14Hosam Aly, JDC 2012
Resources
 Official Mercurial Wiki
http://mercurial.selenic.com/wiki/
 HgInit, Joel Spolsky’s tutorial
http://hginit.com
 Martin Geisler’s Presentations
http://cdn.bitbucket.org/mg/mercurial-talk/downloads/ibm-
2010-09-16.pdf
 Mercurial: The Definitive Guide book
http://hgbook.red-bean.com/
 More Presentations and Publications
http://mercurial.selenic.com/wiki/Presentations
 Source Control Made Easy, an excellent podcast about
DVCS Internals by Jim Weirich
http://pragprog.com/screencasts/v-jwsceasy/source-
control-made-easy
Friday, March 09, 2012 Hosam Aly, JDC 2012 15
Acknowledgement
 Most of the materials presented in this
presentation were aided by existing
content from Joel Spolsky, Martin
Geisler and Jim Weirich. I owe much of
my knowledge about Mercurial and
DVCS to them. If it weren’t for their
publicly available content, this
presentation would have been much
less useful. Many thanks.
Friday, March 09, 2012 Hosam Aly, JDC 2012 16
hosamaly@acm.org
Friday, March 09, 2012 17Hosam Aly, JDC 2012

More Related Content

Similar to Mercurial DVCS

Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Wardmfrancis
 
CodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as codeCodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as codeCodecamp Romania
 
Simple test drupal7_presentation_la_drupal_jul21-2010
Simple test drupal7_presentation_la_drupal_jul21-2010Simple test drupal7_presentation_la_drupal_jul21-2010
Simple test drupal7_presentation_la_drupal_jul21-2010Miguel Hernandez
 
OAE Developer Bootcamp
OAE Developer BootcampOAE Developer Bootcamp
OAE Developer BootcampBert Pareyn
 
Ogma_Web Services Testing
Ogma_Web Services TestingOgma_Web Services Testing
Ogma_Web Services TestingYana Altunyan
 
Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyermfrancis
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software designTech_MX
 
Comparison Of Open Source App Servers
Comparison Of Open Source App ServersComparison Of Open Source App Servers
Comparison Of Open Source App ServersRogue Wave Software
 
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2Jeffrey Breen
 
Who Pulls the Strings?
Who Pulls the Strings?Who Pulls the Strings?
Who Pulls the Strings?Ronny Trommer
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for JenkinsLarry Cai
 
Waza keynote: Idea to Delivery
Waza keynote: Idea to DeliveryWaza keynote: Idea to Delivery
Waza keynote: Idea to DeliveryAdam Wiggins
 
Web Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsAndy Davies
 
12c weblogic installation steps for Windows
12c weblogic installation steps for Windows12c weblogic installation steps for Windows
12c weblogic installation steps for WindowsCognizant
 
Weblogic 12c Graphical Mode installation steps in Windows
Weblogic 12c Graphical Mode installation steps in Windows Weblogic 12c Graphical Mode installation steps in Windows
Weblogic 12c Graphical Mode installation steps in Windows webservicesm
 
Data in the Azure Cloud, by Julie Lerman
Data in the Azure Cloud, by Julie LermanData in the Azure Cloud, by Julie Lerman
Data in the Azure Cloud, by Julie LermanJulie Lerman
 
PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSRyan Stewart
 
Sqlsat154 maintain your dbs with help from ola hallengren
Sqlsat154 maintain your dbs with help from ola hallengrenSqlsat154 maintain your dbs with help from ola hallengren
Sqlsat154 maintain your dbs with help from ola hallengrenAndy Galbraith
 
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)pycontw
 

Similar to Mercurial DVCS (20)

Best Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim WardBest Practices for (Enterprise) OSGi applications - Tim Ward
Best Practices for (Enterprise) OSGi applications - Tim Ward
 
CodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as codeCodeCamp Iasi 10 march 2012 - Infrastructure as code
CodeCamp Iasi 10 march 2012 - Infrastructure as code
 
Simple test drupal7_presentation_la_drupal_jul21-2010
Simple test drupal7_presentation_la_drupal_jul21-2010Simple test drupal7_presentation_la_drupal_jul21-2010
Simple test drupal7_presentation_la_drupal_jul21-2010
 
OAE Developer Bootcamp
OAE Developer BootcampOAE Developer Bootcamp
OAE Developer Bootcamp
 
Ogma_Web Services Testing
Ogma_Web Services TestingOgma_Web Services Testing
Ogma_Web Services Testing
 
Using OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan RellermeyerUsing OSGi as a Cloud Platform - Jan Rellermeyer
Using OSGi as a Cloud Platform - Jan Rellermeyer
 
Software engineering principles in system software design
Software engineering principles in system software designSoftware engineering principles in system software design
Software engineering principles in system software design
 
Comparison Of Open Source App Servers
Comparison Of Open Source App ServersComparison Of Open Source App Servers
Comparison Of Open Source App Servers
 
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
Big Data Step-by-Step: Infrastructure 2/3: Running R and RStudio on EC2
 
Who Pulls the Strings?
Who Pulls the Strings?Who Pulls the Strings?
Who Pulls the Strings?
 
Sightly_techInsight
Sightly_techInsightSightly_techInsight
Sightly_techInsight
 
Learn jobDSL for Jenkins
Learn jobDSL for JenkinsLearn jobDSL for Jenkins
Learn jobDSL for Jenkins
 
Waza keynote: Idea to Delivery
Waza keynote: Idea to DeliveryWaza keynote: Idea to Delivery
Waza keynote: Idea to Delivery
 
Web Page Test - Beyond the Basics
Web Page Test - Beyond the BasicsWeb Page Test - Beyond the Basics
Web Page Test - Beyond the Basics
 
12c weblogic installation steps for Windows
12c weblogic installation steps for Windows12c weblogic installation steps for Windows
12c weblogic installation steps for Windows
 
Weblogic 12c Graphical Mode installation steps in Windows
Weblogic 12c Graphical Mode installation steps in Windows Weblogic 12c Graphical Mode installation steps in Windows
Weblogic 12c Graphical Mode installation steps in Windows
 
Data in the Azure Cloud, by Julie Lerman
Data in the Azure Cloud, by Julie LermanData in the Azure Cloud, by Julie Lerman
Data in the Azure Cloud, by Julie Lerman
 
PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
 
Sqlsat154 maintain your dbs with help from ola hallengren
Sqlsat154 maintain your dbs with help from ola hallengrenSqlsat154 maintain your dbs with help from ola hallengren
Sqlsat154 maintain your dbs with help from ola hallengren
 
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
STAF 在自動化測試上的延伸應用 -- TMSTAF (TrendMicro STAF)
 

More from Hosam Aly

Running a simple Scala app in AWS Lambda (demo)
Running a simple Scala app in AWS Lambda (demo)Running a simple Scala app in AWS Lambda (demo)
Running a simple Scala app in AWS Lambda (demo)Hosam Aly
 
القيادة: فن ومهارة (Leadership: an art and a skill)
القيادة: فن ومهارة (Leadership: an art and a skill)القيادة: فن ومهارة (Leadership: an art and a skill)
القيادة: فن ومهارة (Leadership: an art and a skill)Hosam Aly
 
Hard questions
Hard questionsHard questions
Hard questionsHosam Aly
 
Dev Team Process
Dev Team ProcessDev Team Process
Dev Team ProcessHosam Aly
 
Quick dive into Ruby on Rails
Quick dive into Ruby on RailsQuick dive into Ruby on Rails
Quick dive into Ruby on RailsHosam Aly
 
6 Programming Languages under investigation
6 Programming Languages under investigation6 Programming Languages under investigation
6 Programming Languages under investigationHosam Aly
 

More from Hosam Aly (6)

Running a simple Scala app in AWS Lambda (demo)
Running a simple Scala app in AWS Lambda (demo)Running a simple Scala app in AWS Lambda (demo)
Running a simple Scala app in AWS Lambda (demo)
 
القيادة: فن ومهارة (Leadership: an art and a skill)
القيادة: فن ومهارة (Leadership: an art and a skill)القيادة: فن ومهارة (Leadership: an art and a skill)
القيادة: فن ومهارة (Leadership: an art and a skill)
 
Hard questions
Hard questionsHard questions
Hard questions
 
Dev Team Process
Dev Team ProcessDev Team Process
Dev Team Process
 
Quick dive into Ruby on Rails
Quick dive into Ruby on RailsQuick dive into Ruby on Rails
Quick dive into Ruby on Rails
 
6 Programming Languages under investigation
6 Programming Languages under investigation6 Programming Languages under investigation
6 Programming Languages under investigation
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

Mercurial DVCS

  • 2. Introduction to Mercurial (Hg)  Distributed Version Control System  Practical demo  Under the hood (if time permits) Friday, March 09, 2012 1Hosam Aly, JDC 2012
  • 3. Centralized Version Control Friday, March 09, 2012 2Hosam Aly, JDC 2012
  • 4. Centralized Version Control  When you check new code in, everybody else gets it.  You can check in buggy code and drive everyone else crazy, or...  You can avoid checking it in until it’s fully debugged, even if it takes weeks.  You lose the benefit of version control! Friday, March 09, 2012 3Hosam Aly, JDC 2012
  • 5. Centralized Version Control  Different Versions / New Features: Branch and Merge  But SVN has a bad merging reputation!  From the SVN Book v1.6 (§4.4.11): The bottom line is that Subversion's merge- tracking feature has an extremely complex internal implementation. Because the feature is relatively new, a numbers of edge cases and possible unexpected behaviors may pop up. Friday, March 09, 2012 4Hosam Aly, JDC 2012
  • 6. Distributed Version Control Friday, March 09, 2012 5Hosam Aly, JDC 2012
  • 7. Practical Demo Friday, March 09, 2012 6Hosam Aly, JDC 2012
  • 8. Mercurial Commands  Init  Clone  Commit  Push  Pull  Update  Revert  Rollback Friday, March 09, 2012 7Hosam Aly, JDC 2012
  • 9. Mercurial Advantages  Locally accessible repository  History information available all the time  Fast operations using local data  Backup on every machine!  Easy branching and merging  Branches can be named or unnamed  Using changesets makes merging painless  Encourages quick, throw-away prototyping  Guarantees data integrity Friday, March 09, 2012 8Hosam Aly, JDC 2012
  • 10. Mercurial Advantages (2)  Very easy sharing, even without a server!  Safety of user’s changes when updating  Sane history management  Ability to recover from unpublished mistakes  Ability to revert (backout) an old changeset  Cross-platform first-class tool support  With plugins for many IDEs Friday, March 09, 2012 9Hosam Aly, JDC 2012
  • 11. Mercurial Advantages (3)  Efficient management of tiered repositories Friday, March 09, 2012 10Hosam Aly, JDC 2012
  • 12. Similar Tools Friday, March 09, 2012 11Hosam Aly, JDC 2012 Bazaar
  • 13. Usability vs. Power Friday, March 09, 2012 Hosam Aly, JDC 2012 12 Martin Fowler Version Control Tools 17 Feb 2010
  • 14. Mercurial Adoption Friday, March 09, 2012 13Hosam Aly, JDC 2012
  • 15. Questions and Answers Friday, March 09, 2012 14Hosam Aly, JDC 2012
  • 16. Resources  Official Mercurial Wiki http://mercurial.selenic.com/wiki/  HgInit, Joel Spolsky’s tutorial http://hginit.com  Martin Geisler’s Presentations http://cdn.bitbucket.org/mg/mercurial-talk/downloads/ibm- 2010-09-16.pdf  Mercurial: The Definitive Guide book http://hgbook.red-bean.com/  More Presentations and Publications http://mercurial.selenic.com/wiki/Presentations  Source Control Made Easy, an excellent podcast about DVCS Internals by Jim Weirich http://pragprog.com/screencasts/v-jwsceasy/source- control-made-easy Friday, March 09, 2012 Hosam Aly, JDC 2012 15
  • 17. Acknowledgement  Most of the materials presented in this presentation were aided by existing content from Joel Spolsky, Martin Geisler and Jim Weirich. I owe much of my knowledge about Mercurial and DVCS to them. If it weren’t for their publicly available content, this presentation would have been much less useful. Many thanks. Friday, March 09, 2012 Hosam Aly, JDC 2012 16
  • 18. hosamaly@acm.org Friday, March 09, 2012 17Hosam Aly, JDC 2012

Editor's Notes

  1. Quote taken from the book Version Control with Subversion for Subversion 1.6, Chapter 4, Section 4.4.11: The Final Word on Merge Tracking http://svnbook.red-bean.com/en/1.6/svn.branchmerge.advanced.html#svn.branchmerge.advanced.finalword
  2. Martin Fowler, Version Control Tools, 17 Feb 2010 http://martinfowler.com/bliki/VersionControlTools.html
  3. http://mercurial.selenic.com/wiki/ProjectsUsingMercurial