<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>SVN</title>
        <link>http://blogs.ugidotnet.org/leonardo/category/SVN.aspx</link>
        <description>SubVersioN</description>
        <language>it</language>
        <copyright>Leonardo</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Backup Automatizzati con SubVersion</title>
            <link>http://blogs.ugidotnet.org/leonardo/archive/2008/12/24/backup-automatizzati-con-subversion.aspx</link>
            <description>&lt;p&gt;Se utilizziamo &lt;a href="http://subversion.tigris.org/"&gt;SubVersion&lt;/a&gt; come sistema di controllo versione per i nostri sorgenti non c’è nulla di più comodo di una procedura automatizzata richiamabile con un click che esegua il backup di tutto il Repository, lo comprima e lo cataloghi secondo lo nostre esigenze.&lt;/p&gt;
&lt;p&gt;Vediamo come creare in pochi secondi un &lt;a href="http://it.wikipedia.org/wiki/File_batch"&gt;file Batch&lt;/a&gt; che faccia tutto questo:&lt;/p&gt;
&lt;p&gt;Apriamo il Blocco Notes e inseriamo le seguenti righe (sostituendo i percorsi con quelli del proprio computer), salviamo infine il file con l’estensione .bat&lt;/p&gt;
&lt;table style="BACKGROUND: white" border="1" cellspacing="0" cellpadding="2"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;@echo off&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;echo Creazione copia di backup del Repository...&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;svnadmin hotcopy "X:/Repository" "C:/Users/UserName/Documenti/BackupSVN" --clean-logs&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;echo Compressione backup...&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;"C:\Program Files\WinRAR\WinRAR.exe" A -t -m5 -r -ag -rr5p -ep1 "C:/Users/UserName/Documenti/BackupSVNcompresso" "C:/Users/UserName/Documenti/BackupSVN/"&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;echo Eliminazione directory temporanea...&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;rmdir /s /q "C:/Users/UserName/Documenti/BackupSVN"&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;echo Backup avvenuto con successo&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top"&gt;pause&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Analizziamo il nostro file Batch:&lt;/p&gt;
&lt;p&gt;Prima di tutto disabilitiamo la sintassi dei comandi in modo da visualizzare solo l’ouput effettivo del nostro batch (comando @echo off) e stampiamo a video l’avanzamento del processo con echo stringa da visualizzare&lt;/p&gt;
&lt;p&gt;Creiamo una copia temporanea del Repository tramite svnadmin e l’opzione hotcopy (per chi non lo avesse installato nel proprio sistema può scaricarlo da &lt;a href="http://www.sliksvn.com/en/download"&gt;SlikSvn&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;UPDATE: Aggiungendo " --clean-logs" eviteremo di inserire i log ridondanti, salvando così spazio. L'uso di hotcopy rispetto alla semplice copia della cartella garantisce che eventuali processi in esecuzione non corrompano il backup accedendo al repository.&lt;/p&gt;
&lt;p&gt;Comprimiamo la cartella, assegnando al file compresso un nome incrementale (es. BackupSVNcompressoAAAAMMGGOOMMSS).&lt;/p&gt;
&lt;p&gt;Per la compressione sfruttiamo le funzionalità a linea di comando di &lt;a href="http://www.winrar.it/"&gt;WinRar&lt;/a&gt;, i parametri passati permettono di:&lt;/p&gt;
&lt;p&gt;- aggiungere file ad un archivio (opzione A)&lt;/p&gt;
&lt;p&gt;- verificare i file appena archiviati (-t)&lt;/p&gt;
&lt;p&gt;- personalizzare il livello di compressione (-m5 = massimo)&lt;/p&gt;
&lt;p&gt;- includere ricorsivamente le sottocartelle (-r)&lt;/p&gt;
&lt;p&gt;- aggiungere al nome dell’archivio una sequenza legata alla data corrente (-ag)&lt;/p&gt;
&lt;p&gt;- aggiungere le informazioni utili (5%) per un recupero a seguito di danneggiamento dell'archivio (-rr5p)&lt;/p&gt;
&lt;p&gt;- non archiviare il percorso inserito nella linea di comando (-ep1)&lt;/p&gt;
&lt;p&gt;I parametri passabili a WinRar sono veramente tanti, per una lista completa consultare la Guida installata col programma.&lt;/p&gt;
&lt;p&gt;ATTENZIONE: Su sistemi operativi in lingua diversa dall'inglese potrebbe essere necessario sostituire "Program Files" con la cartella dei programmi del proprio sistema (es. "Programmi" per il sistema operativo Windows XP in italiano) o comunque indicare dove risiede l'eseguibile WinRAR.exe.&lt;/p&gt;
&lt;p&gt;Per finire eliminiamo la cartella creata in precedenza (di cui abbiamo creato una copia in formato compresso) e lanciamo il comando pause, permetterà di vedere l’output del file batch anche dopo l’esecuzione. Basterà poi premere un tasto per chiudere la finestra.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/leonardo/WindowsLiveWriter/BackupAutomatizzaticonSubVersion_A3A8/BatchBackupRepository_2.gif"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="BatchBackupRepository" border="0" alt="BatchBackupRepository" width="545" height="134" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/leonardo/WindowsLiveWriter/BackupAutomatizzaticonSubVersion_A3A8/BatchBackupRepository_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Backup eseguito!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://cid-7996fa031700f3fe.skydrive.live.com/self.aspx/Pubblica/BackupRepositorySVN.zip"&gt;Scarica il file batch&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/leonardo/aggbug/95018.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Leonardo</dc:creator>
            <guid>http://blogs.ugidotnet.org/leonardo/archive/2008/12/24/backup-automatizzati-con-subversion.aspx</guid>
            <pubDate>Wed, 24 Dec 2008 13:54:44 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/leonardo/archive/2008/12/24/backup-automatizzati-con-subversion.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/leonardo/comments/commentRss/95018.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/leonardo/services/trackbacks/95018.aspx</trackback:ping>
        </item>
    </channel>
</rss>