Gambas3 & SubVersion

Da Gambas-it.org - Wikipedia.

Con la nuova versione Gambas3 è stata introdotta una nuova struttura dell'albero delle directory per i progetti, andando ad integrare quella presente nella precedente versione 2.

Durante la creazione di un nuovo progetto, o tramite conversione di progetti creati nella precedente release, e dopo aver inserito i parametri di base del nostro progetto, l'ambiente provvede automaticamente alla definizione nella path da noi selezionata di un struttura, composta da alcune directory visibili (es. la cartella home del progetto), e alcune altre sottodiretory, mediamente non direttamente visibili (ovvero nascoste tramite il carattere punto posto all'inizio del nome della cartella).

Di seguito la struttura base delle cartelle creata da Gambas3:

 progetto         (directory)
   .action        (directory)
   .gambas        (directory)
   .hidden        (directory)
   .lang          (directory)
   .src           (directory)
   .directory     (file)
   .icon.png      (file)
   .project       (file)
   .settings      (file)
   .startup       (file)


Descrizione delle cartelle:

.action

Questa cartella contiene la definizione delle Action presenti nel nostro progetto. Quando noi inseriamo una Action (che prevede l'associazione della proprietà Group di un controllo grafico ad una particolare etichetta, o gruppo), l'ambiente provvede a creare un file, con lo stesso nome della classe usata, con estensione ".action". Il contenuto dei file è similare, come struttura, al contenuto di un file ".form", dove vengono definite le proprietà della Action rispetto all'oggetto.


.gambas

Questa cartella viene usata da Gambas per la compilazione dei vari moduli e oggetti componenti il nostro progetto. I file contenuti in questa cartella sono dei binari, utilizzati solo da Gambas.


.hidden

Questa cartella è un pò misteriosa, in quanto non viene utilizzata da Gambas (almeno per quando ne sò), nè viene inglobata nel file eseguibile finale del progetto. In fase di sviluppo, è possibile comunque utilizzarla come sorgente di risorse per il nostro progetto, ma è da ricordarsi che il suo contenuto non sarà più disponibile una volta che verrà distribuito il nostro eseguibile.


.lang

Questa cartella contiene i file di traduzione, ove previsto, del nostro progetto. Oltre ai vari ".po" e ".mo" compilati, saranno presenti anche altri file, che contengono le stesse traduzioni, divise per modulo/classe, e utilizzate da Gambas per la creazione del file di traduzione finale.


.src

Questa è la cartella che conterrà i nostri file di progetto (classi, moduli, form e quant'altro).


.directory

Questo file semplicemente contiene la definizione dell'icona della cartella di progetto, che viene visualizzata nel File Manager del nostro Linux.


.icon.png

Questo file contiene l'icona principale del nostro progetto, così come definita nella finestra dei parametri del progetto stesso. Questa icona verrà poi inglobata nel file eseguibile finale.


.project

Questo file contiene le impostazioni di base del nostro progetto (es. nome, librerie, ecc.). Il file viene modificato direttamente dall'ide di Gambas, agendo sulle impostazioni di progetto.


.settings

Questo file contiene l'immagine dello stato dell'ambiente di sviluppo, relativo al nostro progetto, come ad esempio le dimensioni di ogni form o dialog, oppure la posizione del cursore durante l'editing del codice. In pratica, serve a Gambas per poter riprendere il lavoro dove l'avevamo lasciato.


.startup

Similarmente a ".project", questo file contiene alcune impostazioni relative al progetto, poste in modo particolare per essere utilizzate da Gambas.


SubVersion:

Il supporto per SubVersione è integrato in Gambas3, per cui è previsto l'aggiornamento di un repository di versioning, utile per poter mantenere la storia delle modifiche fatte al nostro progetto. In realtà, Gambas non prevede la creazione diretta del repository, ma solo gli aggiornamenti, per cui è necessario effettuare alcuni controlli e operazioni preliminari, prima di attivare in modo completo l'integrazione con SubVersion. Nella creazione del nostro progetto, nella finestra di dialogo che l'ide ci mostra per l'inserimento dei parametri base dell'applicazione, ci verrà chiesto il tipo di applicazione da creare, in modo da poter impostare le librerie necessarie di appoggio. Di solito questo è l'approccio base per la creazione di un qualsiasi progetto, ma in questo caso l'integrazione con SubVersion non verrà attivata. Per poter attivare SubVersion, dovremo effettuare alcune operazioni esterne a Gambas, ovvero:

1) creare un repository per il nostro progetto (es. svnadmin --create <progetto>) 2) importare il nostro progetto nel repository appena creato 3) eliminare la cartella del progetto 4) esportare il progetto dal repository, che creerà nuovamente la struttura, ma implementando i necessari agganci al repository

Una volta riavviato Gambas3, e riaperto il progetto, aprendo la finestra di dialogo del progetto, nella stessa apparirà un'ulteriore tab, relativo al repository SubVersion. Da questo punto in poi, ogni modifica apportata al nostro progetto verrà tracciata, e moemorizzata in maniera storica, confermando le modifiche tramite questo nuovo tab.

Nel caso si preveda una conversione, o semplicemente l'apertura, di un progetto esistente, cui è già presente l'aggancio con un repository SubVersion, il tutto verrà catturato automaticamente da Gambas3. Nel caso venga effettuata una conversione da un progetto sviluppato con una precedente versione di Gambas, si dovrà procedere manualmente all'aggiunta di alcune cartelle e file, effettuando un controllo tra quelle già versionate e quelle nuove. Questo sarà sicuramente vero nel caso di quei file e cartelle, appartenenti alla nuova struttura di Gambas3, come ad esempio ".hidden" o ".action".

Come ultima possibilità, Gambas3 prevede anche l'importazione di un progetto già collegato ad un repository SubVersion. Nella finestra di dialogo del progetto, è presente l'opzione che lo prevede che, se selezionata, evita all'utente di reimpostare i parametri base del progetto, caricandolo direttamente nell'ide.


Sommario:

Per poter usufruire completamente dell'integrazione con SubVersion, è necessario che tutte le cartelle e i file presenti nel nostro progetto vengano inserite nel repository, ad eccezione di:

1) i file presenti nella cartella ".gambas" 2) i file presenti nella cartella ".lang", tranne che i file con estensione ".po" e ".mo"

Come già spiegato in precedenza, alcuni file contenuti nelle cartelle di cui sopra, non sono utili al mantenimento del versioning, anzi, potrebbero essere causa di problemi con il repository, oltre allo spreco di spazio dato che sono file che vengono continuamente ricostruiti da Gambas durante le compilazioni.