Subclipse Version Control in Flash Builder: installazione e setup

FoldersSalva con Nome” è la più semplice ed usata forma di Version Control – ovvero la gestione delle revisioni di un documento. Tipo:

  • BlogPost.txt
  • BlogPost_V1.txt
  • BlogPost_V2_Links.txt
  • BlogPost_Final.txt
  • BlogPost_Final_OK.txt

Eccetera. Siccome lo screenshot a destra è una veritiera rappresentazione della mia cartella di sviluppo per ALCE, ho deciso che è giunta l’ora di adottare una qualche forma di controllo versione, ovvero: Subclipse (un plugin per Flash Builder 4.6 che gestisce il supporto a Subversion).

Sto ancora imparando: in questo post ho raccolto una serie di informazioni che spero possano servire da riferimento per l’installazione ed il setup di un repository locale (cioè non su server) a chi, come me, sta giusto cominciando a mettere un po’ di ordine nel caos.

Subversion e Subclipse

Se l’argomento ti è nuovo, ti consiglio di leggere questa chiarissima Visual Guide to Version Control System (VCS). Spiega tutti i concetti del version control e la sua terminologia.

In pratica, nel paradigma centralizzato (opposto a quello distribuito), definisci un Repository: una cartella (locale o su un server remoto) che contiene una copia di riferimento del tuo codice. Puoi fare Check Out (scaricarlo) sulla tua macchina per sviluppare; poi Sincronizzi col Repository e infine fai Check In (anche detto Commit), ovvero carichi nel repository la tua versione. Il sistema traccia i cambiamenti (come somma di differenze), definisce le revisioni, funge da backup; in più, puoi ramificare lo sviluppo (Branch) ovvero duplicare la versione principale del codice (Trunk) per sperimentare nuove implementazioni – per poi eventualmente riunirla (Merge). Più una lunga serie di altre funzioni il cui senso ancora mi sfugge.

Subversion è un comune sistema di Version Control, conosciuto anche come svn (il tool a riga di comando). Se vuoi sentire parlar male di Subversion, Linus Torvalds è un’ottima fonte. Se ti stai chiedendo perché scegliere Subclipse e non Subversive come plugin per Eclipse (e quindi Flash Builder), vale la pena leggere questa Q&A.

Installazione

In Flash Builder (io uso la versione 4.6 ma sono propenso a credere che valga anche per la 4.5 e 4.0), vai al menu:

Help – Eclipse Marketplace

E nella finestra seguente cerca “Subclipse”:

Eclipse Marketplace

Clicca il pulsante Install e riavvia Flash Builder. Il che pare sufficiente per considerare Subclipse installato.

Setup di un Repository locale

Molti dei tutorial che ho letto a questo punto ti mostrano come creare un repo (conosciamo il gergo, eh? ;-)) su un server remoto. Peccato che a me non serva, né ho la più pallida idea di come impostare un server remoto. Tutto quello che mi occorre è una cartella sul mio disco. Dopo un paio di tentativi finiti male (uno dei quali basato su MAMP), ho capito che il processo è:

  1. Identificare una cartella e dire a svn (non Subclipse: svn, il tool a riga di comando) di creare un repository.

  2. Puntare Subclipse a quello.

Il che ha senso – ma senza queste informazioni ti trovi a fissare Flash Builder (come ho fatto io) pensando: e ora che faccio?

Creare un repository

Subclipse non può creare un repository. Ma non è un grosso problema.

Poniamo di volere la cartella “repo” (che conterrà i repository) nella Home – userò prima Finder per creare “repo” come una cartella qualsiasi. Poi, nel Terminale:

Terminal

Occorrono un paio di comandi:

cd repo

Il primo entra nella cartella “repo” appena creata

svnadmin create ALCE_repo

Il secondo dice a svn di creare, nella cartella “repo”, un vero repository chiamato “ALCE_repo” (che conterrà il mio progetto ALCE).

Repository structure

Questo è un repository

Infatti “repo” conterrà i vari repository, uno per ogni progetto che voglio monitorare. Nello screenshot puoi vedere che un repository è ben più di una semplice cartella.

Riempire un repository

Abbiamo un repo nuovo di zecca: il secondo passo è riempirlo con un progetto di Flash Builder (una CS extension, o qualsiasi altro codice Flash/AIR).

SVN Repository Exploring Perspective

SVN Perspective

In Flash Builder, dal menu Window – Open Perspective – Other… scegli SVN Repository Exploring.

Questa vista ti da accesso al pannello SVN Repositories, che dovrebbe essere vuoto. Per comunicare a Flash Builder l’esistenza del repository, fai click destro dentro al pannello (nello spazio bianco) e seleziona New – Repository Location… e quindi nella finestra seguente digita:

file:///Users/[your user]/repo/ALCE_repo

Add SVN Repository

Nota bene che “file:///” ha tre slash.

Created Repository

Una nuova location dovrebbe essere creata, come vedi nello screenshot a destra – ovvero Flash Builder ora sa che esiste un repository.

Share ProjectIl prossimo ed ultimo passo è di collegare un progetto a questo repo. I comandi Subclipse nel Flash Builder IDE stanno nel menu Team. Per accedervi, torna alla vista standard (Flex o Extension Builder), e nel pannello Package Explorer fai click destro sul progetto che ti interessa aggiungere al repository, quindi seleziona:

Team – Share

Nella finestra seguente scegli SVN come tipo di repository:

Share Project - SVN

quindi Use existing repository location:

Share Project - select repository

ed infine Use project name as folder name:

Share Project - select name

Non ti preoccupare se la Console riporterà un messaggio di errore:

Filesystem has no item svn: URL 'file:///Users/Davide/repo/ALCE_repo/myTest' non-existent in that revision

Puoi tranquillamente ignorarlo (il comando successivo, mkdir, creerà la cartella myTest mancante). Secondo la documentazione, a questo punto il progetto sarà committed – ovvero: i files copiati nel repository.

CommitPer ragioni che mi sfuggono, a me questo non succede, devo farlo manualmente: click destro sul progetto (myTest in questo caso, vedi lo screenshot sulla destra) nel pannello Package Explorer, scegliendo:

Team – Commit

Nella finestra che segue, puoi selezionare quali risorse copiare nel repository – aggiungendo anche un commento:

Commit and comment

E’ tutto! Se il processo è andato a buon fine, la Console dovrebbe contenere alcuni messaggi di log.

Repository contentInoltre, vai nel pannello SVN repositories e clicca sul pulsante di refresh (le due frecce gialle) per aggiornare la vista: il repository ora contiene la cartella myTest e tutti i file del progetto.

Adesso puoi cominciare ad usare il Version Control System – scrivi il tuo codice e fai Check in (Commit) ogni volta che desideri definire una nuova revisione – che poi troverai nel pannello History.

Spero che queste informazioni ti possano far risparmiare un po’ di tempo! Nel prossimo post della serie, mi soffermerò più approfonditamente (ehi, sto ancora imparando!) su Tag, Branches, revisioni, ecc. Quindi… a presto!

Links

Cercando di capire come funziona Subclipse e un VCS, ho letto parecchio materiale – parte del quale può tornare utile anche a te: