• Non ci sono risultati.

controllo di versione

N/A
N/A
Protected

Academic year: 2021

Condividi "controllo di versione"

Copied!
13
0
0

Testo completo

(1)

A. Ferrari

controllo di versione

version control systems

Alberto Ferrari – Informatica

(2)

A. Ferrari

version control system

o il controllo di versione è un processo che consente di tenere traccia di tutte le modifiche effettuate nel tempo ad un progetto (un insieme di file)

o nel sistema per il controllo di versione viene registrata

o la modifica

o chi ha effettuato la modifica

o quando è stata effettuata la modifica

o il motivo per cui un file è stato modificato (commento)

o è possibile ritornare a una versione precedente del progetto e recuperare file che sono stati erroneamente eliminati

(3)

A. Ferrari

software per il versioning

• esistono vari sistemi per il controllo di versione

– Subversion – Perforce – TFS

– Git

– Mercurial

(4)

A. Ferrari

vantaggi dei sistemi di versioning

singolo utente

• backup

• cronologia

• ritorno a versioni precedenti

– (singolo file o progetto)

• sviluppi sperimentali

– branch

team di sviluppo

• sincronizzazione

– aggiornamento copia

personale con modifiche di altri

• responsabilità

– modifica (chi e perché)

• gestione conflitti

– modifiche incompatibili

(5)

A. Ferrari

concetti e termini

o repository

o luogo in cui sono archiviati file e cronologia o database con tutte le informazioni

o working set

o progetti all’interno del repository (file locali) o add

o aggiornamento del working set o check-in (commit)

o aggiornamento del repository dal working set o check-out (update)

o aggiornamento del working set con una versione dei dati dal repository

o tag (label)

o identificatore dello stato di un intero albero di un progetto o di un repository

(6)

A. Ferrari

git

o git è un software di controllo versione creato da Linus Torvalds nel 2005

o git (nello slang americano significa idiota) nasce per essere un semplice strumento per facilitare lo sviluppo del kernel Linux

o oggi è diventato uno degli strumenti di controllo versione più diffusi

(7)

A. Ferrari

git - utilizzo

o # creazione cartella locale per repository

$ mkdir repo/demo

o # posizionamento in cartella repository

$ cd repo/demo

o # inizializzazione (creazione) repository

$ git init

Initialized empty Git repository in xxx/repo/demo/.git/

o Git memorizza tutte le informazioni nella directory nascosta .git.

o # visualizzazione dello stato del repository

$ git status

(8)

A. Ferrari

git – utilizzo

o nella cartella del working set è possibile creare e/o modificare file di qualsiasi tipo (es MyClass.java)

o è necessario comunicare a git che i file devono essere inseriti nel working set con il comando add

specificando il singolo file o tutti i file (*)

$ git add MyClass.java

$ git status

On branch master No commits yet

Changes to be committed:

(use "git rm --cached <file>..." to unstage) new file: MyClass.java

(9)

A. Ferrari

inserimento nel repository

o commit aggiorna il repository

$ git commit -a -m "Aggiunta classe MyClass"

[master (root-commit) d9cffef] Aggiunta classe MyClass 1 file changed, 3 insertions(+)

create mode 100644 MyClass.java

o stato del repository

$ git log

commit d9cffefa554f4ce5552debd9fc460f6aa76bbebe (HEAD -> master)

Author: Alberto Ferrari <alberto.ferrari@unipr.it>

Date: Mon May 13 16:43:48 2019 +0200 Aggiunta classe MyClass

(10)

A. Ferrari

modifiche

o dopo aver effettuato modifiche ai file nella cartella è possibile effettuare un confronto con quanto

memorizzato nel repository

$ git log -p

diff --git a/MyClass.java b/MyClass.java new file mode 100644

index 0000000..ef8a32f --- /dev/null

+++ b/MyClass.java

@@ -0,0 +1,3 @@

+public class MyClass { +

+}

(11)

A. Ferrari

ritorno a versioni precedenti

o in alcuni casi si rende necessario tornare a versioni precedenti del progetto

o numSha è il codice associato a ogni commit

$ git reset --hard numSha

o i file vengono riportati alla versione specificata

(12)

A. Ferrari

github

o GitHub è un servizio di hosting per progetti software

o è una implementazione dello strumento di controllo versione distribuito Git

o utilizzato da: Google, Apple, Microsoft, NASA, Facebook, Twitter

o fondata nel 2008

o nel 2009 135.000 repository pubblici

o 2013 3 milioni di utenti e più di 5 milioni di repository o 2018 Microsoft acquisto (7,5 miliardi di dollari)

(13)

A. Ferrari

operare con github

o creazione di un repository

o importante includere sempre un README o un file con informazioni sul progetto

o creazione di un branch

o un branch permette di lavorare su più versioni di un progetto o default branch master

o commit

o le modifiche salvate sono chiamate commit

o ogni commit ha un messaggio associato (una descrizione che spiega perché una particolare modifica è stata fatta)

o pull request

o una pull request propone le modifiche

o le pull requests mostrano le differenze dei contenuti dei vari i branch

o fondere una pull request

Riferimenti

Documenti correlati

al quale si accede dopo aver ottenuto un giudizio (A (buono), B (medio), C (sufficiente) ev. con dei segni -) negli appelli scritti su ciascuna delle quattro parti del programma:..

La villa di Vinicio è più vicina alla città che alla casa di Giulio B.. La villa di Vinicio è più vicina a casa di Giulio che al porto

Il territorio in cui è sito l’allevamento/struttura di partenza non risulta avere una esplicita limitazione alle movimentazioni verso il territorio di

Si apre la finestra di conferma delle Condizioni di licenza per Microsoft Access Runtime ® Fare click su &lt;Accetto i termini del contratto &gt; e quindi &lt;Continua&gt;..

– Protocollo aggiuntivo del 2004 all'accordo tra la Comunità economica europea e il Regno di Norvegia a seguito dell'adesione all'Unione europea della Repubblica

Dall’analisi del contesto territoriale e dei dati sopra evidenziati, ai fini delle fattibilità e del consolidamento delle azioni avviate sul territorio, risultano strategici

Corso: LICEO SCIENTIFICO - OPZIONE SCIENZE APPLICATE VIA TEANO 223.. 00177

Su WhatsApp invio del link diretto allo store per scaricare l’app Zoom/Jitsi.. Su WhatsApp invio del link diretto allo store per scaricare