SlideShare a Scribd company logo
1 of 24
Download to read offline
Distribuert versjonskontroll med Mercurial
 Systemutviklingskollokvium 2009-06-03
            Morten Brekkevold
Sentralisert versjonskontroll


                        sentralt
                       repository     2

     bruker
       A




              bruker
                B
                             bruker
                               C
Sentralisert versjonskontroll

   Krever online aksess til repo
   Krever skrivetilgang til sentralt repo for   3
    å lage nye grener
   Et subsett av distribuert
    versjonskontroll
Distribuert versjonskontroll

                          evt.
                        offentlig
      bruker
                         repo                4
        A




               bruker
                 B
                                    bruker
                                      C
Distribuert versjonskontroll

   Stor grad av fleksibilitet i
    (sam)arbeidsform
                                             5
   Trenger ikke et sentralt repo
   Ingen trenger skrivetilgang for å lage
    egne grener
   Kan brukes offline
Hvem bruker Mercurial?

   Mozilla
   OpenJDK                     6

   Xen hypervisor
   Dovecot
   NAV
   ... en haug med andre ...
   Og snart: Python
Et repository

   Arbeidskopi og historikk i ett
                                     7
Committe endringer


                     8
Historikk

   Revisions, Changesets, Heads, og Tip
                                           9
Revisjoner

   Løpenummer internt i hvert repo
   Globalt unik 40-tegns ID, et SHA-1   10
    hash av:
     Foreldrerevisjonenes ID-er
     Innholdsteksten

   Gir en viss sikkerhet mot uønsket
    tukling med repositories
Kloning


          11
Endringer


            12
Synkronisering

   Pull fra Eva
                   13
Synkronisering

   Bob: Merge
                  14




   Bob: Commit
Synkronisering


   Alice: Pull     15




   Alice: Update
Deling av endringer

   Direkte: Pull/push
     Lokalt filsystem
                         16
     SSH

     HTTP

     hg serve

   Indirekte
       Bundles
NAV og Mercurial

   Et sett med “offisielle” grener publisert
    på web
                                                17
   UNINETT-interne har push-aksess til
    flere grener
   Eksterne sluses gjennom release
    manager (f.eks. UiTø)
Feilretting
 utvikler
    A

                              Offisielle repos
                                                  18
    utvikler                      (HTTP)
       B
                                  default
                                  (trunk)
        utvikler
           C
                             features/ipdevpoll


                                series/3.5.x
                   release
                   manager
Ny funksjonalitet
 utvikler
    A

                              Offisielle repos
                                                  19
    utvikler                      (HTTP)
       B
                                  default
                                  (trunk)
        utvikler
           C
                             features/ipdevpoll


                                series/3.5.x
                   release
                   manager
Ny point-release
 utvikler
    A

                              Offisielle repos
                                                  20
    utvikler                      (HTTP)
       B
                                  default
                                  (trunk)
        utvikler
           C
                             features/ipdevpoll


                                series/3.5.x
                   release
                   manager

                                series/3.6.x
Changesett
mvold@voldsminde:default$ hg log ­r d84191af79be
changeset:   5515:d84191af79be
branch:      3.5.x
user:        Morten Brekkevold <morten.brekkevold@uninett.no>
date:        Fri Apr 24 14:30:25 2009 +0200
summary:     Fix for LP#366032 (Service availability shown as N/A, should be 100%)
                                                                                     21
mvold@voldsminde:default$ hg log ­v ­r d84191af79be
changeset:   5515:d84191af79be
branch:      3.5.x
user:        Morten Brekkevold <morten.brekkevold@uninett.no>
date:        Fri Apr 24 14:30:25 2009 +0200
files:       subsystem/lib­python/nav/models/service.py
description:
Fix for LP#366032 (Service availability shown as N/A, should be 100%)

Mostly a copy of changeset afc648a0efb5.

* subsystem/lib­python/nav/models/service.py
  (Service.get_availability.average): Make sure rrd.average returns
  None values on failure or NaN results.
  (Service.get_availability): Don't modify result of average
  calculations, as 0 is a valid return value.
Changesett - detaljer
mvold@voldsminde:default$ hg log ­­debug ­r d84191af79be
changeset:   5515:d84191af79be89b6903263fd561ac3bca31ce796
branch:      3.5.x
parent:      5514:b1c28a8480ac72909c6ca4ffc7bedc5ea6a87377
parent:      ­1:0000000000000000000000000000000000000000
manifest:    5515:65a6d1689dbe8a074ab81583b79ea31732f5e08e
user:        Morten Brekkevold <morten.brekkevold@uninett.no>           22
date:        Fri Apr 24 14:30:25 2009 +0200
files:       subsystem/lib­python/nav/models/service.py
extra:       branch=3.5.x
description:
Fix for LP#366032 (Service availability shown as N/A, should be 100%)

Mostly a copy of changeset afc648a0efb5.

* subsystem/lib­python/nav/models/service.py
  (Service.get_availability.average): Make sure rrd.average returns
  None values on failure or NaN results.
  (Service.get_availability): Don't modify result of average
  calculations, as 0 is a valid return value.
Mercurial Queues (MQ)

   Basert på quilt
   Smelter sammen versjonskontroll og   23
    håndtering av patcher
   Påførte patcher ser ut som vanlige
    changesett
   Muliggjør lokal manipulering av
    historikk
Referanser

   http://www.selenic.com/mercurial
   http://hgbook.red-bean.com/        24


   http://metanav.uninett.no/hg

More Related Content

Viewers also liked

Viewers also liked (19)

Advocacy
AdvocacyAdvocacy
Advocacy
 
Presentacionguerracivil
PresentacionguerracivilPresentacionguerracivil
Presentacionguerracivil
 
參考資料
參考資料參考資料
參考資料
 
Silabo de software turistico I
Silabo de software turistico ISilabo de software turistico I
Silabo de software turistico I
 
Turismo
TurismoTurismo
Turismo
 
C:\documents and settings\usuario\escritorio\respaldo carlyla ramos 18 4-10\m...
C:\documents and settings\usuario\escritorio\respaldo carlyla ramos 18 4-10\m...C:\documents and settings\usuario\escritorio\respaldo carlyla ramos 18 4-10\m...
C:\documents and settings\usuario\escritorio\respaldo carlyla ramos 18 4-10\m...
 
ddd
dddddd
ddd
 
Patrimonio Digital - Servicos e Solucoes
Patrimonio Digital -  Servicos e Solucoes Patrimonio Digital -  Servicos e Solucoes
Patrimonio Digital - Servicos e Solucoes
 
Manual vinculacion
Manual vinculacionManual vinculacion
Manual vinculacion
 
Oralls - Catalogo de Produtos
Oralls - Catalogo de Produtos Oralls - Catalogo de Produtos
Oralls - Catalogo de Produtos
 
Foro de discucion
Foro de discucionForo de discucion
Foro de discucion
 
Proyecto Tic en un centro educativo
Proyecto Tic en un centro educativoProyecto Tic en un centro educativo
Proyecto Tic en un centro educativo
 
Atualidades em africanidades
Atualidades em africanidadesAtualidades em africanidades
Atualidades em africanidades
 
Primera solemne tics[2][1]
Primera solemne tics[2][1]Primera solemne tics[2][1]
Primera solemne tics[2][1]
 
Nuevas tecnologías
Nuevas tecnologíasNuevas tecnologías
Nuevas tecnologías
 
El amarillo
El amarilloEl amarillo
El amarillo
 
Homer simpson
Homer simpsonHomer simpson
Homer simpson
 
Edu digital
Edu digitalEdu digital
Edu digital
 
Video News Network
Video News NetworkVideo News Network
Video News Network
 

Distribuert versjonskontroll med Mercurial