SlideShare a Scribd company logo
The issue
                   Solutions
            Basic operation
      Implementation Details
                    Use case




Team Developpement With Mercurial




                   April 29, 2011




                               Team Developpement With Mercurial
The issue
                               Solutions
                        Basic operation
                  Implementation Details
                                Use case


Past vs present




            Past: immutable = liquid
         Present: mutable = frozen
         History: Past + present
                                           Team Developpement With Mercurial
The issue
                                Solutions
                         Basic operation
                   Implementation Details
                                 Use case


Why clean history:

  easy to read
      Review process
      hg annotate
  easy to process
      hg bisect
      hg annote
      Continuous Integration tools

  Changeset
     From valid state to valid state.
     Atomic
     As small as possible
                                            Team Developpement With Mercurial
The issue
                                   Solutions
                            Basic operation
                      Implementation Details
                                    Use case


clean history

  Errare humanum est won’t make it right.
      Iterative
      Collaborative
      Multiple task in Parallel
  tool: Version control System (distributed)




                                               Team Developpement With Mercurial
The issue
                                    Solutions
                             Basic operation
                       Implementation Details
                                     Use case


Partial Solutions exist

  rebase and histedit
       limited
       hard to share
       hard get older version
  mq
       overlay: (unknown by core and extension)
       limited: (queue only)
       fragile: (no transaction, reject, .hg/patches consistency)
       break rules: (truncate revlog)




                                                Team Developpement With Mercurial
The issue
                                  Solutions
                           Basic operation
                     Implementation Details
                                   Use case


The full solution

       DVCS trace changes to set of files,
       Must trace changes to changesets.
  A is updated as A’




                                                  A
                                                      Aʼ
  A and B are merged as C
                                              A


                                                      B
                                                          A+B




  Need to snapshot the whole set of files, but there is no such thing
  as a consistent state for the set of heads of a tree.
       Changeset are distinct from each other
                                       Team Developpement With Mercurial
The issue
                                   Solutions
                            Basic operation
                      Implementation Details
                                    Use case


Insert
         characters: abc -> aXbc
              lines: abc    abc
                     ghi -> def
                            ghi
           CHunks: adding a chunk to a changeset
         changeset:          o C
                      o C    |
                      |      o B
                      o B    |
                      |   -> o D
                      o A    |
                      |      o A
                      -      |
                             -
                                               Team Developpement With Mercurial
The issue
                                Solutions
                         Basic operation
                   Implementation Details
                                 Use case


Delete
         characters: abc -> ac
              lines: abc    abc
                     def -> ghi
                     ghi
           CHunks: remove chunk from a changeset
         changeset: o C
                    |              o C
                    o B            |
                    |   ->         o A
                    o A            |
                    |              -
                    -


                                            Team Developpement With Mercurial
The issue
                                Solutions
                         Basic operation
                   Implementation Details
                                 Use case


Modify
         characters: abc -> adc
              lines: abc    abc
                     def -> jkl
                     ghi    ghi
           CHunks: modify a chunk in a changeset
         changeset: o C
                    |              o C
                    o B            |
                    |   ->         o A
                    o A            |
                    |              -
                    -


                                            Team Developpement With Mercurial
The issue
                                 Solutions
                          Basic operation
                    Implementation Details
                                  Use case


Copy
       characters: abc -> abac
            lines: abc    abc
                   def -> def
                          abc
                   ghi    ghi
         CHunks: N/A
       changeset:                      o     cherry pick of C
                                       |
                    o   C            o |     C
                    |                | |
                    | o B            | o     B
                    | |           -> | |
                    o | A            o |     A
                    |/               |/
                                             Team Developpement With Mercurial
The issue
                              Solutions
                       Basic operation
                 Implementation Details
                               Use case


Move
       characters: abc -> bac
            lines: abc    def
                   def -> abc
                   ghi    ghi
         CHunks: N/A
       changeset: o C            o C
                  |              |
                  o B            o A
                  |   ->         |
                  o A            o B
                  |              |
                  -              -


                                          Team Developpement With Mercurial
The issue
                              Solutions
                       Basic operation
                 Implementation Details
                               Use case


Join
       characters: N/A
            lines: abcn       ->         abcdefn
                   defn                  ghin
                   ghin
         CHunks: N/A
       changeset: o C
                  |              o C
                  o B            |
                  |   ->         o A+B
                  o A            |
                  |              -
                  -


                                            Team Developpement With Mercurial
The issue
                                  Solutions
                           Basic operation
                     Implementation Details
                                   Use case


Split
        characters: N/A
             lines: abcdefn             ->     abcn
                    ghin                       defn
                                                ghin
          CHunks: N/A
        changeset:                            o C
                     o C                      |
                     |                        o B
                     o A+B         ->         |
                     |                        o A
                     -                        |
                                              -


                                                Team Developpement With Mercurial
The issue
                             Solutions
                      Basic operation
                Implementation Details
                              Use case


Move Boundary
      characters: N/A
           lines: abcn       ->         abcdn
                  defn                  efn
                  ghin                  ghin
        CHunks: N/A
      changeset: o C                     o B+C
                 |                       |
                 o A+B        ->         o A
                 |                       |
                 -                       -




                                           Team Developpement With Mercurial
The issue
                             Solutions
                      Basic operation
                Implementation Details
                              Use case


sum up

     Insert
     Delete
     Modify
     Copy
     Move


     Join
     Split
     Move Boundary



                                         Team Developpement With Mercurial
The issue
                                Solutions
                         Basic operation
                   Implementation Details
                                 Use case


Proposed solution

      create new changeset as usual,
      New type of relation between changeset
          update
          delete
          split
          merge
          (copy)


  We can detect
      obsolete changeset
      conflicting changeset
      Out of sync changeset

                                            Team Developpement With Mercurial
The issue
                                     Solutions
                              Basic operation
                        Implementation Details
                                      Use case


Core change

  It’s Necessary to :
       Alter existing command to hide obsolete changeset,
       Add new command to recognise//solve out-of-sync and
       conflicting changeset,
  It’s recommended to have:
       Light weight changeset,
       Garbage collection.




                                                 Team Developpement With Mercurial
The issue
                               Solutions
                        Basic operation
                  Implementation Details
                                Use case


Extensions change

     Do not alter Frozen changeset
     Add relevant link on edit
     Define hooks to update they internal state




                                           Team Developpement With Mercurial
The issue
                                Solutions
                         Basic operation
                   Implementation Details
                                 Use case


Simple iterative work


                                                                             D


                                                             C    Cʼ       Cʼʼ   E

                                                       D
                                                            B     Bʼ       Aʼ

         C     C      Cʼ             C      Cʼ     Cʼʼ
                                                            A          Bʼʼ

         B     B      Bʼ             B      Bʼ     Aʼ


         A     A                    A                                  ΩB
                                                 Bʼʼ




                                                 Team Developpement With Mercurial
The issue
                             Solutions
                      Basic operation
                Implementation Details
                              Use case


Feature that need a bug fix

                         F


                         B    Bʼ



            F


            B




                         F     Fʼ        F    Fʼ        F   Fʼ   Fʼʼ


                         B               B    Bʼ        B   Bʼ




                                         Team Developpement With Mercurial
The issue
                             Solutions
                      Basic operation
                Implementation Details
                              Use case


Multiple people working on the same thing

                           Aʼ
                      A




                                                                     Aʼʼ
            A                            Aʼʼ         Aʼ
                                                A              Aʼʼ         Aʼ
                                                                     A



                    Aʼʼ
                          A




                                               Team Developpement With Mercurial
The issue
                               Solutions
                        Basic operation
                  Implementation Details
                                Use case


People have works base on unwanted changeset

                             B


                             A




              A




                                             B
                             A                              A    Bʼ
                                             A




                                           Team Developpement With Mercurial

More Related Content

PDF
Correlation of simulation_models_using_concept_modeling
ODP
Cg2012 niet-geanimeerd
DOC
proposal
PDF
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1
PDF
GeForce 8800 OpenGL Extensions
PPTX
Modularization of Legacy Features by Relocation and Reconceptualization: How ...
PDF
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
PDF
EMF-IncQuery: Incremental evaluation of model queries over EMF models
Correlation of simulation_models_using_concept_modeling
Cg2012 niet-geanimeerd
proposal
SSTC-2012 BenKBovée 2933a_Backup Slides 26-Apr 1130-1300 Track1
GeForce 8800 OpenGL Extensions
Modularization of Legacy Features by Relocation and Reconceptualization: How ...
Rapid Software Communications Architecture (SCA) Development for DSPs with Sp...
EMF-IncQuery: Incremental evaluation of model queries over EMF models

Viewers also liked (20)

PPTX
GUSOM SL Team Leader Orientation
PDF
Creating a business plan
PDF
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
PDF
Business systemisation - brief overview
PDF
Managing working capital
PDF
Employee engagement
PDF
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
PPTX
Photography Effects - .Plàstica
ODP
Functions & Closures in Scala
PPT
Photography Effects
PDF
Open Legislative Data Conference 2014
PDF
Euroscipy SemNews 2011
PDF
Marketing - pricing
PDF
Migration of a computation cluster to Debian
PDF
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
PDF
Key performance indicators
PDF
Planning for success
PDF
Managing your sales pipeline
PDF
Présentation Logilab
PDF
Team Orientation Process
GUSOM SL Team Leader Orientation
Creating a business plan
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Business systemisation - brief overview
Managing working capital
Employee engagement
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Photography Effects - .Plàstica
Functions & Closures in Scala
Photography Effects
Open Legislative Data Conference 2014
Euroscipy SemNews 2011
Marketing - pricing
Migration of a computation cluster to Debian
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
Key performance indicators
Planning for success
Managing your sales pipeline
Présentation Logilab
Team Orientation Process
Ad

Similar to Team Developpement with Mercurial - april 2011 (20)

PPTX
Peephole Optimization
PPTX
Openstack in action2! Automate and accelerate Cloud deployments with Dell Cro...
PDF
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
PPTX
Peephole Optimization
PPTX
Dell web monsters-oct2011-v6-public
PPT
IdealECP presentation for Novo Nordisk
PDF
Universal Declarative Services - Simon Chemouil
PDF
SUBJECT
PDF
Generator
PPTX
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
PDF
Adobe AIR - Mobile Performance – Tips & Tricks
ZIP
9X5u87KWa267pP7aGX3K
PDF
Universal Declarative Services
PPTX
DevOps як System Administration 2.0
PDF
Teams progress presenation
ODP
Object-Based Programming Part One
PDF
Introducing CQ 5.1
PPTX
2010 06-24 karlsruher entwicklertag
PPTX
Dell openstack boston meetup dell crowbar and open stack
PPTX
Intro to Kanban - AgileDayChile2011 Keynote
Peephole Optimization
Openstack in action2! Automate and accelerate Cloud deployments with Dell Cro...
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Peephole Optimization
Dell web monsters-oct2011-v6-public
IdealECP presentation for Novo Nordisk
Universal Declarative Services - Simon Chemouil
SUBJECT
Generator
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Adobe AIR - Mobile Performance – Tips & Tricks
9X5u87KWa267pP7aGX3K
Universal Declarative Services
DevOps як System Administration 2.0
Teams progress presenation
Object-Based Programming Part One
Introducing CQ 5.1
2010 06-24 karlsruher entwicklertag
Dell openstack boston meetup dell crowbar and open stack
Intro to Kanban - AgileDayChile2011 Keynote
Ad

More from Logilab (20)

PDF
Testinfra pyconfr 2017
PDF
Open Source & Open Data : les bienfaits des communs
PDF
Salon Open Data
PDF
Pydata Paris Python for manufacturing musical instruments
PDF
Système d'archivage électronique mutualisé
PDF
Utiliser salt pour tester son infrastructure sur open stack ou docker
PDF
Importer des données en Python avec CubicWeb 3.21
PDF
Simulagora au service d'un grand défi industriel
PDF
Simulagora - Salon du Bourget
PDF
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
PDF
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
PDF
Initialiser des conteneurs Docker à partir de configurations Salt construites...
PDF
Battle Opendata - Logilab - Cubicweb
PDF
Simulagora (Euroscipy2014 - Logilab)
PDF
PAFI (Euroscipy2014 - Logilab)
PDF
Pylint : 10 ans, état des lieux
PDF
Présentation sur le stand à l'OpenWorldForum 2013
PDF
Cubicweb lauréat Dataconnexions 2013
PDF
OSDC 2012 mercurial evolve talk
PDF
Historique évolutif avec Mercurial - Pyconfr 2012
Testinfra pyconfr 2017
Open Source & Open Data : les bienfaits des communs
Salon Open Data
Pydata Paris Python for manufacturing musical instruments
Système d'archivage électronique mutualisé
Utiliser salt pour tester son infrastructure sur open stack ou docker
Importer des données en Python avec CubicWeb 3.21
Simulagora au service d'un grand défi industriel
Simulagora - Salon du Bourget
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
Initialiser des conteneurs Docker à partir de configurations Salt construites...
Battle Opendata - Logilab - Cubicweb
Simulagora (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)
Pylint : 10 ans, état des lieux
Présentation sur le stand à l'OpenWorldForum 2013
Cubicweb lauréat Dataconnexions 2013
OSDC 2012 mercurial evolve talk
Historique évolutif avec Mercurial - Pyconfr 2012

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
cuic standard and advanced reporting.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Empathic Computing: Creating Shared Understanding
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Spectroscopy.pptx food analysis technology
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
cuic standard and advanced reporting.pdf
Understanding_Digital_Forensics_Presentation.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Unlocking AI with Model Context Protocol (MCP)
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Advanced methodologies resolving dimensionality complications for autism neur...
Empathic Computing: Creating Shared Understanding
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Digital-Transformation-Roadmap-for-Companies.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
20250228 LYD VKU AI Blended-Learning.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
The AUB Centre for AI in Media Proposal.docx
Spectroscopy.pptx food analysis technology

Team Developpement with Mercurial - april 2011

  • 1. The issue Solutions Basic operation Implementation Details Use case Team Developpement With Mercurial April 29, 2011 Team Developpement With Mercurial
  • 2. The issue Solutions Basic operation Implementation Details Use case Past vs present Past: immutable = liquid Present: mutable = frozen History: Past + present Team Developpement With Mercurial
  • 3. The issue Solutions Basic operation Implementation Details Use case Why clean history: easy to read Review process hg annotate easy to process hg bisect hg annote Continuous Integration tools Changeset From valid state to valid state. Atomic As small as possible Team Developpement With Mercurial
  • 4. The issue Solutions Basic operation Implementation Details Use case clean history Errare humanum est won’t make it right. Iterative Collaborative Multiple task in Parallel tool: Version control System (distributed) Team Developpement With Mercurial
  • 5. The issue Solutions Basic operation Implementation Details Use case Partial Solutions exist rebase and histedit limited hard to share hard get older version mq overlay: (unknown by core and extension) limited: (queue only) fragile: (no transaction, reject, .hg/patches consistency) break rules: (truncate revlog) Team Developpement With Mercurial
  • 6. The issue Solutions Basic operation Implementation Details Use case The full solution DVCS trace changes to set of files, Must trace changes to changesets. A is updated as A’ A Aʼ A and B are merged as C A B A+B Need to snapshot the whole set of files, but there is no such thing as a consistent state for the set of heads of a tree. Changeset are distinct from each other Team Developpement With Mercurial
  • 7. The issue Solutions Basic operation Implementation Details Use case Insert characters: abc -> aXbc lines: abc abc ghi -> def ghi CHunks: adding a chunk to a changeset changeset: o C o C | | o B o B | | -> o D o A | | o A - | - Team Developpement With Mercurial
  • 8. The issue Solutions Basic operation Implementation Details Use case Delete characters: abc -> ac lines: abc abc def -> ghi ghi CHunks: remove chunk from a changeset changeset: o C | o C o B | | -> o A o A | | - - Team Developpement With Mercurial
  • 9. The issue Solutions Basic operation Implementation Details Use case Modify characters: abc -> adc lines: abc abc def -> jkl ghi ghi CHunks: modify a chunk in a changeset changeset: o C | o C o B | | -> o A o A | | - - Team Developpement With Mercurial
  • 10. The issue Solutions Basic operation Implementation Details Use case Copy characters: abc -> abac lines: abc abc def -> def abc ghi ghi CHunks: N/A changeset: o cherry pick of C | o C o | C | | | | o B | o B | | -> | | o | A o | A |/ |/ Team Developpement With Mercurial
  • 11. The issue Solutions Basic operation Implementation Details Use case Move characters: abc -> bac lines: abc def def -> abc ghi ghi CHunks: N/A changeset: o C o C | | o B o A | -> | o A o B | | - - Team Developpement With Mercurial
  • 12. The issue Solutions Basic operation Implementation Details Use case Join characters: N/A lines: abcn -> abcdefn defn ghin ghin CHunks: N/A changeset: o C | o C o B | | -> o A+B o A | | - - Team Developpement With Mercurial
  • 13. The issue Solutions Basic operation Implementation Details Use case Split characters: N/A lines: abcdefn -> abcn ghin defn ghin CHunks: N/A changeset: o C o C | | o B o A+B -> | | o A - | - Team Developpement With Mercurial
  • 14. The issue Solutions Basic operation Implementation Details Use case Move Boundary characters: N/A lines: abcn -> abcdn defn efn ghin ghin CHunks: N/A changeset: o C o B+C | | o A+B -> o A | | - - Team Developpement With Mercurial
  • 15. The issue Solutions Basic operation Implementation Details Use case sum up Insert Delete Modify Copy Move Join Split Move Boundary Team Developpement With Mercurial
  • 16. The issue Solutions Basic operation Implementation Details Use case Proposed solution create new changeset as usual, New type of relation between changeset update delete split merge (copy) We can detect obsolete changeset conflicting changeset Out of sync changeset Team Developpement With Mercurial
  • 17. The issue Solutions Basic operation Implementation Details Use case Core change It’s Necessary to : Alter existing command to hide obsolete changeset, Add new command to recognise//solve out-of-sync and conflicting changeset, It’s recommended to have: Light weight changeset, Garbage collection. Team Developpement With Mercurial
  • 18. The issue Solutions Basic operation Implementation Details Use case Extensions change Do not alter Frozen changeset Add relevant link on edit Define hooks to update they internal state Team Developpement With Mercurial
  • 19. The issue Solutions Basic operation Implementation Details Use case Simple iterative work D C Cʼ Cʼʼ E D B Bʼ Aʼ C C Cʼ C Cʼ Cʼʼ A Bʼʼ B B Bʼ B Bʼ Aʼ A A A ΩB Bʼʼ Team Developpement With Mercurial
  • 20. The issue Solutions Basic operation Implementation Details Use case Feature that need a bug fix F B Bʼ F B F Fʼ F Fʼ F Fʼ Fʼʼ B B Bʼ B Bʼ Team Developpement With Mercurial
  • 21. The issue Solutions Basic operation Implementation Details Use case Multiple people working on the same thing Aʼ A Aʼʼ A Aʼʼ Aʼ A Aʼʼ Aʼ A Aʼʼ A Team Developpement With Mercurial
  • 22. The issue Solutions Basic operation Implementation Details Use case People have works base on unwanted changeset B A A B A A Bʼ A Team Developpement With Mercurial