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

Viewers also liked

GUSOM SL Team Leader Orientation
GUSOM SL Team Leader OrientationGUSOM SL Team Leader Orientation
GUSOM SL Team Leader Orientationjhl223
 
Creating a business plan
Creating a business planCreating a business plan
Creating a business plan
Nick Bettes Consulting
 
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauDebconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Logilab
 
Business systemisation - brief overview
Business systemisation - brief overviewBusiness systemisation - brief overview
Business systemisation - brief overview
Nick Bettes Consulting
 
Managing working capital
Managing working capitalManaging working capital
Managing working capital
Nick Bettes Consulting
 
Employee engagement
Employee engagementEmployee engagement
Employee engagement
Nick Bettes Consulting
 
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Interactive exploration of complex relational data sets in a web - SemWeb.Pro...
Logilab
 
Photography Effects - .Plàstica
Photography Effects - .PlàsticaPhotography Effects - .Plàstica
Photography Effects - .PlàsticaAxel Millán
 
Functions & Closures in Scala
Functions & Closures in ScalaFunctions & Closures in Scala
Functions & Closures in Scala
Neelkanth Sachdeva
 
Photography Effects
Photography EffectsPhotography Effects
Photography EffectsAxel Millán
 
Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Open Legislative Data Conference 2014
Open Legislative Data Conference 2014
Logilab
 
Euroscipy SemNews 2011
Euroscipy SemNews 2011Euroscipy SemNews 2011
Euroscipy SemNews 2011
Logilab
 
Marketing - pricing
Marketing - pricingMarketing - pricing
Marketing - pricing
Nick Bettes Consulting
 
Migration of a computation cluster to Debian
Migration of a computation cluster to DebianMigration of a computation cluster to Debian
Migration of a computation cluster to Debian
Logilab
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
Logilab
 
Key performance indicators
Key performance indicatorsKey performance indicators
Key performance indicators
Nick Bettes Consulting
 
Planning for success
Planning for successPlanning for success
Planning for success
Nick Bettes Consulting
 
Managing your sales pipeline
Managing your sales pipelineManaging your sales pipeline
Managing your sales pipeline
Nick Bettes Consulting
 
Présentation Logilab
Présentation LogilabPrésentation Logilab
Présentation Logilab
Logilab
 
Team Orientation Process
Team Orientation ProcessTeam Orientation Process
Team Orientation Process
Christopher Avery
 

Viewers also liked (20)

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

Similar to Team Developpement with Mercurial - april 2011

Peephole Optimization
Peephole OptimizationPeephole Optimization
Peephole Optimization
Meghaj Mallick
 
Openstack in action2! Automate and accelerate Cloud deployments with Dell Cro...
Openstack in action2! Automate and accelerate Cloud deployments with Dell Cro...Openstack in action2! Automate and accelerate Cloud deployments with Dell Cro...
Openstack in action2! Automate and accelerate Cloud deployments with Dell Cro...
eNovance
 
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Marko Taipale
 
Peephole Optimization
Peephole OptimizationPeephole Optimization
Peephole Optimization
United International University
 
Dell web monsters-oct2011-v6-public
Dell web monsters-oct2011-v6-publicDell web monsters-oct2011-v6-public
Dell web monsters-oct2011-v6-public
Barton George
 
IdealECP presentation for Novo Nordisk
IdealECP presentation for Novo NordiskIdealECP presentation for Novo Nordisk
IdealECP presentation for Novo Nordiskcbiddle2
 
Universal Declarative Services - Simon Chemouil
Universal Declarative Services - Simon ChemouilUniversal Declarative Services - Simon Chemouil
Universal Declarative Services - Simon Chemouil
mfrancis
 
Generator
GeneratorGenerator
Generator
Ramasubbu .P
 
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Hadoop World 2011: Proven Tools to Manage Hadoop Environments - Joey Jablonsk...
Cloudera, Inc.
 
Adobe AIR - Mobile Performance – Tips & Tricks
Adobe AIR - Mobile Performance – Tips & TricksAdobe AIR - Mobile Performance – Tips & Tricks
Adobe AIR - Mobile Performance – Tips & TricksMihai Corlan
 
Universal Declarative Services
Universal Declarative ServicesUniversal Declarative Services
Universal Declarative Services
schemouil
 
DevOps як System Administration 2.0
DevOps як System Administration 2.0DevOps як System Administration 2.0
DevOps як System Administration 2.0
SoftServe
 
Teams progress presenation
Teams progress presenationTeams progress presenation
Teams progress presenation
Oleg Seriaga
 
Object-Based Programming Part One
Object-Based Programming Part OneObject-Based Programming Part One
Object-Based Programming Part One
PingLun Liao
 
Introducing CQ 5.1
Introducing CQ 5.1Introducing CQ 5.1
Introducing CQ 5.1
David Nuescheler
 
2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertag2010 06-24 karlsruher entwicklertag
2010 06-24 karlsruher entwicklertagMarcel Bruch
 
Dell openstack boston meetup dell crowbar and open stack
Dell openstack boston meetup   dell crowbar and open stackDell openstack boston meetup   dell crowbar and open stack
Dell openstack boston meetup dell crowbar and open stackDellCloudEdge
 
Intro to Kanban - AgileDayChile2011 Keynote
Intro to Kanban - AgileDayChile2011 KeynoteIntro to Kanban - AgileDayChile2011 Keynote
Intro to Kanban - AgileDayChile2011 Keynote
ChileAgil
 

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

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

More from Logilab

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

More from Logilab (20)

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

Recently uploaded

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 

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