<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Subversion Italia &#187; andrea</title>
	<atom:link href="http://www.subversionitalia.it/author/andrea/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.subversionitalia.it</link>
	<description>Il sito di riferimento per Subversion ® in Italia</description>
	<lastBuildDate>Wed, 02 Dec 2009 14:55:06 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Subversion 1.6.2</title>
		<link>http://www.subversionitalia.it/versioni/subversion-162/</link>
		<comments>http://www.subversionitalia.it/versioni/subversion-162/#comments</comments>
		<pubDate>Mon, 11 May 2009 13:17:43 +0000</pubDate>
		<dc:creator>andrea</dc:creator>
				<category><![CDATA[Versioni]]></category>

		<guid isPermaLink="false">http://www.subversionitalia.it/wordpress/?p=43</guid>
		<description><![CDATA[Il team di Subversion® ha rilasciato la versione 1.6.2 che risolve alcuni bug e migliora le prestazioni delle operazioni di merge.
È possibile scaricare Subversion 1.6.2 da qui.
]]></description>
			<content:encoded><![CDATA[<p>Il team di Subversion® ha rilasciato la versione 1.6.2 che risolve alcuni bug e migliora le prestazioni delle operazioni di merge.</p>
<p>È possibile scaricare Subversion 1.6.2 da <a href="http://subversion.tigris.org/" target="_blank">qui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.subversionitalia.it/versioni/subversion-162/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un po&#8217; di storia</title>
		<link>http://www.subversionitalia.it/miscellanea/un-po-di-storia/</link>
		<comments>http://www.subversionitalia.it/miscellanea/un-po-di-storia/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:32:38 +0000</pubDate>
		<dc:creator>andrea</dc:creator>
				<category><![CDATA[Miscellanea]]></category>

		<guid isPermaLink="false">http://www.subversionitalia.it/wordpress/?p=29</guid>
		<description><![CDATA[Sul sito ufficiale di Subversion si può vedere la storia dei rilasci di Subversion, da quando è iniziato il progetto nel 2000 fino agli ultimi rilasci.
]]></description>
			<content:encoded><![CDATA[<p>Sul sito ufficiale di Subversion si può vedere la <a href="http://subversion.tigris.org/release-history.html" target="_blank">storia</a> dei rilasci di Subversion, da quando è iniziato il progetto nel 2000 fino agli ultimi rilasci.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.subversionitalia.it/miscellanea/un-po-di-storia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuovo sito Subversionitalia</title>
		<link>http://www.subversionitalia.it/eventi/nuovo-sito-subversionitalia/</link>
		<comments>http://www.subversionitalia.it/eventi/nuovo-sito-subversionitalia/#comments</comments>
		<pubDate>Fri, 08 May 2009 14:20:26 +0000</pubDate>
		<dc:creator>andrea</dc:creator>
				<category><![CDATA[Eventi]]></category>

		<guid isPermaLink="false">http://www.subversionitalia.it/wordpress/?p=26</guid>
		<description><![CDATA[Abbiamo dato una rinfrescata al sito di subversionitalia !!!
Speriamo che vi piaccia !!
]]></description>
			<content:encoded><![CDATA[<p>Abbiamo dato una rinfrescata al sito di subversionitalia !!!</p>
<p>Speriamo che vi piaccia !!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.subversionitalia.it/eventi/nuovo-sito-subversionitalia/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zero downtime Subversion</title>
		<link>http://www.subversionitalia.it/howto/zero-downtime-subversion/</link>
		<comments>http://www.subversionitalia.it/howto/zero-downtime-subversion/#comments</comments>
		<pubDate>Tue, 05 May 2009 09:42:51 +0000</pubDate>
		<dc:creator>andrea</dc:creator>
				<category><![CDATA[How-to]]></category>

		<guid isPermaLink="false">http://www.subversionitalia.it/wordpress/?p=41</guid>
		<description><![CDATA[Subversion consente di rendere disponibile un repository a un indirizzo utilizzabile da tutti gli utenti. Ma come si sa le cose si rompono&#8230;
Nel caso in cui il server che mette a disposizione il repository subisca un hardware failure come possiamo da un lato avere un backup allineato all&#8217;ultima commit e dall&#8217;altro rendere disponibile immediatamente il [...]]]></description>
			<content:encoded><![CDATA[<p>Subversion consente di rendere disponibile un repository a un indirizzo utilizzabile da tutti gli utenti. Ma come si sa le cose si rompono&#8230;</p>
<p>Nel caso in cui il server che mette a disposizione il repository subisca un hardware failure come possiamo da un lato avere un backup allineato all&#8217;ultima commit e dall&#8217;altro rendere disponibile immediatamente il repository agli utenti evitando lunghi periodi di downtime?</p>
<p>Con un semplice hack e un hook di post commit possiamo ottenere un repository clone da sostituire immediatamente a quello sulla macchina danneggiata.</p>
<p>Per prima cosa prepariamo due server: <em>primary.mycompany.com</em> e <em>slave.mycompany.com</em>, e poniamo che <em>primary</em> sia il repository principale, su <em>slave</em> prepariamo un nuovo repository vuoto e lo rendiamo disponibile tramite protocollo http.</p>
<p>Ecco una possibile configurazione del repository:</p>
<pre>&lt;Location&gt;
   DAV svn
   SVNPath /var/lib/svn/repo
   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile /var/lib/svn/passwd
   AuthzSVNAccessFile /var/lib/svn/access
   require valid-user
   satisfy all
&lt;/Location&gt;</pre>
<p>Tale configurazione è valida sia per <em>primary</em> che per <em>slave.</em></p>
<p>Sulla macchina slave creiamo il repository clone con il comando svnadmin come di consueto. Una volta creato il repository clone dobbiamo cambiargli l&#8217;uuid. L&#8217;uuid di un repository è una stringa che contiene l&#8217;identificativo univoco di un repository generata al momento della creazione. Il client Subversion controlla che l&#8217;uuid del repository che si sta conttatando sia quello da cui la working copy è stata creata, per questo motivo bisogna sostituirlo con quello del repository master.</p>
<p>Per ottenere l&#8217;uid del repository master possiamo utilizzare il comado svn info http://primary.mycompany.com/repo, il risultato sarà simile a questo:</p>
<pre># svn info http://primary.mycompany.com/repo
Path: repo
URL: http://primary.mycompany.com
Repository Root: http://primary.mycompany.com/repo
Repository UUID: 41c2915e-32ce-4739-91e1-966d5c2fcc64
Revision: 58056
Node Kind: directory
Last Changed Author: admin
Last Changed Rev: 58056
Last Changed Date: 2009-04-30 15:35:52 +0200 (Gio, 30 Apr 2009)</pre>
<p>L&#8217;UUID di un repository è salvato in [REPO_PATH]/db/uuid e possiamo aggiornarlo con 1 comando</p>
<pre># svn info http://primary.mycompany.com | grep UUID | awk '{ print $3 }' &gt; /var/lib/svn/repo/db/uuid</pre>
<p>Assumendo di avere i privilegi necessari e di aver creato il repository in /var/lib/svn/repo</p>
<p>A questo punto abilitiamo su primary l&#8217;hook di post commit e ci inseriamo l&#8217;esecuzione di svnsync, <a href="http://www.subversionitalia.it/2009/04/i-comandi-subversion-svnsync/">questo post</a> parla di svnsync e di come utilizzarlo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.subversionitalia.it/howto/zero-downtime-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I comandi Subversion: svnsync</title>
		<link>http://www.subversionitalia.it/howto/i-comandi-subversion-svnsync/</link>
		<comments>http://www.subversionitalia.it/howto/i-comandi-subversion-svnsync/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 08:55:24 +0000</pubDate>
		<dc:creator>andrea</dc:creator>
				<category><![CDATA[How-to]]></category>

		<guid isPermaLink="false">http://www.subversionitalia.it/wordpress/?p=38</guid>
		<description><![CDATA[Tra i comandi messi a disposizione dalla distribuzione standard di Subversion troviamo svnsync.
svnsync permette di sincronizzare un repository verso uno o più respository.
Per prima cosa è bene sottolineare che svnsync non può essere usato per mantenere un repository distribuito, il repository verso cui avviene la sincronizzazione deve essere in sola lettura, one way.
Subversion è un [...]]]></description>
			<content:encoded><![CDATA[<p>Tra i comandi messi a disposizione dalla distribuzione standard di Subversion troviamo svnsync.</p>
<p>svnsync permette di sincronizzare un repository verso uno o più respository.</p>
<p>Per prima cosa è bene sottolineare che svnsync non può essere usato per mantenere un repository distribuito, il repository verso cui avviene la sincronizzazione deve essere in sola lettura, one way.</p>
<p>Subversion è un SCM centralizzato e non permette di configurare repository distribuiti nativamente. Sul mercato sono presenti strumenti che permettono di trasformare Subversion in repository decentralizzato, ad esempio <a title="Wandisco Subversion multisite " href="http://www.wandisco.com/subversion/multisite/">Wandisco</a>.</p>
<p>A partire dalla version 1.5 di svnsync è possibile sincronizzare solo un ramo del repository sorgente verso il repository di destinazione.</p>
<p>Vediamo come utilizzare svnsync tramite protocollo svn:</p>
<p>Consideriamo di avere il nostro repository principale sulla macchina <em>master.example.com </em>disponibile all&#8217;indirizzo <em>svn://master.example.com</em></p>
<p>Sulla macchina <em>slave </em>creiamo il repository target per la sincronizzazione con il master:</p>
<pre>root@slave# mkdir /var/lib/svn
root@slave# cd /var/lib/svn
root@slave# svnadmin create repo</pre>
<p>A questo punto dobbiamo preparare il repository target appena creato in modo tale che accetti le modifiche delle <em>revision property. </em>Di default la modifica di tali property è disabilitata su Subversion, essendo le revison property non versionate. Per permettere la modifica delle revision property è sufficiente modificare l&#8217;hook pre-revprop-change in modo che termini correttamente (con exit status a 0);</p>
<pre>root@slave# cd repo/hooks
root@slave# head -n 1 pre-revprop-change.tmpl &gt; pre-revprop-change
root@slave# chmod +x pre-revprop-change
root@slave# cd ../..</pre>
<p>A questo punto utilizziamo svnsync per inizializzare il repository target</p>
<pre>root@slave# svnsync init file:///var/lib/svn/repo svn://master.example.com
Copied properties for revision 0.</pre>
<p>Se analizziamo le revision property del repository target possiamo vedere quali sono le operazioni compiute dal comando init:</p>
<pre>root@slave# svnlook proplist repo -r 0 --revprop
svn:sync-from-uuid
svn:sync-last-merged-rev
svn:date
svn:sync-from-url</pre>
<p>Ora è possibile iniziare la syncronizzazione del repository</p>
<pre>root@slave# svnsync sync file:///var/lib/repo</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.subversionitalia.it/howto/i-comandi-subversion-svnsync/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion 1.6.1</title>
		<link>http://www.subversionitalia.it/versioni/subversion-161/</link>
		<comments>http://www.subversionitalia.it/versioni/subversion-161/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 08:32:56 +0000</pubDate>
		<dc:creator>andrea</dc:creator>
				<category><![CDATA[Versioni]]></category>

		<guid isPermaLink="false">http://www.subversionitalia.it/wordpress/?p=35</guid>
		<description><![CDATA[Sul sito ufficiale di Subversion ® è disponibile la versione 1.6.1. Questa è una versione di manutenzione che contiene alcuni miglioramenti e risolve alcuni bug.
Si può scaricare da qui.
]]></description>
			<content:encoded><![CDATA[<p>Sul sito ufficiale di Subversion ® è disponibile la versione 1.6.1. Questa è una versione di manutenzione che contiene alcuni miglioramenti e risolve alcuni bug.</p>
<p>Si può scaricare da <a href="http://subversion.tigris.org/" target="_blank">qui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.subversionitalia.it/versioni/subversion-161/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion 1.6.0</title>
		<link>http://www.subversionitalia.it/versioni/subversion-160/</link>
		<comments>http://www.subversionitalia.it/versioni/subversion-160/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 08:03:04 +0000</pubDate>
		<dc:creator>andrea</dc:creator>
				<category><![CDATA[Versioni]]></category>

		<guid isPermaLink="false">http://www.subversionitalia.it/wordpress/?p=33</guid>
		<description><![CDATA[È stata rilasciata la versione 1.6.0 di Subversion ®. Tra le novità di questa versione ci sono

individuazione dei conflitti sull&#8217;alberatura del repository
migliorato il meccanismo di storage del repository
possibilità di referenziare file nella property svn:externals

L&#8217;elenco completo delle note di rilascio è qui.
Subversion 1.6.0 è scaricabile da qui.
]]></description>
			<content:encoded><![CDATA[<p>È stata rilasciata la versione 1.6.0 di Subversion ®. Tra le novità di questa versione ci sono</p>
<ul>
<li>individuazione dei conflitti sull&#8217;alberatura del repository</li>
<li>migliorato il meccanismo di storage del repository</li>
<li>possibilità di referenziare file nella property svn:externals</li>
</ul>
<p>L&#8217;elenco completo delle note di rilascio è <a href="http://subversion.tigris.org/svn_1.6_releasenotes.html" target="_blank">qui</a>.</p>
<p>Subversion 1.6.0 è scaricabile da <a href="http://subversion.tigris.org/" target="_blank">qui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.subversionitalia.it/versioni/subversion-160/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
