1. SVN / TRAC
● Utilizzo di Subversion e TRAC
● risoluzione di piccoli problemi
● Best practice
2. SVN
● È un sistema per il versionamento del software.
● Consente di mantenere traccia di tutte le
modifiche occorse nel tempo su un progetto
software.
● Agevola lo sviluppo a più mani di codice
http://svnbook.red-bean.com/
3. SVN da linea di comando - checkout
Il checkout consente di creare una copia in locale del
progetto software “agganciata” al repository.
diego@my-pc:~$ svn checkout <repository> <local>
<repository> è l'url del repository remoto.
<local> è la directory locale nel quale importare il progetto.
diego@my-pc:~$ svn checkout http://software/test my-test-dir
Al posto di checkout è possibile utilizzare l'alias co
4. SVN da linea di comando - checkout
diego@my-pc:~$ svn co http://software/test my-test-dir
> A my-test-dir/trunk
> A my-test-dir/branches
> A my-test-dir/tags
> Checked out revision 1.
Nell'esempio si nota che SVN ha copiato dal
repository remoto le directory trunk, branches e
tags al repository nel repository locale.
5. SVN – le directory fondamentali
● trunk: directory dove tipicamente è presente
la working copy del progetto.
● tags: directory in cui si creano copie
etichettate del progetto (es. 1.0, 1.4, …)
● branches: directory in cui ci sono parti di
progetto che derivano dal progetto originale
(es. modifiche ad-hoc per determinati contesti).
6. SVN da linea di comando - add
Il comando add, consente di aggiungere risorse al repository
remoto partendo da file contenuti nel repository locale.
diego@my-pc:~/my-test-dir$ svn add trunk/*
> A trunk/my-script.php
> A trunk/my-document.txt
NOTA: Le risorse non vengono caricate sul repository remoto ma
sono pronte per esservi depositate
7. SVN da linea di comando - commit
Il comando commit, rende effettive le modifiche effettuate in
locale aggiungendole al repository remoto.
diego@my-pc:~/my-test-dir$ svn commit -m "message"
> Adding trunk/my-script.php
> Adding trunk/my-document.txt
> Transmitting file data .
> Committed revision 2.
message è il messaggio di testo che verrà riportato nel
repository come descrizione dell'aggiornamento eseguito.
Al posto di commit è possibile utilizzare l'alias ci
8. SVN da linea di comando - update
Il comando update (alias: up), riporta nel repository
locale le modifiche presenti sul repository remoto.
diego@my-pc:~/my-test-dir$ svn update
> At revision 2.
Nel caso ci fossero differenze con il repository remoto
verrebbero elencati tutti i file in locale che risultano
obsoleti e quindi sostituiti
9. SVN da linea di comando - stat
Il comando stat, mostra quali file saranno trasmessi al
repository remoto in caso di commit.
diego@my-pc:~/my-test-dir$ svn stat
> M trunk/my-script.php
> A trunk/my-new-script.php
Nell'esempio sopra si presuppone che sia stato creato un
nuovo file e aggiunto al repository tramite il comando add.
10. SVN da linea di comando - diff
Il comando diff, mostra le differenze tra i file modificati in locale e
quelli disponbili sul repository remoto.
diego@my-pc:~/my-test-dir$ svn diff
Index: my-script.php
====================================================
--- my-script.php (revisione 2)
+++ my-script.php (working copy)
@@ -1,6 +1,6 @@
// This is a comment
-
+ // this is the line that replaces the above
// This is another comment
11. SVN da linea di comando – svn cp
Usare il comando cp (copy) di svn per copiare
una risorsa locale garantendne l'integrità con il
repository remoto.
diego@my-pc:~/my-test-dir/trunk$ svn cp my-script.php another-script.php
> A another-script.php
diego@my-pc:~/my-test-dir/trunk$ svn ci -m "Added new script to repos"
> Adding another-script.php
Committed Revision 3.
12. SVN – gestione dei tag
I tag sono utili per gestire più versioni di un
progetto.
diego@my-pc:~/my-test-dir$ svn cp trunk tags/1.0
> A tags/1.0
diego@my-pc:~/my-test-dir$ svn commit -m "Release 1.0"
> Adding tags/1.0/my-script.php
> Adding tags/1.0/another-script.php
> Adding tags/1.0/my-document.txt
> Transmitting file data .
> Committed revision 4.
13. TRAC
È un sistema per la gestione, monitoraggio e
documentazione di progetti software
● Wiki di progetto
● Milestones
● Ticket
● Roadmap
14. TRAC – Configurazione – Basic Settings
● consente di definire il nome del progetto
● Un url di riferimento (per esempio l'url
dell'applicazione in ambiente produzione o in
collaudo)
● Una descrizione dettagliata del progetto
(compare come suggerimento sul titolo del
progetto nell'elenco dei progetti).
15. TRAC – Configurazione – Permissions
● consente di definire le autorizzazioni d'accesso per
persone e gruppi (sez. Grant Permission) alle
diverse aree del trac di progetto.
● consente di creare gruppi logici ai quali assegnare
specifiche risorse (Add Subject to Group).
● Consente di revocare i permessi per le persone e i
gruppi (tabella Manage Permissions)
16. TRAC – Configurazione – Plugins
● Consente di attivare o disattivare i plugin installati
● Consente l'installazione di nuovi plugin (avendo gli opportuni diritti sul trac di
progetto) partendo da un file locale.
● Plugin interessanti per i progetti software:
● EnscriptRenderer — Syntax highlighter using GNU Enscript.
● PHPRenderer — Syntax highlighter using the PHP executable.
● Plugin utili per la gestione dei ticket:
● NotificationSystem
● SendmailEmailSender — E-mail sender using a locally-installed sendmail program.
● SmtpEmailSender — E-mail sender connecting to an SMTP server.
17. TRAC – Configurazione – Ticket System
● Components: un prodotto suddiviso in moduli
potrebbe avere diversi components (es. Modulo
Contabilità, Modulo Fatturazione, …)
● Può esistere un solo component predefinito
● Ciascun component può avere un proprietario e
una propria descrizione dettagliata.
18. TRAC – Configurazione – Ticket System
● Milestones: Le scadenze del progetto e la
pianificazione dei rilasci viene gestita tramite le
milestones.
● Per ciascuna milestone è possibile definire:
● Titolo
● Data previsto rilascio
● Data di rilascio
● Descrizione
19. TRAC – Configurazione – Ticket System
● Priorities: Per la corretta gestione dei ticket è necessario
determinare particolari priorità alle segnalazioni dell'utente. Di
default, TRAC offre i seguenti valori:
● blocker: problemi che rendono il software non utilizzabile
● critical: problemi che rendono il software instabile
● major: problemi che causano difficoltà nell'uso del software
● minor: associato a problemi che si presentano in casi sporadici o in
funzionalità di uso raro
● trivial: tipicamente associato a questioni più di riflessione sulla modalità
di risoluzione di un problema
20. TRAC – Configurazione – Ticket System
● Resolutions: Consente di definire un semplice
workflow per i ticket indicando gli stati che un
ticket può assumere.
● Severities: Di default non è valorizzata questo
elenco, ma consente di specificare
l'importanza/gravità da assegnare all'attività.
21. TRAC – Configurazione – Ticket System
● Ticket types: Di default esistono 3 tipi di ticket:
● defect: per segnalare un problema nel software
● enhancement: per segnalare un evoluzione
● task: per indicare quelle attivitià da svolgere non
necessariamente collegate a modifiche del
software.
22. TRAC – Configurazione – Ticket System
● Versions: in questa sezione vengono
configurate le versioni del software in uso.
● Per ogni versione è possibile specificare:
● Il nome della versione (per esempio 1.0,
2.0.0-nightlybuild, 2.0.1-beta, … )
● L'eventuale data di effettivo o previsto rilascio
● Descrizione della versione
23. TRAC – Configurazione – Version Control
● Repositories: Questa sezione serve per
configurare un repository SVN al quale
agganciare il TRAC. In questo modo utilizzando
una particolare sintassi nel wiki e nei ticket è
possibile riferirsi a specifici commit.
24. TRAC – Wiki
● Area per la produzione della documentazione tecnica
● Documentazione di progetto
– Strutturazione del progetto
– Architettura
– Prerequisiti hardware e/o software
● Informazioni sulle modalità di configurazione del software
– Eventuali rimandi a pacchetti software di terze parti necessari al buon funzionamento
del nostro software
● Documentazione di sviluppo
– Convenzioni di sviluppo
– Scopo dei file
25. TRAC – Ticket
● Consente agli utilizzatori di notificare al team di
sviluppo eventuali anomalie occorse sul
software.
● In dipendenza di come è stato configurato
TRAC e dalle autorizzazioni in possesso
dell'utente collegato saranno disponibili
determinate aree e funzioni.
26. TRAC – Browse Source
● Tale sezione è disponibile solo se TRAC è collegato
a un sistema di versionamento del Software SVN.
● Consente di navigare tra i file del progetto software e
consultarne la storia:
● file appartenenti allo stesso rilascio
● differenze del file rispetto a una versione precedente
27. TRAC – Strumenti di monitoraggio – Timeline
● Fonde cronologicamente le informazioni su:
● commit occorsi sul repository svn
● ticket segnalati dagli utenti e eventuale storia
● Variazioni/aggiunte alle pagine del wiki
28. TRAC – Strumenti di monitoraggio – Roadmap
● Consente di tenere sotto controllo lo stato dei
rilasci prianificati per il progetto
29. TRAC – Strumenti di monitoraggio – View tickets
● Consente di tenere sotto controllo il completo
svolgimento delle attività secondo delle
interrogazioni preimpostate.
● È possibile impostare nuove ricerche più
congeniali alle proprie necessità o al progetto
tramite delle semplici interrogazioni SQL.
30. Contatti
Web: http://diegolamonica.info
Twitter: @jast
Email: me@diegolamonica.info
Skype: diego.la.monica
Gtalk: diego.lamonica@gmail.com
Facebook: http://www.facebook.com/DiegoLaMonica.FanPage
Licenza Creative Commons
SVN/Trac by Diego La Monica is licensed under a
Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Italia License.