際際滷

際際滷Share a Scribd company logo
INTRODUZIONE A
         MERCURIAL
                      Lezione 3
          Paolo Ferretti per Deltapromo
URL corso: http://corso-deltapromo.paoloferretti.net/

            http://www.paoloferretti.net
              paolo@paoloferretti.net
MERCURIAL


 Software    distribuito per la gestione del codice

 Scritto   in Python e C

 Opensource

 Scaricabile   da http://mercurial.selenic.com/
UN PO DI STORIA


I   suoi antenati sono CVS e SVN

 Sistemi   centralizzati

 Merge     poco ef鍖ciente
PERCH MERCURIAL


 Quando     si lavora in team, spesso di lavora sullo stesso 鍖le

 Si   creano con鍖itti

 Si   introducono bug

 C竪   la necessit di versionare il codice
VANTAGGI DI MERCURIAL


 Col   codice versionato abbiamo una macchina del tempo

  possiamo    fare rollback delle modi鍖che

  abbiamo    tutta la storia delle modi鍖che di ogni 鍖le
VANTAGGI DI MERCURIAL

 Ilcodice non 竪 in un luogo centralizzato, ma 竪 distribuito su
  pi湛 macchine

 Pi湛    elasticit nella gestione dei permessi nel team di lavoro

 Il   codice 竪 facilmente copiabile/trasferibile/aggiornabile

 Il   processo di sviluppo e deploy pu嘆 essere automatizzato
PER INIZIARE

 hg   init

   crea      un repository nella cartella corrente

 de鍖nire      subito il 鍖le .hgignore

   permette       di indicare da subito i 鍖le che non devono essere
   versionati

        ad   esempio: 鍖le di progetto del nostro IDE preferito
REPOSITORY



 Ogni repository 竪 contenuto nella cartella .hg, posizionata
 nella root del progetto

 In   .hg c竪 il 鍖le hgrc con le impostazioni del repository
COMMIT


 hg   ci -m messaggio del commit

   effettua   il commit dei 鍖le modi鍖cati / aggiunti

 Ogni   commit viene registrato con un id alfanumerico unico
VERIFICA STATO

 hg   status

   veri鍖ca     lo stato dei 鍖le

        modi鍖cato

        aggiunto

        rimosso
PUSH


 hg   push

   effettua   il push dei commit locali su un repository remoto

 E unodei due step importanti per sincronizzare il proprio
 lavoro con gli altri membri del team
PULL


 hg   pull

   scarica   le modi鍖che da un repository remoto

 Loperazione in s竪 non modi鍖ca alcun 鍖le, ma si limita a
 scaricare nel repository locale le modi鍖che
UPDATE

 hg      up

    effettua   lupdate dei 鍖le dal repository locale

 In   caso di con鍖itti, va seguito da un

    hg    merge

    il   quale effettua il merge automatico dei 鍖le che con鍖iggono

 Il   plugin fetch effettua pull, update e merge automaticamente
IN CASO DI CONFLITTI

 Seci sono con鍖itti che non si possono risolvere in
 automatico, si interviene manualmente

 hg   resolve -l

   restituisce     la lista dei 鍖le che con鍖iggono

 hg   resolve -m /path/to/鍖le

   indica   a mercurial che abbiamo risolto il con鍖itto

More Related Content

What's hot (8)

CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
DotNetMarche
Agileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastruttura
XPeppers
introduzione a symfony 2
introduzione a symfony 2 introduzione a symfony 2
introduzione a symfony 2
Riccardo Franconi
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
sscalabrino
Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2
Fabio Mora
Branching & Merging strategies (with TFS)
Branching & Merging strategies (with TFS)Branching & Merging strategies (with TFS)
Branching & Merging strategies (with TFS)
Klab
CruiseControl.net in un progetto reale
CruiseControl.net in un progetto realeCruiseControl.net in un progetto reale
CruiseControl.net in un progetto reale
DotNetMarche
Agileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastrutturaAgileday2013 pratiche agili applicate all'infrastruttura
Agileday2013 pratiche agili applicate all'infrastruttura
XPeppers
introduzione a symfony 2
introduzione a symfony 2 introduzione a symfony 2
introduzione a symfony 2
Riccardo Franconi
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8[drupalday2017] - DevOps: strumenti di automazione per Drupal8
[drupalday2017] - DevOps: strumenti di automazione per Drupal8
DrupalDay
Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2Tanti "piccoli rilasci" con Symfony2
Tanti "piccoli rilasci" con Symfony2
Fabio Mora
Branching & Merging strategies (with TFS)
Branching & Merging strategies (with TFS)Branching & Merging strategies (with TFS)
Branching & Merging strategies (with TFS)
Klab

Viewers also liked (10)

Corso Python Deltapromo - Lezione 2
Corso Python Deltapromo - Lezione 2Corso Python Deltapromo - Lezione 2
Corso Python Deltapromo - Lezione 2
Paolo Ferretti
Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4
Paolo Ferretti
Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5
Paolo Ferretti
Tavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante SudTavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante Sud
Paolo Ferretti
OpenStreetMap
OpenStreetMapOpenStreetMap
OpenStreetMap
Paolo Ferretti
Corso Python Deltapromo lezione 1
Corso Python Deltapromo   lezione 1Corso Python Deltapromo   lezione 1
Corso Python Deltapromo lezione 1
Paolo Ferretti
DESKTOP GUI APP DEVELOPMENT USING PYTHON!
DESKTOP GUI APP DEVELOPMENT USING PYTHON!DESKTOP GUI APP DEVELOPMENT USING PYTHON!
DESKTOP GUI APP DEVELOPMENT USING PYTHON!
Umar Yusuf
Django CMS & Integrating it with django shop
Django CMS & Integrating it with django shopDjango CMS & Integrating it with django shop
Django CMS & Integrating it with django shop
Mindfire Solutions
wxFormBuilder - Tutorial on A GUI for making GUIs for Python
wxFormBuilder - Tutorial on A GUI for making GUIs for PythonwxFormBuilder - Tutorial on A GUI for making GUIs for Python
wxFormBuilder - Tutorial on A GUI for making GUIs for Python
Umar Yusuf
Python base 07-classioggetti
Python base 07-classioggettiPython base 07-classioggetti
Python base 07-classioggetti
Studiabo
Corso Python Deltapromo - Lezione 2
Corso Python Deltapromo - Lezione 2Corso Python Deltapromo - Lezione 2
Corso Python Deltapromo - Lezione 2
Paolo Ferretti
Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4Corso Python Deltapromo - Lezione 4
Corso Python Deltapromo - Lezione 4
Paolo Ferretti
Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5Corso Python Deltapromo - Lezione 5
Corso Python Deltapromo - Lezione 5
Paolo Ferretti
Tavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante SudTavolo territoriale del servizio ferroviario nel Quadrante Sud
Tavolo territoriale del servizio ferroviario nel Quadrante Sud
Paolo Ferretti
Corso Python Deltapromo lezione 1
Corso Python Deltapromo   lezione 1Corso Python Deltapromo   lezione 1
Corso Python Deltapromo lezione 1
Paolo Ferretti
DESKTOP GUI APP DEVELOPMENT USING PYTHON!
DESKTOP GUI APP DEVELOPMENT USING PYTHON!DESKTOP GUI APP DEVELOPMENT USING PYTHON!
DESKTOP GUI APP DEVELOPMENT USING PYTHON!
Umar Yusuf
Django CMS & Integrating it with django shop
Django CMS & Integrating it with django shopDjango CMS & Integrating it with django shop
Django CMS & Integrating it with django shop
Mindfire Solutions
wxFormBuilder - Tutorial on A GUI for making GUIs for Python
wxFormBuilder - Tutorial on A GUI for making GUIs for PythonwxFormBuilder - Tutorial on A GUI for making GUIs for Python
wxFormBuilder - Tutorial on A GUI for making GUIs for Python
Umar Yusuf
Python base 07-classioggetti
Python base 07-classioggettiPython base 07-classioggetti
Python base 07-classioggetti
Studiabo

Similar to Corso Python Deltapromo - Lezione 3 (20)

Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
Salvatore Cordiano
Introduzione a Git e GitLab
Introduzione a Git e GitLabIntroduzione a Git e GitLab
Introduzione a Git e GitLab
Yefry Figueroa
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
Gerardo Di Iorio
Emerasoft Git quickstart
Emerasoft Git quickstartEmerasoft Git quickstart
Emerasoft Git quickstart
Emerasoft, solutions to collaborate
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Carlo Fedeli
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
Fabio Mora
Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010
migratore
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013
Alessandro del Gobbo
Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Seminario team working - 21-1-2015
Seminario team working - 21-1-2015
Alessandro Loffredo
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Dall'idea al deploy   un lungo viaggio che passa per git flow e semverDall'idea al deploy   un lungo viaggio che passa per git flow e semver
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Mauro Servienti
Infrastructure as Data
Infrastructure as DataInfrastructure as Data
Infrastructure as Data
Francesco Collova'
Containerized Liferay
Containerized LiferayContainerized Liferay
Containerized Liferay
Teresa Dallera
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
Nicol嘆 Carandini
Wordpress Boilerplate Plugin Powered
Wordpress Boilerplate Plugin PoweredWordpress Boilerplate Plugin Powered
Wordpress Boilerplate Plugin Powered
Daniele Scasciafratte
Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...
Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...
Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...
MariaDB plc
Anatomia di un progetto open-source
Anatomia di un progetto open-sourceAnatomia di un progetto open-source
Anatomia di un progetto open-source
Bergamo Linux Users Group
Universal app ma universal per davvero
Universal app ma universal per davveroUniversal app ma universal per davvero
Universal app ma universal per davvero
Klab
Smau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSmau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del cero
SMAU
Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
Balint Maschio
Talks on my machine: Drupal CMS versus The Cool Kids
Talks on my machine: Drupal CMS versus The Cool KidsTalks on my machine: Drupal CMS versus The Cool Kids
Talks on my machine: Drupal CMS versus The Cool Kids
sparkfabrik
Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
Salvatore Cordiano
Introduzione a Git e GitLab
Introduzione a Git e GitLabIntroduzione a Git e GitLab
Introduzione a Git e GitLab
Yefry Figueroa
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Il "rilascio" con Octopus Deploy (visto dagli occhi di un dev)
Carlo Fedeli
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
Fabio Mora
Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010Continuous Deployment - Agile Day 2010
Continuous Deployment - Agile Day 2010
migratore
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013
Alessandro del Gobbo
Seminario team working - 21-1-2015
Seminario team working - 21-1-2015Seminario team working - 21-1-2015
Seminario team working - 21-1-2015
Alessandro Loffredo
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Dall'idea al deploy   un lungo viaggio che passa per git flow e semverDall'idea al deploy   un lungo viaggio che passa per git flow e semver
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Mauro Servienti
Containerized Liferay
Containerized LiferayContainerized Liferay
Containerized Liferay
Teresa Dallera
Wordpress Boilerplate Plugin Powered
Wordpress Boilerplate Plugin PoweredWordpress Boilerplate Plugin Powered
Wordpress Boilerplate Plugin Powered
Daniele Scasciafratte
Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...
Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...
Come lOpen Source pu嘆 essere alla base di un business di successo: il caso H...
MariaDB plc
Universal app ma universal per davvero
Universal app ma universal per davveroUniversal app ma universal per davvero
Universal app ma universal per davvero
Klab
Smau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSmau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del cero
SMAU
Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
Balint Maschio
Talks on my machine: Drupal CMS versus The Cool Kids
Talks on my machine: Drupal CMS versus The Cool KidsTalks on my machine: Drupal CMS versus The Cool Kids
Talks on my machine: Drupal CMS versus The Cool Kids
sparkfabrik

Corso Python Deltapromo - Lezione 3

  • 1. INTRODUZIONE A MERCURIAL Lezione 3 Paolo Ferretti per Deltapromo URL corso: http://corso-deltapromo.paoloferretti.net/ http://www.paoloferretti.net paolo@paoloferretti.net
  • 2. MERCURIAL Software distribuito per la gestione del codice Scritto in Python e C Opensource Scaricabile da http://mercurial.selenic.com/
  • 3. UN PO DI STORIA I suoi antenati sono CVS e SVN Sistemi centralizzati Merge poco ef鍖ciente
  • 4. PERCH MERCURIAL Quando si lavora in team, spesso di lavora sullo stesso 鍖le Si creano con鍖itti Si introducono bug C竪 la necessit di versionare il codice
  • 5. VANTAGGI DI MERCURIAL Col codice versionato abbiamo una macchina del tempo possiamo fare rollback delle modi鍖che abbiamo tutta la storia delle modi鍖che di ogni 鍖le
  • 6. VANTAGGI DI MERCURIAL Ilcodice non 竪 in un luogo centralizzato, ma 竪 distribuito su pi湛 macchine Pi湛 elasticit nella gestione dei permessi nel team di lavoro Il codice 竪 facilmente copiabile/trasferibile/aggiornabile Il processo di sviluppo e deploy pu嘆 essere automatizzato
  • 7. PER INIZIARE hg init crea un repository nella cartella corrente de鍖nire subito il 鍖le .hgignore permette di indicare da subito i 鍖le che non devono essere versionati ad esempio: 鍖le di progetto del nostro IDE preferito
  • 8. REPOSITORY Ogni repository 竪 contenuto nella cartella .hg, posizionata nella root del progetto In .hg c竪 il 鍖le hgrc con le impostazioni del repository
  • 9. COMMIT hg ci -m messaggio del commit effettua il commit dei 鍖le modi鍖cati / aggiunti Ogni commit viene registrato con un id alfanumerico unico
  • 10. VERIFICA STATO hg status veri鍖ca lo stato dei 鍖le modi鍖cato aggiunto rimosso
  • 11. PUSH hg push effettua il push dei commit locali su un repository remoto E unodei due step importanti per sincronizzare il proprio lavoro con gli altri membri del team
  • 12. PULL hg pull scarica le modi鍖che da un repository remoto Loperazione in s竪 non modi鍖ca alcun 鍖le, ma si limita a scaricare nel repository locale le modi鍖che
  • 13. UPDATE hg up effettua lupdate dei 鍖le dal repository locale In caso di con鍖itti, va seguito da un hg merge il quale effettua il merge automatico dei 鍖le che con鍖iggono Il plugin fetch effettua pull, update e merge automaticamente
  • 14. IN CASO DI CONFLITTI Seci sono con鍖itti che non si possono risolvere in automatico, si interviene manualmente hg resolve -l restituisce la lista dei 鍖le che con鍖iggono hg resolve -m /path/to/鍖le indica a mercurial che abbiamo risolto il con鍖itto

Editor's Notes