III.2 Come condividere risultati Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 6, 2015
Argomenti 1 Di cosa si tratta Tipologie 2 Ai fine del progetto Comandi base di Git 3 Di cosa si tratta Esempi di applicazioni gratuite 4
Definizione Di cosa si tratta Tipologie Un sistema di controllo di versione (Version Control System (VCS)) è una combinazione di tecnologie e procedure per tenere traccia, nel tempo, e controllare le modifiche di un file o di un insieme di file, recuperabili successivamente richiamando una versione specifica [Chacon, 2009]. I file possono contenere documenti, codice, pagine Web e altri insiemi di informazione.
Di cosa si tratta Di cosa si tratta Tipologie VCS aiuta in ogni aspetto della gestione di un progetto. Automatizza una serie di operazioni quali: tracciare colui che ha effetuato una modifica su un file; unire le modifiche una volta completate; ripristinare un file ad una versione precedente; segnalare eventuali conflitti; revisionare le modifiche fatte nel tempo.
Perchè serve Di cosa si tratta Tipologie Originariamente VCS serviva a supportare lo sviluppo di grandi progetti software, caratterizzati da porzioni di codice, tra loro correlate, condivise tra molti programmatori. Oggi è usato non solo da gruppi di persone che lavorano insieme, ma anche da singoli sviluppatori; non solo per la gestione di progetti software, ma anche per la scrittura di articoli e documenti da parte di ricercatori.
Come funziona Di cosa si tratta Tipologie Supponiamo di voler lavorare su un file, sia questo un pezzo di codice o di testo; di avere definito un area di lavoro sul proprio desktop. Tramite VCS è possibile recuperare localmente il file da una repository; modificare il file e registrarlo nella repository.
Come funziona Di cosa si tratta Tipologie La repository tiene traccia di tutte le modifiche e di chi le ha fatte; associa ad ogni modifica del file registrato una versione; per ogni registrazione tiene traccia della differenza tra versioni.
Vantaggi Di cosa si tratta Tipologie È possibile ritornare alla versione precedente di un file, nel caso di modifiche sbagliate. Si possono confrontare versioni differenti per vedere i cambiamenti introdotti. È possibile registrare i dati e il codice che servono per un artiolo: mantenere traccia dei dati prodotti; garantire riproducibilità. Se si lavora usando diverse macchine, dal desktop al portatile, VCS permette di mantenere le informazioni sincronizzate tra le varie macchine.
Tipologie Di cosa si tratta Tipologie VCS locale VCS centralizzato: modello client-server VCS distribuito
VCS locale Di cosa si tratta Tipologie Un database (detto repository) mantiene tutti i cambiamenti dei file sotto controllo di revisione. Il file viene recuperato sulla stessa macchina del database.
Di cosa si tratta Tipologie VCS centralizzato: modello client-server Una macchina server contiene il repository. 1 o più macchine client usate per recuperare i file dalla repository. Solo la repository conserva l intera storia di tutte le modifiche.
Di cosa si tratta Tipologie VCS centralizzato: modello client-server Sistemi come Concurrent Version System (CVS) e SubVersioN (SVN) rientrano in questa tipologia di VCS.
VCS distribuito Di cosa si tratta Tipologie Sulle macchine client si ha una copia dei file più recenti (detto anche snapshot), ma anche una copia completa della repository. Ogni operazione di recupero effettua una copia completa di tutti i dati.
VCS distribuito Di cosa si tratta Tipologie Sistemi come Git e Mercurial rientrano in questa tipologia di VCS. Ulteriori informazioni http: //swcarpentry. github.io/ hg-novice/.
Di cosa si tratta Tipologie Comparazione tra le varie tipologie Caratteristica Locale Centralizzato Distribuito Tracciabilità delle modifiche. Collaborazione tra più persone. Controllo sugli accessi. Facile amministrazione. Singolo punto di fallimento 1. Perdita dei dati 2. Copia repository client. Recupero repository. 1 La macchina server è andata giù. 2 Disco del server si è corrotto.
Che cosa è Git Ai fine del progetto Comandi base di Git Git è un sistema di controllo di versione distribuito, gratuito e open source, progettato per gestire dati in modo veloce ed efficiente. http://git-scm.com/book/it/v1/
Perchè usare Git Ai fine del progetto Comandi base di Git È gratuito e open source. È distribuito, di conseguenza: è garantita una copia di backup della repository su ogni macchina client; non è necessario essere sempre connessi al server. Risulta popolare tra ditte software, nel mondo accademico e nel mondo della ricerca.
Cosa è Bitbucket Ai fine del progetto Comandi base di Git Bitbucket è un server online che offre soluzioni Git. Previa registrazione nella versione gratuita è possibile disporre di un numero illimitato di repository condividendole con al massimo 5 persone. https://confluence.atlassian.com/display/bitbucket/bitbucket+101
Ai fini del progetto Ai fine del progetto Comandi base di Git Seguire i seguenti passi: 1 registrarsi su Bitbucket; 2 creare repository di nome Informatica.project su Bitbucket; 3 configurare Git sul computer di lavoro installandolo se non presente; 4 eseguire i comandi necessari sul computer di lavoro per copiare il contenuto del proprio progetto nella repository remota; 5 al docente dare accesso in lettura alla repository del progetto; 6 terminato l esame rimuovere i permessi al docente.
Passo 1 Ai fine del progetto Comandi base di Git - Registrarsi su Bitbucket. 1 Aprire il link. https: //bitbucket.org/ 2 Cliccare su Get started for free. 3 Riempire il form. 4 Cliccare su Sign up per completare la registrazione.
Passo 2 Ai fine del progetto Comandi base di Git - Creare una repository su Bitbucket subito dopo la registrazione. 1 Cliccare su repository Empty. 2 Specificare per esempio Informatica.project come nome della repository. 3 Cliccare su Create. 4 Cliccare su Done.
Passo 3 Ai fine del progetto Comandi base di Git - Installare Git se non già installato. 1 Aprire il sito web. http://git-scm. com/downloads 2 Cliccare sul link del download per il vostro sistema operativo, come Mac, Windows e Linux.
Passo 3 Ai fine del progetto Comandi base di Git - Controllare la installazione. 3 Aprire l applicativo Git Bash. 4 Posizionarsi sulla shell dopo il simbolo del $ detto prompt. 5 Scrivere il seguente comando: $ git --version Su Windows
Passo 3 Ai fine del progetto Comandi base di Git - Configurare Git localmente. 6 Specificare il NOME usato per registrarsi su Bitbucket: $ git config --global user.name "NOME" La seguente opzione permette di eseguire questa operazione una sola volta: --global 7 Specifiare la e-mail usata durante la registrazione su Bitbucket: $ git config --global user.email "email@domain" 8 Verificare la configurazione: $ git config --list 9 Chiudere Git Bash: $ exit
Passo 4 Ai fine del progetto Comandi base di Git - Eseguire i comandi per popolare la repository remota. 1 Aprire Git Bash. 2 Creare la directory del progetto: $ mkdir progettonumero dove NUMERO sarà sostituito dal numero di progetto assegnato allo studente. 3 Posizionarsi all interno della directory: $ cd progettonumero
Passo 4 Ai fine del progetto Comandi base di Git - Eseguire i comandi per popolare la repository remota. 4 Inizializzare la repository: $ git init $ git remote add origin \ > https://nome@bitbucket.org/nome/informatica.project.git dove NOME è quello usato per registrarsi su Bitbucket e per configurare Git localmente. 5 Aggiungere il primo file alla repository remota: $ echo NOME MATRICOLA >> studente.txt $ git add studente.txt $ git commit -m Primo commit $ git push -u origin master
Passo 5 Ai fine del progetto Comandi base di Git - Abilitare in lettura il docente sulla repository. 1 Andare al link https://bitbucket.org/nome/informatica.project/admin dove NOME è quello usato per registrarsi su Bitbucket. 2 Cliccare su Access management. 3 Inserire tra Users l utente saturno con i permessi di Read.
Passo 6 Ai fine del progetto Comandi base di Git - Rimuovere i permessi al docente sulla repository. 1 Andare al link https://bitbucket.org/nome/informatica.project/admin dove NOME è quello usato per registrarsi su Bitbucket. 2 Cliccare su Access management. 3 Rimuovere utente saturno.
E dopo... Ai fine del progetto Comandi base di Git Una volta creata la repository è sufficiente eseguire i comandi: $ git pull $ git add. $ git push
Comandi Git Ai fine del progetto Comandi base di Git
Comandi Git Ai fine del progetto Comandi base di Git Una volta fissato il workspace o area di lavoro, i comandi agiscono su file di stage che si trova nell area di lavoro e che tiene traccia di tutte le informazioni fornite con il comando add; local repository (repository locale) dove sono salvate tutte le modifiche registrate nel file di stage; remote repository (repository remota) dove sono memorizzati i dati del progetto con le varie versioni
Comando add Ai fine del progetto Comandi base di Git Aggiunge tutti i nuovi file o file modificati nell area di stage: $ git add. Aggiorna i file cancellati o rinominati nell area di stage: $ git add -u Esegue le precedenti operazioni: $ git add -A
Comando commit Ai fine del progetto Comandi base di Git Aggiunge tutte le modifiche nella repository locale: $ git commit -m "message"
Comando push Ai fine del progetto Comandi base di Git Aggiorna il contenuto della repository remota: $ git push
Comando status Ai fine del progetto Comandi base di Git Fornisce i dettagli sui file nella cartella di lavoro: $ git status riportando i file modificati (modified), aggiunti (added) e cancellati (deleted).
Comando pull Ai fine del progetto Comandi base di Git Sincronizza il contenuto della repository locale con quella remota: $ git pull
Comando clone Ai fine del progetto Comandi base di Git Copia il contenuto della repository remota nella cartella di default: $ git clone \ > https://nome@bitbucket.org/nome/informatica.project.git La cartella di default ha il nome informatica.project pari a quello della repository remota. Copia il contenuto della repository remota nella cartella di nome Progetto: $ git clone \ > https://nome@bitbucket.org/nome/informatica.project.git \ > Progetto
Altri comandi Ai fine del progetto Comandi base di Git Usare la opzione : --help per avere dettagli sui comandi supportati da git.
Di cosa si tratta Di cosa si tratta Esempi di applicazioni gratuite (OSS) è un servizio basato su Web. Mette a disposizione di ogni utente registrato uno spazio storage, raggiungibile ovunque via Internet. Permette di: caricare documenti, video, foto; sincronizzare documenti da più computer o altri dispositivi (come tablet o smartphone); scambiare file con altri utenti iscritti; accedere ai documenti da ogni altro possibile computer del mondo via Internet.
Esempi di applicazioni gratuite Di cosa si tratta Esempi di applicazioni gratuite https://www.box.com https://www.dropbox.com I migliori top 10 OSS: http: //online-storage-service-review.toptenreviews.com/
Box Di cosa si tratta Esempi di applicazioni gratuite Box è un esempio di OSS creato per l ambiente di lavoro. Chiunque si può iscrivere a Box per un accesso gratuito. Ha un elevato numero di funzioni per la privacy e la condivisione dell informazione. Per accedere ai file su Box si può usare: il sito Web di Box; applicazioni per sistemi operativi come Mac e Windows. applicazioni per piattaforme come ios, Android e BlackBerry.
Box Di cosa si tratta Esempi di applicazioni gratuite È possibile salvare qualsiasi tipo di file su Box: utilizzando il sito Web; tramite le varie applicazioni disponibili. Il servizio supporta l operazione: di controllo della privacy su file. Per esempio, stabilire chi può fare cosa; di sincronizzazione dei file sui vari dispositivi utilizzati.
Dropbox Di cosa si tratta Esempi di applicazioni gratuite Dropbox è un esempio di OSS. Per accedere ai file su Dropbox si può usare: il sito Web di Dropbox; applicazioni per sistemi operativi come Mac, Windows e Linux; applicazioni per piattaforme come ios, Android, BlackBerry e Kindle Fire. Serve il collegamento Internet.
Dropbox Di cosa si tratta Esempi di applicazioni gratuite È possibile salvare qualsiasi tipo di file su Dropbox: utilizzando il sito Web; tramite le varie applicazioni disponibili. Il servizio supporta l operazione: drag-and-drop di file e cartelle dal proprio dispositivo allo storage remoto e viceversa; sincronizzazione dei file sui vari dispositivi utilizzati. È possibile caricare file di diversa dimensione.
Google Drive Di cosa si tratta Esempi di applicazioni gratuite Google Drive offre molte delle funzionalità di Dropbox. È integrato con l ecosistema Google, come Google Docs, costruito su Web Chromium. Il servizio include: elaboratore di testi; foglio elettronico; elaboratore di presentazioni. È necessario essere utenti Google per accedere al servizio. Si hanno 15GB di spazio gratuiti condivisi tra i vari applicativi Google.
Google Drive Di cosa si tratta Esempi di applicazioni gratuite Per accedere ai file su Google Drive si può usare: il sito Web di Google Drive; applicazioni per sistemi operativi come Mac e Windows; applicazioni per piattaforme come ios e Android. Il servizio supporta l operazione: drag-and-drop di file e cartelle dal proprio dispositivo allo storage remoto e viceversa; sincronizzazione dei file sui vari dispositivi utilizzati. Ulteriori approfondimenti: http://www.gcflearnfree.org/googledriveanddocs
Comparazione tra alcuni OSS Di cosa si tratta Esempi di applicazioni gratuite Caratteristica Box Dropbox Google Drive Massimo storage gratuito 10GB 2GB 15GB Backup continuo Backup incrementale Sincronizzazione dei file Opzioni per la condivisione Permessi sulle cartelli Sincronizzazione con cellulare Piattaforme supportate Windows, Windows, Mac, Linux, Android, Windows, Mac, ios, Android Mac, Android, ios, BlackBerry, Kindle Filre BlackBerry, ios Dati aggiornati a Settembre 2015.
Comparazione tra alcuni OSS Di cosa si tratta Esempi di applicazioni gratuite Tramite Google Trends https://google.com/trends/ Dati aggiornati a Ottobre 2015.
Di cosa si tratta Esempi di applicazioni gratuite Interesse internazionale per Dropbox Tramite Google Trends https://google.com/trends/ Dati aggiornati a Ottobre 2015.
Di cosa si tratta Esempi di applicazioni gratuite Interesse internazionale per Google Drive Tramite Google Trends https://google.com/trends/ Dati aggiornati a Ottobre 2015.
Interesse internazionale per Box Di cosa si tratta Esempi di applicazioni gratuite Tramite Google Trends https://google.com/trends/ Dati aggiornati a Ottobre 2015.
1 Indicare come si aggiunge il file Progetto178.txt nella repository locale. (a) git add Progetto178.txt (b) git add Progetto.txt (c) git commit -m Progetto178.txt (d) git add 178.txt (e) git add Progetto
2 Indicare le parole chiave di un sistema di controllo di versione: (a) repository (b) commit (c) modifica (d) insieme di modifiche (e) tutte le precedenti
3 Indicare quali sono le caratteristiche di Git: (a) permette di effettuare una o più commit; (b) è un VCS distribuito; (c) tutte quelle elencate; (d) permette di effettuare principalmente operazioni locali; (e) non necessita il collegamento di rete.
5 Indicare come si cancella il file Obsoleto.txt dalla repository locale. (a) git rm Obsolete.txt (b) git rm *.txt (c) git reset *.txt (d) git reset Obsolete.txt (e) git tag Obsolete.txt
6 Indicare cosa effettua l esecuzione del comando: git clone https://user@bitbucket.org/prova/progetto.git (a) copia la repository remota in una directory con il nome progetto; (b) crea la directory NuovoProgetto; (c) crea la directory NuovoProgetto includendo la sola directory.git; (d) crea la directory NuovoProgetto.git; (e) crea la directory NuovoProgetto includendo solo i dati della repository.
Per ulteriori letture Scott. Chacon, Pro Git, Apress (2009), http://git-scm.com/book Jon Loeliger, Matthew McCullough, Version Control with Git: Powerful tools and techniques for collaborative software development Paperback, O Reilly Media; Second Edition edition (August 27, 2012)