SlideShare ist ein Scribd-Unternehmen logo
1 von 15
SVN...
                    ...ed Eclipse...
                        ...e Jira
                     1. Elementi base


                     Marchio/Logo



Riduzione minima     Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                     sempre la proporzione esistente tra tutti gli elementi. La dimen-
                     sione minima per la base, che consente una buona leggibilità, è




                   vittorio avallone
                     di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                     oggettistica molto piccola e banner internet), vanno valutate e
                     sottoposte ad autorizzazione.
LA FILOSOFIA                                                                            Fundamental Concepts


                                        REVISIONEach time the repository accepts a commit, this creates a new state of the filesystem tree, called a revision. Eac
                                                signed a unique natural number, one greater than the number of the previous revision. The initial revision of a fr
                                                pository is numbered 0 and consists of nothing but an empty root directory.

                                                Figure 1.7, “The repository” illustrates a nice way to visualize the repository. Imagine an array of revision numb
                                                stretching from left to right. Each revision number has a filesystem tree hanging below it, and each tree is a “snap
                                                the repository looked after a commit.

•   A differenza di CVS in cui ogni file ha      Figure 1.7. The repository

    una propria revisione (ovvero un
    proprio numero di versione) in SVN
    esiste una Revision che riguarda tutto il
    Repository.
    Quando diciamo (erroneamente!) la
    Revision 5 del file pippo.java, in realtà
    ci stiamo riferendo (correttamente!)
    allo stato del file pippo.java quando il
    repository era alla Revision 5.                                                                                                       1. Elementi base


                                                                                                                                          Marchio/Logo



•   Quindi, ogni volta che effettuiamo un          Global Revision Numbers
                                                                                                               Riduzione minima           Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                   Unlike most version control systems, Subversion's revision numbers apply lato per la base, che consente gli elementi.leggibilità, è
                                                                                                                              sempre proporzione esistente tra tutti not individual files.
                                                                                                                                             entire trees, una buona La dimen-

    commit, viene creata una nuova
                                                                                                                              sione minima
                                                   number selects an entire tree, a particular state of the repository after some committed change. Another way to
                                                                                                                              di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su

                                                   is that revision N represents the state of the repository filesystem after the ad autorizzazione. internet), vanno valutate e
                                                                                                                              oggettistica molto piccola e banner
                                                                                                                              sottoposte Nth commit. When Subversion us

                                                   “revision 5 of foo.c,” they really mean “foo.c as it appears in revision 5.” Notice that in general, revisions
    Revision di tutto il repository.               file do not necessarily differ! Many other version control systems use per-file revision numbers, so this conc
                                                   unusual at first. (Former CVS users might want to see Appendix B, Subversion for CVS Users for more details.


                                                It's important to note that working copies do not always correspond to any single revision in the repository; they
                                                from several different revisions. For example, suppose you check out a working copy from a repository whose mo
                                                is 4:
lately, the youngest revision number for the repository keeps climbin



                                  LA FILOSOFIA
                                                              A middle-ground approach can be taken, too. For example, project
                                                              might have a few repositories with a handful of projects in each repo
                                                              can do so easily, and as new revisions are added to the repository, at
                                                              remotely related to everyone who uses that repository.

                          LA FLESSIBILITÀ DEL REPOSITORY 1yourBecause Subversion usesreposito
                                              After deciding how to organize
                                              within the repositories themselves.
                                                                                  projects with respect to
                                                                                                           regula
                                                              Branching and Merging), the Subversion community recommends th
                                                              “topmost” directory that contains data related in whatever way you see
                                                                                     Lay out your repository to that project—and th
                                                              ing the directory underectory isthedirectory is a directory. Ultimately, y
                                                                                      which a main project development occurs
                                                                                     main development line; and tags, which is a
                                                              named branches of the who work on the projects that live there.
                                                              troyed, but never changed. 3
•   SVN non ha una gestione rigida né di progetto, né                               In the name of full disclosure, though, we'll m
    di branch o tag.                                                                branches directories this:
                                                              For example, your repository might look like live in the root directory o

•   Supponiamo di gestire più progetti all’interno di un      /                       /
                                                                                           trunk/
    unico repository, e supponiamo (come è ovvio) di              calc/
                                                                                              calc/
                                                                     trunk/
    utilizzare le funzionalità di branch, merge, tag, ecc.           tags/
                                                                                              calendar/
                                                                                              spreadsheet/
                                                                     branches/                …
                                                                  calendar/
•   Supponiamo che il path del nostro repository sia /               trunk/
                                                                                           tags/
                                                                                              calc/
    svn/repo.                                                        tags/                    calendar/
                                                                     branches/                spreadsheet/
                                                                  spreadsheet/                …
•   A questo punto, come si vede dalla figura, ci sono                trunk/                branches/
                                                                                              calc/
    almeno 2 possibilità di strutturare i diversi                    tags/
                                                                     branches/                calendar/
    progetti.                                                     …                           spreadsheet/     1. Elementi base
                                                                                              …
                                                                                                               Marchio/Logo

•   In realtà questa è solo una convezione: dal punto         Note that it doesn't matter where in your repository each about such
                                                                                     There's nothing particularly incorrect project ro
    di vista di SVN trunk, tags e branches sono                                             Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo

                                                              place to put each project root is at the root of thatwith manyrespectiv
                                                                                     large, multiproject situations project's users, tho
                                                                                                               sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                                                               sione minima per la base, che consente una buona leggibilità, è


    directory normali e cioè non hanno alcun                  arrange them in groups itory. But the projects-as-branch-siblings appro
                                                                                      inside the repository, perhaps putting projects
                                                                                                               di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                                                               oggettistica molto piccola e banner internet), vanno valutate e
                                                                                                               sottoposte ad autorizzazione.

                                                              maybe just grouping them alphabetically. Such an arrangement issue,
                                                                                     projects as a single entity. That's a social migh
    significato.                                                                       ons—it's easier to ask about (or modify, or migra
                                                                                      path that holds the entire history—past, present, ta
                                                              /
                                                                  utils/
                                                                     calc/            Deciding Where and How
Branching and Merging), the Su
                                                                 “topmost” directory that contain
                                                                 ing the directory under which t
                          LA FILOSOFIA                           named branches of the main dev
                                                                 troyed, but never changed. 3
                  LA FLESSIBILITÀ DEL REPOSITORY 2 your repository mi
                                             For example,

•   In pratica il modo in cui strutturiamo il repository è una
    nostra scelta.                                               /
                                                                     calc/
•   La convenzione che useremo è la prima                               trunk/
                                                                        tags/
•   A che servono 3 cartelle?
                                                                        branches/
    •   Trunk: contiene il flusso di lavoro principale.               calendar/
        Quando iniziamo un progetto si lavora solo sul Trunk.           trunk/
                                                                        tags/
    •   Branch: creiamo un Branch per evitare di lavorare               branches/
        sul Trunk. Ad esempio per la creazione di una Feature        spreadsheet/
        non banale mentre il resto del team deve continuare             trunk/
        a lavorare sul flusso principale. Oppure quando
        stiamo per creare una Release.
                                                                        tags/
                                                                        branches/         1. Elementi base



    •   Tag: Rappresentano uno snapshot di un progetto in            …                    Marchio/Logo



        un determinato progetto. Il tag quindi si crea in un           Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo



        determinato momento e poi non va più modificato!
                                                                                          sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                                          sione minima per la base, che consente una buona leggibilità, è
                                                                                          di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                                          oggettistica molto piccola e banner internet), vanno valutate e



                                                                 Note that it doesn't matter whe
                                                                                          sottoposte ad autorizzazione.




                                                                 place to put each project root is
                                                                 arrange them in groups inside th
                                                                 maybe just grouping them alpha
BRANCH
                          CICLO DI LAVORO NORMALE


•   creo il branch

    •   lavoro sul branch (modifico il mio workspace)

    •   sincronizzo col branch (workspace->branch)

    •   merge del branch col trunk (trunk->branch)

•   test e correzioni

•   sincronizzo col branch (workspace->branch)
                                                                          1. Elementi base


•   switch al trunk (trunk->workspace)                                    Marchio/Logo




•   merge il trunk col branch (branch->trunk)
                                                       Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                          sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                          sione minima per la base, che consente una buona leggibilità, è
                                                                          di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                          oggettistica molto piccola e banner internet), vanno valutate e
                                                                          sottoposte ad autorizzazione.




•   opzionalmente rimuovo il branch dal repository
BRANCH BEST PRACTICES
                                  RELEASE BRANCH


•   Il lavoro quotidiano va fatto sul trunk (nuove funzioni, bugfix, ecc.)

•   Quando si è pronti per una release, si crea un “release 1.0” branch.

•   Eventualmente gli sviluppatori continuano a lavorare sul trunk (per quella che sarà la
    release 2.0), ma chi segue la release 1.0 si occupa di fare il testing e bugfix sul branch.
    Eventuali bugfix si “copiano” tra branch e trunk in entrambe le direzioni

•   Quando il testing è finito, si crea un “release 1.0” tag basata sul branch.
    Il Tag NON VA MAI PIU’ MODIFICATO                                                      1. Elementi base


                                                                                           Marchio/Logo


•   Eventuali bugfix della release 1.0 vanno portati sul branch 1.0 e non sul Tag. Quando
                                                                        Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo




    si saranno apportate numerose modifiche al branch, si potrà creare un Tag “release
                                                                                           sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                                           sione minima per la base, che consente una buona leggibilità, è
                                                                                           di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                                           oggettistica molto piccola e banner internet), vanno valutate e
                                                                                           sottoposte ad autorizzazione.



    1.0.1”.
BRANCH BEST PRACTICES
                      FEATURE BRANCH


• Modifiche rilevanti eseguite da uno o più sviluppatori non
 vanno fatte sul Trunk, ma va creato un feature Branch

• Ladifferenza con i Branch precedenti è che questi non vanno
 supportati all’infinito (con bugfix, nuove release, ecc.) ma
 hanno senso di esistere solo fino alla fine dello sviluppo della
 nuova funzionalità.                                                 1. Elementi base


                                                                     Marchio/Logo




• Ultimato lo sviluppo, si esegue il merge col Trunk e poi è
                                                  Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                     sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                     sione minima per la base, che consente una buona leggibilità, è




 possibile eliminare il Branch.
                                                                     di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                     oggettistica molto piccola e banner internet), vanno valutate e
                                                                     sottoposte ad autorizzazione.
SVN - ECLIPSE
                           L’INSTALLAZIONE




• N.B. Parliamo     di Eclipse 3.x e relativo plugin Subclipse 1.6.x

• L’installazione del plugin può essere fatta direttamente tramite
 Eclipse. Il sito a cui puntare per fare il download del plugin è al
 momento http://subclipse.tigris.org/update_1.6.x.                        1. Elementi base


                                                                          Marchio/Logo



                                                       Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                          sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                          sione minima per la base, che consente una buona leggibilità, è
                                                                          di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                          oggettistica molto piccola e banner internet), vanno valutate e
                                                                          sottoposte ad autorizzazione.
SVN - ECLIPSE
            CONDIVIDERE UN PROPRIO PROGETTO SU SVN
                      (WORKSPACE->SVN)



•   La directory riservata al proprio progetto deve essere già presente su SVN. Se così non
    fosse, vedi sotto

    •   Nella vista SVN Repositories, selezionare il repository, tasto destro New Remote Folder, e
        scrivere il nome della cartella (va bene il nome del progetto)

•   Tasto destro sul progetto da condividere, Team -> Share Project->SVN, scegliere il repository.

•   A questo punto è necessario specificare manualmente il nome della cartella. Tramite il tasto 1. Elementi base



    Select navigare il repository fino alla cartella precedentemente creata e selezionarla.      Marchio/Logo



                                                                             Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo



•   Di default dovremmo otterremo un nome errato del tipo nomeprogetto/nomeprogetto.
                                                                                                sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                                                sione minima per la base, che consente una buona leggibilità, è
                                                                                                di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                                                oggettistica molto piccola e banner internet), vanno valutate e



    Trasformare quindi in modo da ottenere nomeprogetto/trunk e cliccare su Fine.
                                                                                                sottoposte ad autorizzazione.
SVN - ECLIPSE
          PRENDERE UN PROGETTO DAL REPOSITORY
                   (SVN->WORKSPACE)



• Nella vista SVN Repositories, navigare il repository fino a
 trovare la cartella del proprio progetto e all’interno di questa
 la cartella trunk.

• Tasto destro su trunk e poi CheckOut Project. Il progetto
 dovrebbe avere automaticamente il nome “corretto” e NON             1. Elementi base




 trunk.
                                                                     Marchio/Logo



                                                  Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                     sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                     sione minima per la base, che consente una buona leggibilità, è
                                                                     di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                     oggettistica molto piccola e banner internet), vanno valutate e
                                                                     sottoposte ad autorizzazione.
SVN - ECLIPSE
                       FEATURE BRANCH - CREAZIONE


•   Tasto destro sul progetto, Team -> Branch/Tag.

•   Specificare l’url in cui andrà il nostro Branch. L’url, per convenzione, dovrà essere del
    tipo repository/nomeprogetto/branches/nomebranch. Se la cartella branches non è ancora
    stata creata, è necessario flaggare l’opzione Crate any intermediate folders that are
    missing.

•   Nella pagina successiva, specificare il branch da cosa deve essere originato. Tipicamente,
    il branch viene generato dal Trunk, e quindi va bene l’opzione HEAD revision in repository.

•   A questo punto il Branch è stato creato, ma la nostra working copy non è stata         1. Elementi base




    modificata (ovvero è ancora connessa al Trunk). Per iniziare a lavorare sul nuovo BranchMarchio/Logo




    tasto destro sul progetto, Team -> Switch to another Branch/Tag/Revision e selezionare il
                                                                        Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                                           sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                                           sione minima per la base, che consente una buona leggibilità, è



    Branch appena creato (attenzione, potrebbe essere necessario fare un refresh nella vista
                                                                                           di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                                           oggettistica molto piccola e banner internet), vanno valutate e
                                                                                           sottoposte ad autorizzazione.




    SVN Repositories)
SVN - ECLIPSE
                      FEATURE BRANCH - GESTIONE 1


•   Le modifiche fatte alla nostra working copy vanno sincronizzate col Branch
    sul repository con una normale sincronizzazione.

•   Se nel frattempo procede anche il lavoro sul Trunk (ad esempio per
    bugfix), potrebbe essere necessario portare queste modifiche dal Trunk al
    Branch.
    L’operazione è un merge.

    •   Tasto destro sul progetto, Team -> Merge.                             1. Elementi base


                                                                              Marchio/Logo



    •   Scegliere l’opzione Merge a range of revisions.    Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                              sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                              sione minima per la base, che consente una buona leggibilità, è
                                                                              di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                              oggettistica molto piccola e banner internet), vanno valutate e
                                                                              sottoposte ad autorizzazione.




    •   Andare avanti ed effettuare il merge dal Trunk.
SVN - ECLIPSE
                            FEATURE BRANCH - GESTIONE 2


•   Ultimata la feature che stiamo sviluppando, è necessario riportare tutto il lavoro nel Trunk.

    •   Sincronizziamo completamente il nostro Branch

    •   Effettuiamo uno switch al Trunk. Rasto destro sul progetto, Team -> Switch to another Branch/Tag/Revision

    •   Selezionare il Trunk. A questo punto la nostra working copy corrisponde al Trunk.

    •   Facciamo un merge dal Branch al Trunk

        •   Team -> Merge

        •   Scegliere l’opzione Reintegrate a branch.                                                      1. Elementi base


                                                                                                           Marchio/Logo

        •   Selezionare il Branch di cui vogliamo fare il Merge
                                                                                        Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                                                           sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                                                           sione minima per la base, che consente una buona leggibilità, è


    •   A questo punto la nostra working copy corrisponderà al Trunk + il Branch. Con una sincronizzazione
                                                                                                           di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                                                           oggettistica molto piccola e banner internet), vanno valutate e
                                                                                                           sottoposte ad autorizzazione.



        aggiorniamo anche il Trunk sul repository.
SVN - ECLIPSE
                     TAG - CREAZIONE




• Un Tag, a
         conferma di quanto detto prima, va creato
 esattamente come il Branch.

• Naturalmente non ha un ciclo di vita complesso come il
 Branch: una volta creato non va più modificato.                   1. Elementi base


                                                                  Marchio/Logo



                                               Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                  sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                  sione minima per la base, che consente una buona leggibilità, è
                                                                  di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                  oggettistica molto piccola e banner internet), vanno valutate e
                                                                  sottoposte ad autorizzazione.
SVN - JIRA
                    DAL COMMIT ALL’ISSUE


• Jira
     e SVN possono interfacciarsi in modo fornire ai
  programmatori utili informazioni a costo zero!

• Come?   Quando facciamo il commit di uno o più file, se questi
  riguardano un Issue di un progetto su Jira basta indicare nel
  commento al commit i nomi degli issue (ad es. “risolvo i bug
  PROG-13 e PROG-14”).
                                                                     1. Elementi base




• Cosa ottengo? Se vado su Jira e apro il dettaglio dell’issue       Marchio/Logo




  PROG-13 o PROG-14, vedrò tutti i file committati e le eventuali
                                                  Riduzione minima   Il Marchio/Logo può essere ridotto o ingrandito, mantenendo
                                                                     sempre la proporzione esistente tra tutti gli elementi. La dimen-
                                                                     sione minima per la base, che consente una buona leggibilità, è
                                                                     di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su
                                                                     oggettistica molto piccola e banner internet), vanno valutate e
                                                                     sottoposte ad autorizzazione.




  modifiche fatte!

Weitere ähnliche Inhalte

Ähnlich wie SVN, Eclipse e Jira

Ähnlich wie SVN, Eclipse e Jira (10)

GNU/Linux for embedded system
GNU/Linux for embedded systemGNU/Linux for embedded system
GNU/Linux for embedded system
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Introduzione DevOps con Ansible
Introduzione DevOps con AnsibleIntroduzione DevOps con Ansible
Introduzione DevOps con Ansible
 
Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.Profilazione di applicazioni PHP con XHProf.
Profilazione di applicazioni PHP con XHProf.
 
Ha solutions su power i
Ha solutions su power iHa solutions su power i
Ha solutions su power i
 
ORM Java - Hibernate
ORM Java - HibernateORM Java - Hibernate
ORM Java - Hibernate
 
Xpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologiaXpages, cosa ci sarà in questa nuova tecnologia
Xpages, cosa ci sarà in questa nuova tecnologia
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
Emerasoft Git quickstart
Emerasoft Git quickstartEmerasoft Git quickstart
Emerasoft Git quickstart
 
solo un server Domino può, #dd13
solo un server Domino può, #dd13solo un server Domino può, #dd13
solo un server Domino può, #dd13
 

Mehr von Meetweb

Le chiavi del successo di una enterprise 2.0
Le chiavi del successo di una enterprise 2.0Le chiavi del successo di una enterprise 2.0
Le chiavi del successo di una enterprise 2.0
Meetweb
 
Enterprise 2.0 - un nuovo modo di pensare l'azienda
Enterprise 2.0 - un nuovo modo di pensare l'aziendaEnterprise 2.0 - un nuovo modo di pensare l'azienda
Enterprise 2.0 - un nuovo modo di pensare l'azienda
Meetweb
 

Mehr von Meetweb (11)

Design
DesignDesign
Design
 
Case history community | Angeli per Viaggiatori
Case history community | Angeli per ViaggiatoriCase history community | Angeli per Viaggiatori
Case history community | Angeli per Viaggiatori
 
Web application | case history
Web application | case historyWeb application | case history
Web application | case history
 
Guida al Direct Email Marketing
Guida al Direct Email MarketingGuida al Direct Email Marketing
Guida al Direct Email Marketing
 
Web application | Cartelle cliniche digitali
Web application | Cartelle cliniche digitaliWeb application | Cartelle cliniche digitali
Web application | Cartelle cliniche digitali
 
Il WEB MARKETING secondo Meetweb
Il WEB MARKETING secondo MeetwebIl WEB MARKETING secondo Meetweb
Il WEB MARKETING secondo Meetweb
 
Le chiavi del successo di una enterprise 2.0
Le chiavi del successo di una enterprise 2.0Le chiavi del successo di una enterprise 2.0
Le chiavi del successo di una enterprise 2.0
 
Enterprise 2.0 - un nuovo modo di pensare l'azienda
Enterprise 2.0 - un nuovo modo di pensare l'aziendaEnterprise 2.0 - un nuovo modo di pensare l'azienda
Enterprise 2.0 - un nuovo modo di pensare l'azienda
 
Web Marketing | Cosa puoi fare per aumentare le visite del tuo sito?
Web Marketing | Cosa puoi fare per aumentare le visite del tuo sito?Web Marketing | Cosa puoi fare per aumentare le visite del tuo sito?
Web Marketing | Cosa puoi fare per aumentare le visite del tuo sito?
 
Social Travel | il progetto Angeli per Viaggiatori
Social Travel | il progetto Angeli per ViaggiatoriSocial Travel | il progetto Angeli per Viaggiatori
Social Travel | il progetto Angeli per Viaggiatori
 
Meetweb | Brochure Web Agency
Meetweb | Brochure Web Agency Meetweb | Brochure Web Agency
Meetweb | Brochure Web Agency
 

SVN, Eclipse e Jira

  • 1. SVN... ...ed Eclipse... ...e Jira 1. Elementi base Marchio/Logo Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è vittorio avallone di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione.
  • 2. LA FILOSOFIA Fundamental Concepts REVISIONEach time the repository accepts a commit, this creates a new state of the filesystem tree, called a revision. Eac signed a unique natural number, one greater than the number of the previous revision. The initial revision of a fr pository is numbered 0 and consists of nothing but an empty root directory. Figure 1.7, “The repository” illustrates a nice way to visualize the repository. Imagine an array of revision numb stretching from left to right. Each revision number has a filesystem tree hanging below it, and each tree is a “snap the repository looked after a commit. • A differenza di CVS in cui ogni file ha Figure 1.7. The repository una propria revisione (ovvero un proprio numero di versione) in SVN esiste una Revision che riguarda tutto il Repository. Quando diciamo (erroneamente!) la Revision 5 del file pippo.java, in realtà ci stiamo riferendo (correttamente!) allo stato del file pippo.java quando il repository era alla Revision 5. 1. Elementi base Marchio/Logo • Quindi, ogni volta che effettuiamo un Global Revision Numbers Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo Unlike most version control systems, Subversion's revision numbers apply lato per la base, che consente gli elementi.leggibilità, è sempre proporzione esistente tra tutti not individual files. entire trees, una buona La dimen- commit, viene creata una nuova sione minima number selects an entire tree, a particular state of the repository after some committed change. Another way to di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su is that revision N represents the state of the repository filesystem after the ad autorizzazione. internet), vanno valutate e oggettistica molto piccola e banner sottoposte Nth commit. When Subversion us “revision 5 of foo.c,” they really mean “foo.c as it appears in revision 5.” Notice that in general, revisions Revision di tutto il repository. file do not necessarily differ! Many other version control systems use per-file revision numbers, so this conc unusual at first. (Former CVS users might want to see Appendix B, Subversion for CVS Users for more details. It's important to note that working copies do not always correspond to any single revision in the repository; they from several different revisions. For example, suppose you check out a working copy from a repository whose mo is 4:
  • 3. lately, the youngest revision number for the repository keeps climbin LA FILOSOFIA A middle-ground approach can be taken, too. For example, project might have a few repositories with a handful of projects in each repo can do so easily, and as new revisions are added to the repository, at remotely related to everyone who uses that repository. LA FLESSIBILITÀ DEL REPOSITORY 1yourBecause Subversion usesreposito After deciding how to organize within the repositories themselves. projects with respect to regula Branching and Merging), the Subversion community recommends th “topmost” directory that contains data related in whatever way you see Lay out your repository to that project—and th ing the directory underectory isthedirectory is a directory. Ultimately, y which a main project development occurs main development line; and tags, which is a named branches of the who work on the projects that live there. troyed, but never changed. 3 • SVN non ha una gestione rigida né di progetto, né In the name of full disclosure, though, we'll m di branch o tag. branches directories this: For example, your repository might look like live in the root directory o • Supponiamo di gestire più progetti all’interno di un / / trunk/ unico repository, e supponiamo (come è ovvio) di calc/ calc/ trunk/ utilizzare le funzionalità di branch, merge, tag, ecc. tags/ calendar/ spreadsheet/ branches/ … calendar/ • Supponiamo che il path del nostro repository sia / trunk/ tags/ calc/ svn/repo. tags/ calendar/ branches/ spreadsheet/ spreadsheet/ … • A questo punto, come si vede dalla figura, ci sono trunk/ branches/ calc/ almeno 2 possibilità di strutturare i diversi tags/ branches/ calendar/ progetti. … spreadsheet/ 1. Elementi base … Marchio/Logo • In realtà questa è solo una convezione: dal punto Note that it doesn't matter where in your repository each about such There's nothing particularly incorrect project ro di vista di SVN trunk, tags e branches sono Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo place to put each project root is at the root of thatwith manyrespectiv large, multiproject situations project's users, tho sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è directory normali e cioè non hanno alcun arrange them in groups itory. But the projects-as-branch-siblings appro inside the repository, perhaps putting projects di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione. maybe just grouping them alphabetically. Such an arrangement issue, projects as a single entity. That's a social migh significato. ons—it's easier to ask about (or modify, or migra path that holds the entire history—past, present, ta / utils/ calc/ Deciding Where and How
  • 4. Branching and Merging), the Su “topmost” directory that contain ing the directory under which t LA FILOSOFIA named branches of the main dev troyed, but never changed. 3 LA FLESSIBILITÀ DEL REPOSITORY 2 your repository mi For example, • In pratica il modo in cui strutturiamo il repository è una nostra scelta. / calc/ • La convenzione che useremo è la prima trunk/ tags/ • A che servono 3 cartelle? branches/ • Trunk: contiene il flusso di lavoro principale. calendar/ Quando iniziamo un progetto si lavora solo sul Trunk. trunk/ tags/ • Branch: creiamo un Branch per evitare di lavorare branches/ sul Trunk. Ad esempio per la creazione di una Feature spreadsheet/ non banale mentre il resto del team deve continuare trunk/ a lavorare sul flusso principale. Oppure quando stiamo per creare una Release. tags/ branches/ 1. Elementi base • Tag: Rappresentano uno snapshot di un progetto in … Marchio/Logo un determinato progetto. Il tag quindi si crea in un Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo determinato momento e poi non va più modificato! sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e Note that it doesn't matter whe sottoposte ad autorizzazione. place to put each project root is arrange them in groups inside th maybe just grouping them alpha
  • 5. BRANCH CICLO DI LAVORO NORMALE • creo il branch • lavoro sul branch (modifico il mio workspace) • sincronizzo col branch (workspace->branch) • merge del branch col trunk (trunk->branch) • test e correzioni • sincronizzo col branch (workspace->branch) 1. Elementi base • switch al trunk (trunk->workspace) Marchio/Logo • merge il trunk col branch (branch->trunk) Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione. • opzionalmente rimuovo il branch dal repository
  • 6. BRANCH BEST PRACTICES RELEASE BRANCH • Il lavoro quotidiano va fatto sul trunk (nuove funzioni, bugfix, ecc.) • Quando si è pronti per una release, si crea un “release 1.0” branch. • Eventualmente gli sviluppatori continuano a lavorare sul trunk (per quella che sarà la release 2.0), ma chi segue la release 1.0 si occupa di fare il testing e bugfix sul branch. Eventuali bugfix si “copiano” tra branch e trunk in entrambe le direzioni • Quando il testing è finito, si crea un “release 1.0” tag basata sul branch. Il Tag NON VA MAI PIU’ MODIFICATO 1. Elementi base Marchio/Logo • Eventuali bugfix della release 1.0 vanno portati sul branch 1.0 e non sul Tag. Quando Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo si saranno apportate numerose modifiche al branch, si potrà creare un Tag “release sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione. 1.0.1”.
  • 7. BRANCH BEST PRACTICES FEATURE BRANCH • Modifiche rilevanti eseguite da uno o più sviluppatori non vanno fatte sul Trunk, ma va creato un feature Branch • Ladifferenza con i Branch precedenti è che questi non vanno supportati all’infinito (con bugfix, nuove release, ecc.) ma hanno senso di esistere solo fino alla fine dello sviluppo della nuova funzionalità. 1. Elementi base Marchio/Logo • Ultimato lo sviluppo, si esegue il merge col Trunk e poi è Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è possibile eliminare il Branch. di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione.
  • 8. SVN - ECLIPSE L’INSTALLAZIONE • N.B. Parliamo di Eclipse 3.x e relativo plugin Subclipse 1.6.x • L’installazione del plugin può essere fatta direttamente tramite Eclipse. Il sito a cui puntare per fare il download del plugin è al momento http://subclipse.tigris.org/update_1.6.x. 1. Elementi base Marchio/Logo Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione.
  • 9. SVN - ECLIPSE CONDIVIDERE UN PROPRIO PROGETTO SU SVN (WORKSPACE->SVN) • La directory riservata al proprio progetto deve essere già presente su SVN. Se così non fosse, vedi sotto • Nella vista SVN Repositories, selezionare il repository, tasto destro New Remote Folder, e scrivere il nome della cartella (va bene il nome del progetto) • Tasto destro sul progetto da condividere, Team -> Share Project->SVN, scegliere il repository. • A questo punto è necessario specificare manualmente il nome della cartella. Tramite il tasto 1. Elementi base Select navigare il repository fino alla cartella precedentemente creata e selezionarla. Marchio/Logo Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo • Di default dovremmo otterremo un nome errato del tipo nomeprogetto/nomeprogetto. sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e Trasformare quindi in modo da ottenere nomeprogetto/trunk e cliccare su Fine. sottoposte ad autorizzazione.
  • 10. SVN - ECLIPSE PRENDERE UN PROGETTO DAL REPOSITORY (SVN->WORKSPACE) • Nella vista SVN Repositories, navigare il repository fino a trovare la cartella del proprio progetto e all’interno di questa la cartella trunk. • Tasto destro su trunk e poi CheckOut Project. Il progetto dovrebbe avere automaticamente il nome “corretto” e NON 1. Elementi base trunk. Marchio/Logo Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione.
  • 11. SVN - ECLIPSE FEATURE BRANCH - CREAZIONE • Tasto destro sul progetto, Team -> Branch/Tag. • Specificare l’url in cui andrà il nostro Branch. L’url, per convenzione, dovrà essere del tipo repository/nomeprogetto/branches/nomebranch. Se la cartella branches non è ancora stata creata, è necessario flaggare l’opzione Crate any intermediate folders that are missing. • Nella pagina successiva, specificare il branch da cosa deve essere originato. Tipicamente, il branch viene generato dal Trunk, e quindi va bene l’opzione HEAD revision in repository. • A questo punto il Branch è stato creato, ma la nostra working copy non è stata 1. Elementi base modificata (ovvero è ancora connessa al Trunk). Per iniziare a lavorare sul nuovo BranchMarchio/Logo tasto destro sul progetto, Team -> Switch to another Branch/Tag/Revision e selezionare il Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è Branch appena creato (attenzione, potrebbe essere necessario fare un refresh nella vista di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione. SVN Repositories)
  • 12. SVN - ECLIPSE FEATURE BRANCH - GESTIONE 1 • Le modifiche fatte alla nostra working copy vanno sincronizzate col Branch sul repository con una normale sincronizzazione. • Se nel frattempo procede anche il lavoro sul Trunk (ad esempio per bugfix), potrebbe essere necessario portare queste modifiche dal Trunk al Branch. L’operazione è un merge. • Tasto destro sul progetto, Team -> Merge. 1. Elementi base Marchio/Logo • Scegliere l’opzione Merge a range of revisions. Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione. • Andare avanti ed effettuare il merge dal Trunk.
  • 13. SVN - ECLIPSE FEATURE BRANCH - GESTIONE 2 • Ultimata la feature che stiamo sviluppando, è necessario riportare tutto il lavoro nel Trunk. • Sincronizziamo completamente il nostro Branch • Effettuiamo uno switch al Trunk. Rasto destro sul progetto, Team -> Switch to another Branch/Tag/Revision • Selezionare il Trunk. A questo punto la nostra working copy corrisponde al Trunk. • Facciamo un merge dal Branch al Trunk • Team -> Merge • Scegliere l’opzione Reintegrate a branch. 1. Elementi base Marchio/Logo • Selezionare il Branch di cui vogliamo fare il Merge Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è • A questo punto la nostra working copy corrisponderà al Trunk + il Branch. Con una sincronizzazione di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione. aggiorniamo anche il Trunk sul repository.
  • 14. SVN - ECLIPSE TAG - CREAZIONE • Un Tag, a conferma di quanto detto prima, va creato esattamente come il Branch. • Naturalmente non ha un ciclo di vita complesso come il Branch: una volta creato non va più modificato. 1. Elementi base Marchio/Logo Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione.
  • 15. SVN - JIRA DAL COMMIT ALL’ISSUE • Jira e SVN possono interfacciarsi in modo fornire ai programmatori utili informazioni a costo zero! • Come? Quando facciamo il commit di uno o più file, se questi riguardano un Issue di un progetto su Jira basta indicare nel commento al commit i nomi degli issue (ad es. “risolvo i bug PROG-13 e PROG-14”). 1. Elementi base • Cosa ottengo? Se vado su Jira e apro il dettaglio dell’issue Marchio/Logo PROG-13 o PROG-14, vedrò tutti i file committati e le eventuali Riduzione minima Il Marchio/Logo può essere ridotto o ingrandito, mantenendo sempre la proporzione esistente tra tutti gli elementi. La dimen- sione minima per la base, che consente una buona leggibilità, è di 19 mm. Riduzioni minori, dovute a motivi tecnici (ad es. su oggettistica molto piccola e banner internet), vanno valutate e sottoposte ad autorizzazione. modifiche fatte!

Hinweis der Redaktion