Tracciamento versione con Subversion (SVN) per principianti

Sommario:

Tracciamento versione con Subversion (SVN) per principianti
Tracciamento versione con Subversion (SVN) per principianti
Anonim
Hai mai desiderato lavorare su un progetto con la possibilità di tenere traccia delle tue modifiche e di ripristinarle? How-To Geek spiega come utilizzare il popolare sistema di tracciamento delle versioni, Subversion (a.k.a SVN).
Hai mai desiderato lavorare su un progetto con la possibilità di tenere traccia delle tue modifiche e di ripristinarle? How-To Geek spiega come utilizzare il popolare sistema di tracciamento delle versioni, Subversion (a.k.a SVN).

Immagine chiaramente ambigua

Prelog

Questa guida mirerà a darti la possibilità di usare il client subversion in generale e, se ne hai uno, sul tuo router * DD-WRT. Questa guida non è affatto una guida definitiva per Subversion e molte informazioni possono essere trovate sul Subversion Red Book. Questa guida ha il solo scopo di darti la risposta in forma abbreviata alle domande più elementari.

Panoramica

Potrebbero esserci numerosi motivi per cui si vorrebbe poter "prelevare" l'ultimo codice per un progetto software che utilizza un sistema di controllo delle versioni. In questo modo è possibile trarre vantaggio dalle ultime modifiche ancora non pubblicate, aiutare con i test e persino lo sviluppo. In questa guida, esamineremo la terminologia SVN di base, mostreremo come installare il client SVN su Linux, Windows e se avete un router DD-WRT abilitato OPKG. Abbiamo anche incluso un esempio di un progetto che puoi verificare e utilizzare per il router in questione.

Cos'è Subversion?

Subversion non è affatto l'unico sistema di controllo della versione esistente e le alternative includono Git (creato da Linus Torvalds il fondatore del kernel Linux), Mercurial e PerForce per citarne alcuni. Detto questo, è uno di quelli gratuiti, è maturo ed è ampiamente utilizzato in tutto il mondo.

Out of the Subversion "Red Book":

Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”

Nota: questo libro è l'ultima raccolta di conoscenze sulla sovversione e si consiglia di farvi riferimento su tutti gli argomenti relativi a Subversion.

Che cos'è il controllo delle versioni?

Il controllo delle versioni è un processo in cui viene salvato lo stato di un progetto in un momento specifico. Questo tipo di procedura viene spesso utilizzata per gestire lo sviluppo del software, in modo che il lavoro possa continuare a migliorare il progetto o aggiungere funzionalità, pur essendo in grado di tenere traccia di ciò che è cambiato dall'ultimo "punto di salvataggio" complessivo. Per elaborare questo tipo di procedura può essere utile per una singola persona, ma ancora di più per un gruppo di persone, tutte che lavorano sullo stesso progetto. Questo perché, di solito, quando si lavora a un progetto come un gruppo, c'è una distribuzione delle responsabilità e persone diverse cambiano diversi aspetti del progetto. Senza un meccanismo di versioning, sarebbe molto difficile mantenere tutti in sincronia con gli ultimi cambiamenti di lavoro da tutti gli altri.

Terminologia

Il repository Il repository è la posizione in cui vengono salvati tutti i dati da tutti i vari luoghi. Nel mondo di sovversione, dal punto di vista del cliente, è il server che detiene il database del progetto. Questo database contiene tutti i file che fanno parte del progetto con tutte le loro versioni precedenti.

Revisione

Quando viene creato un repository, viene assegnato il numero di revisione di zero (0). Questo numero viene incrementato di uno (1) ogni volta che viene eseguito un commit. Il numero di revisione è globale per il repository. Cioè, che non esiste un numero di revisione individuale per singoli file nel repository, anche se non è cambiato nulla in quel file per quel commit specifico.

La copia di lavoro

Una copia di lavoro è una copia locale (o "checkout") di una particolare versione. Di solito questa versione al check-out è quella "più recente" (detta anche "testa"), ma può essere richiesta una precedente. L'Utente può fare con la copia locale qualsiasi cosa lui / lei desideri, con la consapevolezza che, nel peggiore dei casi, potrebbero semplicemente ricontrollare il codice. Inoltre, questa copia è "privata". Questo perché finché non aggiorni o impegni la tua copia, non vedrai le modifiche di altre persone, né vedranno le tue.

Aggiornamento e risoluzione dei conflitti

Una copia di lavoro locale può essere aggiornata. Cioè, se hai "ritirato" una certa versione e mentre stavi lavorando, la versione sul repository è stata aggiornata, puoi aggiornare la tua copia di lavoro al più tardi. Infatti, il server ti impedirà di accettare le modifiche prima di aggiornare alla versione più recente in modo che corrisponda al repository. Questo viene fatto per costringerti a risolvere i conflitti localmente, prima ancora di pensare di commettere modifiche al repository.

Fusione

L'unione fa riferimento al processo mediante il quale il codice modificato viene unito a una versione. Può anche comportare la risoluzione dei conflitti.

commit

Il commit è il processo in cui le modifiche apportate alla copia locale verranno unite nel repository. Questa è la parte più pericolosa del processo, poiché è qui che le modifiche apportate potrebbero influire su altre persone che utilizzano lo stesso repository. Questo è il motivo per cui questo viene fatto solitamente dopo una certa considerazione, con il consenso della squadra e dopo aver risolto eventuali conflitti di fusione.

Il flusso di lavoro

Il flusso di lavoro più basilare dal punto di vista dell'utente quando si usa subversion è questo:

1. Controlla il codice esistente (di solito il "capo"). 2. Apportare modifiche, aggiungere file e in genere sviluppare il codice. 3. Aggiornare alla versione più recente, per assicurarsi che la copia locale sia sincronizzata con gli aggiornamenti nel repository. 4. Unire e risolvere localmente i conflitti, se necessario. 5. Conflicare le modifiche unite nel repository. 6. Vai a passaggio 2.

Lasciamo scoppiare

Installa il client

Per poter utilizzare subversion, è necessario installare il client sul proprio computer.

Su Linux

Devi solo installare il pacchetto. Su Ubuntu / Mint, questo sarebbe stato fatto con:

sudo aptitude install subversion

Su DD-WRT

Se hai seguito il "Come installare il software aggiuntivo sul tuo router di casa (DD-WRT)", puoi installare il client svn semplicemente emettendo:

opkg update; opkg install subversion-client

Su Windows

Mentre noi utenti appassionati di geek possiamo iniziare a dimenticare che la GUI esiste anche a volte, non tutti hanno. Se si desidera utilizzare un client Windows per connettersi a un repository SVN, di gran lunga il più popolare è "Tortoise". Per usarlo, basta scaricare il programma e installarlo nella modalità "next, next, finish".

Crea il "repository"

Mentre non entreremo in molti dettagli su come configurare un server di subversion in questa guida, l'alternativa di Google non è un brutto inizio per l'utente inesperto. Per creare un repository Google:

  • Vai al sito web di hosting del codice Google e "crea" un nuovo progetto.

    Image
    Image
  • Nella pagina successiva, compilare i campi obbligatori e selezionare il tipo di "sistema di controllo versione" da sovvertire.

    Image
    Image

    Nota: potresti voler esaminare qual è la differenza tra le offerte di Google delle licenze, prima di selezionarne una per il progetto.

  • Fai clic su "Crea progetto".

" Acquista" la tua copia di lavoro

Una volta che il tuo progetto è stato creato, dovresti essere in grado di trovare le istruzioni su come accedervi nella scheda "Sorgente".

La cosa bella del codice di Google è che abiliterà una versione anonima di sola lettura per il tuo progetto. Se non vuoi affrontare il problema di creare il tuo progetto, puoi controllare in modo anonimo il repository di questo autore.
La cosa bella del codice di Google è che abiliterà una versione anonima di sola lettura per il tuo progetto. Se non vuoi affrontare il problema di creare il tuo progetto, puoi controllare in modo anonimo il repository di questo autore.

Una nota sul progetto hotfortech: Questo progetto vuole essere un wrapper per le funzionalità che sono state aggiunte a DD-WRT su How-To Geek (che io personalmente uso) più alcune modifiche personali. Mentre questo progetto è orientato a lavorare in congiunzione con gli articoli pubblicati qui su Howtogeek, è ancora il mio progetto privato. Cioè, è molto adatto al mio router Buffalo (architettura AR71xx), i miei capricci personali ed è incline al borkage occasionale.

Su Linux / DD-WRT

Crea la directory su cui lavorare, ad esempio su DD-WRT, che potrebbe essere:

mkdir -p /jffs/svn; cd /jffs/svn

Il comando completo su Linux è costituito dal comando SVN stesso, dalla direttiva "checkout", dall'indirizzo del repository e dalla directory da verificare. Crea una directory vuota ed esegui il comando seguente:

svn checkout https://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only

Si noti che nell'esempio sopra, la versione di sola lettura è in fase di estrazione. Se hai scelto di creare il tuo repository, dovrai utilizzare il link httpS.

Su Windows

Poiché la tartaruga è un'estensione della shell, per utilizzarla è necessario utilizzare il menu di scelta rapida di Windows Explorer (clic con il pulsante destro del mouse). Infatti, se provi a richiamarlo dal menu di avvio, otterrai:

Image
Image
  • Crea una directory vuota.
  • Fai clic con il pulsante destro del mouse per visualizzare il menu di scelta rapida.
  • Seleziona "SVN Checkout":

    Image
    Image
  • Copia e incolla il link per il progetto (se ne hai uno) nella casella di testo "URL":

    Image
    Image
  • A seconda della dimensione del tuo progetto, questo potrebbe richiedere un po 'di tempo, ma quando il "Checkout" è stato completato dovresti vedere qualcosa del tipo:

    Image
    Image
  • Potresti iniziare a sviluppare.

"Aggiorna" e "Unisci" la tua copia di lavoro Se stai lavorando sul codice con i colleghi o stai aggiornando il codice da più postazioni (ad es. Laptop, desktop o persino router), dovrai aggiornare la tua copia di lavoro prima di commettere le ultime modifiche.

Su Linux / DD-WRT

Il comando per eseguire questa operazione su questi sistemi POSIX è semplicemente:

svn up

Su Windows

  • Fare clic con il tasto destro del mouse sulla directory di lavoro e selezionare "SVN Update":

    Image
    Image
  • Se incontri conflitti, prova a seguire le istruzioni sullo schermo e usa il tuo giudizio su cosa fare su di loro.

"Applica" le tue modifiche Cioè, dovresti essere senza conflitti e pronto ad aggiornare il repository con le tue modifiche. L'unica cosa da notare qui è che è pratica comune aggiungere un messaggio di "log" al commit, in modo da poter facilmente ricordare il motivo per cui sono state apportate le modifiche. In effetti, il repository di Google rende questo un pre-requisito obbligatorio per l'impegno.

Su Linux / DD-WRT

Questo è un esempio del commit che ho fatto al progetto hotfortech che lo ha portato alla versione 19:

svn commit -m “updated to reflect new ant-ads pack link”

Su Windows

  • Fare clic con il tasto destro del mouse sulla directory di lavoro e selezionare "SVN Commit":

    Image
    Image
  • Si dovrebbe essere accolti da una finestra che consente di annotare un messaggio di registro:

    Image
    Image
  • Fai clic su OK e quando viene richiesta una password, fornisci la password generata da Google.
  • Se il commit ha avuto successo, dovresti vedere qualcosa come:

    Image
    Image
  • Cioè, dovresti essere in grado di impegnarti come un BOSS.

Osservazioni finali Questo dovrebbe essere sufficiente per iniziare. Si consiglia di leggere i manuali di riferimento SVN per ottenere una comprensione più profonda e migliore su tutti gli usi, le opzioni e le avvertenze di SVN. Inoltre, ti ricordiamo (ancora) che la sovversione NON è l'unico sistema di controllo delle versioni là fuori e GIT (che è stato creato da Linus Torvalds il fondatore del kernel Linux) sembra stia guadagnando popolarità negli ultimi anni.

Se sceglierai di eseguire "running-config.sh" dal progetto hotfortech sul tuo router, scoprirai che verrà installato per te: il pacchetto anti-ads, lo script geek-init di Opkg, così come cose come GNU "ls", "less", "BASH" e altro ancora.

/jffs/svn/hotfortech-dd-wrt/running-conf.sh

Altre funzionalità sono in sospeso e verranno aggiunte in futuro.

Gli amministratori di sistema faranno il codice per uscire dalla codifica.

Consigliato: