Hai mai sentito pronunciare questo termine da qualche sviluppatore o l’hai letto online in qualche articolo super tecnico?!

Il Repository è un software che permette di conservare una considerevole quantità di codice e file, assegnando loro un numero univoco che ne identifica diverse versioni. Immagina un grosso deposito centrale virtuale in cui puoi archiviare in formato digitale i tuoi dati con la possibilità di classificarli tramite metadati, proteggerli, elaborarli o duplicarli.

Per questo motivo i repository risultano essere fedeli alleati degli sviluppatori, proprio perché consentono di apportare e gestire modifiche al codice sorgente di un’applicazione conservando sempre una copia della versione precedente.

ragazza al computer utilizza i repository

Come funziona

Mediante l’uso dei repository è possibile andare a lavorare sul codice di programma di un software senza compromettere il codice visibile online, una sorta di “copia”.

I principali comandi da tenere a mente sono:

  1. pull => recupera la versione più recente del progetto;
  2. push => prepara le modifiche per l’invio;
  3. commit => invia una nuova versione dei file;
  4. merge => combina versioni differenti di uno stesso file fatto da più persone in fasi diverse o in caso di mancata pull;
  5. deploy => caricamento delle modifiche sul server;
  6. stash => per salvare in bozza le modifiche effettuate localmente e tornare ad una directory di lavoro pulita;
  7. clean => per rimuovere eventuali bozze di modifiche salvate.

Il progetto può essere organizzato in più branch. Solitamente si prevede un branch di sviluppo per gestire nuove richieste e funzionalità in fase di test, ed uno di produzione per la versione pubblica del progetto.

Lavoro in team

Il repository rende inoltre molto più semplice la collaborazione sullo stesso progetto perché è possibile modificare simultaneamente i file da remoto grazie alla gestione centralizzata delle informazioni.

In questo modo i diversi sviluppatori che partecipano ad uno stesso progetto potranno condividere il proprio lavoro, cartelle, file di testo e altri tipi di documenti, con i colleghi.

Le varie modifiche apportate al codice vengono tracciate e monitorate, durante tutta la sua fase di sviluppo, dalla progettazione alla sua dimissione.

Un valore aggiunto sta nel confronto automatico tra i file precedenti ed i nuovi, con report visualizzabile prima di qualsiasi nuovo commit.

Bitbucket e Github

Sono i due servizi di repository di codice più utilizzati in circolazione, entrambe piattaforme che operando in modo simile forniscono directory per i propri file sia pubblici che privati.

BITBUCKET
Iniziamo occupandoci di Bitbucket, un servizio web-based di repository di controllo versioni di Git scritto in Python, basato sul cloud di Atlassian.

Nell’ultimo periodo questa piattaforma è diventata piuttosto popolare soprattutto grazie alla sua struttura dei prezzi flessibile che la rende unica nel suo genere.

Bitbucket infatti, sebbene offra funzionalità standard, ha il vantaggio di mettere a disposizione gratuitamente repository privati e pubblici illimitati.

Detenendo il miglior rapporto qualità-prezzo, rappresenta una soluzione economica sulla quale dovresti puntare se sei un professionista o un’azienda alla ricerca di un servizio di hosting sicuro per lo sviluppo del tuo codice privato e proprietario, soprattutto qualora non intendessi renderlo pubblico nella sua interezza.

GITHUB
Arriviamo adesso a parlare di GitHub, la piattaforma di sviluppo più popolare e usata dagli sviluppatori di tutto il mondo. Si tratta di un servizio di repository open source, scritto in Ruby e Erlang, che si concentra sul codice pubblico.

Potrai ospitare e rivedere il codice, sviluppare software e in ultimo gestire i tuoi progetti di sviluppo. Fornisce illimitati repository pubblici gratuiti ed è indicato sia per progetti di sviluppo personali che di business.

Essendo basato su cloud, consente agli sviluppatori di archiviare e lavorare su codici di progetto in modo efficiente ed organizzato.

Attraverso le sue funzionalità aggiuntive, volte a migliorare la collaborazione tra gli sviluppatori, potrai partecipare alle discussioni mettendo il tuo sapere e la tua conoscenza, nell’ambito di progetti pubblici su GitHub, a disposizione dei tuoi colleghi.

sviluppatore al computer modifica codice sorgente

Monorepo e Multirepo

In che modo vengono ospitati e gestiti i codebase tramite Git?

Attraverso due approcci:

  • Monorepo, si avvale di un singolo repository per ospitare tutto il codice per le molteplici librerie o servizi che compongono i progetti di un’azienda o anche l’intero codice della società stessa.
  • Multirepo, divide il codice in unità, ossia utilizza diversi repository indipendenti per ospitare le molteplici librerie o servizi di un progetto sviluppato da un’azienda.

La differenza tra i due è piuttosto intuitiva, se sceglierai di avvalerti dell’approccio monorepo i membri dei diversi team dovranno muoversi all’unisono prendendo decisioni insieme prima di metterle in pratica. Diversamente per quanto riguarda il multirepo i diversi team potranno muoversi in autonomia, apportando modifiche senza la necessità di confrontarsi in anticipo.

Con questo articolo speriamo di averti chiarito le idee per quanto riguarda i Repository e il loro utilizzo. Una volta identificato l’uso che devi farne ti resta solo da scegliere l’opzione che più fa al caso tuo!