Your SlideShare is downloading. ×
0
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
SVN
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SVN

1,055

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,055
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
40
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

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

    ×