SlideShare a Scribd company logo
1 of 30
Download to read offline
SVN / TRAC



●   Utilizzo di Subversion e TRAC
●   risoluzione di piccoli problemi
●   Best practice
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/
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
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.
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).
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
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
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
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.
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
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.
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.
TRAC
È un sistema per la gestione, monitoraggio e
documentazione di progetti software
  ●   Wiki di progetto
  ●   Milestones
  ●   Ticket
  ●   Roadmap
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).
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)
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.
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.
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
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
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à.
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.
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
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.
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
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.
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
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
TRAC – Strumenti di monitoraggio – Roadmap

●   Consente di tenere sotto controllo lo stato dei
    rilasci prianificati per il progetto
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.
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.

More Related Content

What's hot

Accesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogeneaAccesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogeneaGiacomo Antonino Fazio
 
Oracle Application Server 10g
Oracle Application Server 10gOracle Application Server 10g
Oracle Application Server 10gPaolo Campegiani
 
Post gresql su_raspberry
Post gresql su_raspberryPost gresql su_raspberry
Post gresql su_raspberryMarco Buttolo
 
Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumateMarco Buttolo
 
Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09Majong DevJfu
 

What's hot (8)

Accesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogeneaAccesso remoto al proprio computer in una rete eterogenea
Accesso remoto al proprio computer in una rete eterogenea
 
Socket python
Socket pythonSocket python
Socket python
 
Oracle Application Server 10g
Oracle Application Server 10gOracle Application Server 10g
Oracle Application Server 10g
 
Post gresql su_raspberry
Post gresql su_raspberryPost gresql su_raspberry
Post gresql su_raspberry
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 
Installazione ambientepython ubuntumate
Installazione ambientepython ubuntumateInstallazione ambientepython ubuntumate
Installazione ambientepython ubuntumate
 
Corso Bash
Corso BashCorso Bash
Corso Bash
 
Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09
 

Similar to SVN/TRAC

Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]gioacchinolonardo
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaRoberto Torresani
 
Apache Maven - Gestione di progetti Java e build automation
Apache Maven - Gestione di progetti Java e build automationApache Maven - Gestione di progetti Java e build automation
Apache Maven - Gestione di progetti Java e build automationTiziano Serritella
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxMarco Ferrigno
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
 
TYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàTYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàRoberto Torresani
 
LUG - Logical volumes management
LUG - Logical volumes managementLUG - Logical volumes management
LUG - Logical volumes managementAlessandro Manfredi
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Gian Maria Ricci
 

Similar to SVN/TRAC (20)

Thesis Amicucci Slides IT
Thesis Amicucci Slides ITThesis Amicucci Slides IT
Thesis Amicucci Slides IT
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
Hadoop analyzerJR
Hadoop analyzerJRHadoop analyzerJR
Hadoop analyzerJR
 
TYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novitaTYPO3 Versione 10.2 - Le novita
TYPO3 Versione 10.2 - Le novita
 
Apache Maven - Gestione di progetti Java e build automation
Apache Maven - Gestione di progetti Java e build automationApache Maven - Gestione di progetti Java e build automation
Apache Maven - Gestione di progetti Java e build automation
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
 
TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita TYPO3 CMS 7.5: le novita
TYPO3 CMS 7.5: le novita
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
TYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le NovitàTYPO3 CMS 6.2 LTS - Le Novità
TYPO3 CMS 6.2 LTS - Le Novità
 
Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2Novita TYPO3 CMS 7.2
Novita TYPO3 CMS 7.2
 
LUG - Logical volumes management
LUG - Logical volumes managementLUG - Logical volumes management
LUG - Logical volumes management
 
TYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novitàTYPO3 CMS 8.1 - Le novità
TYPO3 CMS 8.1 - Le novità
 
Logging
LoggingLogging
Logging
 
Progetto Netkit
Progetto NetkitProgetto Netkit
Progetto Netkit
 
TYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novitàTYPO3 CMS 8.4 - Le novità
TYPO3 CMS 8.4 - Le novità
 
Database Project in Visual Studio 2010
Database Project in Visual Studio 2010Database Project in Visual Studio 2010
Database Project in Visual Studio 2010
 
Cac Es3 2009
Cac Es3 2009Cac Es3 2009
Cac Es3 2009
 

More from Diego La Monica

E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?Diego La Monica
 
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Diego La Monica
 
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Diego La Monica
 
Cordova: un viaggio di sola andata
Cordova: un viaggio di sola andataCordova: un viaggio di sola andata
Cordova: un viaggio di sola andataDiego La Monica
 
App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?Diego La Monica
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceDiego La Monica
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?Diego La Monica
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
Strategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaStrategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaDiego La Monica
 
Applicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneApplicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneDiego La Monica
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webDiego La Monica
 
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeSiti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeDiego La Monica
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)Diego La Monica
 
I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)Diego La Monica
 
I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)Diego La Monica
 
ALPHA Architectural Overview
ALPHA Architectural OverviewALPHA Architectural Overview
ALPHA Architectural OverviewDiego La Monica
 

More from Diego La Monica (20)

E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?E se non avessi davvero bisogno di un app?
E se non avessi davvero bisogno di un app?
 
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
Analisi comportamentale nelle app: pensare agli introiti contrasta con l'util...
 
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?Ideare un app e farla fruttare: quanti modi? Quale scegliere?
Ideare un app e farla fruttare: quanti modi? Quale scegliere?
 
Cordova: un viaggio di sola andata
Cordova: un viaggio di sola andataCordova: un viaggio di sola andata
Cordova: un viaggio di sola andata
 
Css stuffs #3
Css   stuffs #3Css   stuffs #3
Css stuffs #3
 
App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?App di successo - quali strumenti? e le performance?
App di successo - quali strumenti? e le performance?
 
Css stuffs #2
Css   stuffs #2Css   stuffs #2
Css stuffs #2
 
Css stuffs #1
Css   stuffs #1Css   stuffs #1
Css stuffs #1
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformance
 
App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?App di successo quali strumenti? e le performance?
App di successo quali strumenti? e le performance?
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
Strategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativaStrategie per applicazioni web prima o meglio dell'app nativa
Strategie per applicazioni web prima o meglio dell'app nativa
 
Applicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazioneApplicazioni mobili: dall'ideazione alla pubblicazione
Applicazioni mobili: dall'ideazione alla pubblicazione
 
Competenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del webCompetenze per lo sviluppo software nellera del web
Competenze per lo sviluppo software nellera del web
 
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenzeSiti web, Portali, Rich Internet Application: tendenze e controtendenze
Siti web, Portali, Rich Internet Application: tendenze e controtendenze
 
I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)I linguaggi del web - seconda edizione (3° giornata)
I linguaggi del web - seconda edizione (3° giornata)
 
I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)I linguaggi del web - seconda edizione (2° giornata)
I linguaggi del web - seconda edizione (2° giornata)
 
I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)I linguaggi del web - seconda edizione (1° giornata)
I linguaggi del web - seconda edizione (1° giornata)
 
ALPHA Architectural Overview
ALPHA Architectural OverviewALPHA Architectural Overview
ALPHA Architectural Overview
 

SVN/TRAC

  • 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.