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.
-
Nella pagina successiva, compilare i campi obbligatori e selezionare il tipo di "sistema di controllo versione" da sovvertire.
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".
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:
- Crea una directory vuota.
- Fai clic con il pulsante destro del mouse per visualizzare il menu di scelta rapida.
-
Seleziona "SVN Checkout":
-
Copia e incolla il link per il progetto (se ne hai uno) nella casella di testo "URL":
-
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:
- 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":
- 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":
-
Si dovrebbe essere accolti da una finestra che consente di annotare un messaggio di registro:
- 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:
- 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.