Sei sulla pagina 1di 21

Git, github e altre amenit

Yvette Agostini @Linux Day 2013 Padova

sabato 26 ottobre 13

Project management
esigenze di organizzazione risoluzione conitti tra differenti componenti di progetto ricerca miglior percorso di sviluppo monitoraggio risorse rendicontazione avanzamento lavori

sabato 26 ottobre 13

Classico e/o Agile?


pianicazione di dettaglio ricerca percorsi critici roadmap minore adattabilit miglior controllo consuntivazione pi agevole basato su stories non dettagliato maggiore capacit di adattamento consuntivazione e controllo pi laboriosi

Caveat: le considerazioni su esposte derivano dalla mia esperienza pregressa su progetti non software, che generalmente sono gestibili con approccio classico
sabato 26 ottobre 13

Distributed Version Control System

tiene traccia delle versioni del software molti sviluppatori possono lavorare su un progetto senza necessariamente essere connessi ad una rete comune ogni modica pu essere fatta e inviata al server (se presente) in un successivo momento

sabato 26 ottobre 13

Github
git e github sono strumenti DVCS particolarmente developer-centrici non semplice per il project manager utilizzarli per il reporting di solito, strumenti ok per il project manager sono ardui per gli sviluppatori e viceversa ...

sabato 26 ottobre 13

sabato 26 ottobre 13

Git
un Distributed Version Control System sviluppato inizialmente da Linus Torvalds per il kernel linux nel 2005 Ogni directory di lavoro un repository completo di history e version tracking, indipendente da un server centrale

sabato 26 ottobre 13

Git: caratteristiche
supporta lo sviluppo non lineare: un branch solo un riferimento ad un singolo commit supporta lo sviluppo distribuito: ogni sviluppatore dispone di una copia locale dellintera history di sviluppo Compatibilit con HTTP, FTP, rsync, git protocol over ssh | HTTP emulazione di CVS per interloquire con control version system tradizionali autenticazione crittograca dellhistory, o detto semplicemente lID di ciascun commit dipende dalla sua history
sabato 26 ottobre 13

Git: strutture dati


blob (binary large objects): puro e semplice contenuto di un le senza metadati o altro. Ogni revisione di un le un blob tree: simile a una directory commit: collega i tree in una history e contiene nome di un tree un timestamp messaggio di log nom(e|i) de(l|i) commit genitor(e|i) tag: contiene riferimento ad un altro oggetto e metadati riferiti ad un altro oggetto

ciascun oggetto identicato dallhash SHA-1 del suo contenuto


sabato 26 ottobre 13

Github
github basato su git offre spazio free per ospitare codice sorgente (esistono opzioni a pagamento) molto apprezzato dagli sviluppatori per progetti open source rende particolarmente semplice partecipare ai progetti

sabato 26 ottobre 13

sabato 26 ottobre 13

Github: issue tracking


ha un semplice sistema per il bug tracking: le issues pu essere utilizzato pure come strumento per gestire progetti le issues possono essere crossreferenziate supporta le labels (etichette) con cui aggiungere metadati possibile allegare codice alle issues le issues possono essere raggruppate in milestone cui assegnare una scadenza temporale
sabato 26 ottobre 13

Github: Issue-tracking

sabato 26 ottobre 13

Github: cross-referenced issues

sabato 26 ottobre 13

Github: issues selection

sabato 26 ottobre 13

Github: milestones

sabato 26 ottobre 13

Github+Huboard: prioritizzazione

labels|milestones per la prioritizzazione: bassa efcienza necessit di usare altri tipi di strumenti, ad esempio in stile Kanban: Huboard

sabato 26 ottobre 13

git log: consuntivare


git log un comando molto potente che consente di visualizzare la storia di progetto ha moltissime opzioni, molto versatile molto utile, quasi imprescindibile, per osservare da differenti punti di vista il progetto e per poterne consuntivare diversi aspetti

sabato 26 ottobre 13

git log: attivit di un utente su progetto in un intervallo di date


git log --after="2012-12-31" -before="2013-02-01" \ --author=$name --pretty=format:"%ad;%an;%s:%H" \ --date=short | awk -F ';' '{print $1,$3}' | \ awk -F ':' '{print $1,"https://github.com/ $projectname/commit/"$2}

E scriptabile E possibile redirigere loutput del comando in un le Con piccole variazioni possibile generare un le .csv, importabile in foglio di calcolo per ulteriori elaborazioni
sabato 26 ottobre 13

Bibliograa
http://emea.nttdata.com/blog/en/2012/03/29/projectmanagement-classic-or-agile/ http://stackoverow.com/questions/1457103/whatis-the-difference-between-a-tag-and-a-branch-in-git http://www.lullabot.com/blog/article/managingprojects-github https://www.atlassian.com/git/tutorial/git-basics#!log man git
sabato 26 ottobre 13

Ringrazio
Hermes Center for Transparency and Digital Human Rights per avermi dato lopportunit di far esperienza di project management in ambito Open Source Software Tutti i contributors del progetto Globaleaks che sopportano stoicamente la mia puntigliosit Il FSUG di Padova per aver organizzato questo evento

sabato 26 ottobre 13

Potrebbero piacerti anche