<?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>SlashCode &#187; git</title>
	<atom:link href="http://davideaversa.it/slashcode/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://davideaversa.it/slashcode</link>
	<description></description>
	<lastBuildDate>Thu, 03 May 2012 14:28:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Integrare Git con Eclipse</title>
		<link>http://davideaversa.it/slashcode/2011/07/integrare-git-con-eclipse/</link>
		<comments>http://davideaversa.it/slashcode/2011/07/integrare-git-con-eclipse/#comments</comments>
		<pubDate>Thu, 28 Jul 2011 14:32:05 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=776</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2011/07/integrare-git-con-eclipse/"><img title="Integrare Git con Eclipse" src="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/egit2-150x150.png" alt="Integrare Git con Eclipse"  width="200" height="200" /></a></div><br/>L&#8217;ultima release di Eclipse (la Indigo) è favolosa. A prima vista non sembra molto diversa dalle precedenti ma la reattività e la stabilità è notevolmente aumentata. Funziona così bene che ho ricominciato ad usarla dimenticandomi dei problemi che mi aveva dato Helios. La prima cosa che ho cercato era l&#8217;integrazione con Git (si, sono innamorato). <a href='http://davideaversa.it/slashcode/2011/07/integrare-git-con-eclipse/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2011%2F07%2Fintegrare-git-con-eclipse%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2011/07/integrare-git-con-eclipse/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Integrare Git con Eclipse" data-url="http://davideaversa.it/slashcode/2011/07/integrare-git-con-eclipse/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/egit2.png"><img src="http://davideaversa.it/slashcode/wp-content/uploads/2011/07/egit2-150x150.png" alt="" title="Egit2" width="150" height="150" class="alignleft size-thumbnail wp-image-777" /></a></p>
<p>L&#8217;ultima release di Eclipse (la Indigo) è favolosa. A prima vista non sembra molto diversa dalle precedenti ma la reattività e la stabilità è notevolmente aumentata. Funziona così bene che ho ricominciato ad usarla dimenticandomi dei problemi che mi aveva dato Helios.</p>
<p>La prima cosa che ho cercato era l&#8217;integrazione con Git (si, sono innamorato).</p>
<p>Bene, la ricerca è stata breve e il risultato è molto soddisfacente: <strong>EGit</strong>. L&#8217;ultima versione di Eclipse include questo plugin nella vasta gamma dei plugin scaricabili. </p>
<p><span id="more-776"></span></p>
<p>Quindi:</p>
<ul>
<li> Andate in <em>Help -> Install New Software..</em>.</li>
<li> Cercate egit e installatelo.</li>
<li> Riavviate Eclipse </li>
<li> A questo punto andate su un vostro progetto e cliccando con il destro andate su <em>Team -> Share&#8230;</em></li>
<li> Scegliete Git come sistema di CVS.</li>
<li> Il programma vi chiederà dove creare il repository. Per non confondervi scegliete di creare il repository in una sub-directory del progetto (.git) selezionando la relativa spunta. Questo vi eviterà problemi nell&#8217;uso di tools esterni.</li>
</ul>
<p>A questo punto tutto è pronto per il primo commit. Possiamo fare tutto da Eclipse.</p>
<ul>
<li>Andate in <em>Team -> Commit&#8230;</em> e selezionate tutti i file da aggiungere.</li>
<li>Effettuate il commit. </li>
</ul>
<p>Egit offre un ottima integrazione con Git con tanto di rappresentazione grafica della storia, dei rami, delle versioni e di tutte le altre funzioni di Git (compreso il rebase, il merge e il cherry-picking).</p>
<p>Insomma, se utilizzate Eclipse ve lo consiglio caldamente.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=776&amp;md5=20145cb67705e590c255cad5522bb5f9" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2011/07/integrare-git-con-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2011%2F07%2Fintegrare-git-con-eclipse%2F&amp;language=it_IT&amp;category=text&amp;title=Integrare+Git+con+Eclipse&amp;description=L%26%238217%3Bultima+release+di+Eclipse+%28la+Indigo%29+%C3%A8+favolosa.+A+prima+vista+non+sembra+molto+diversa+dalle+precedenti+ma+la+reattivit%C3%A0+e+la+stabilit%C3%A0+%C3%A8+notevolmente+aumentata.+Funziona+cos%C3%AC+bene+che...&amp;tags=eclipse%2Cgit%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Git &#8211; Corso Intensivo</title>
		<link>http://davideaversa.it/slashcode/2010/07/git-corso-intensivo/</link>
		<comments>http://davideaversa.it/slashcode/2010/07/git-corso-intensivo/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 17:33:36 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=633</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/07/git-corso-intensivo/"><img title="Git &#8211; Corso Intensivo" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/07/bible-150x150.png" alt="Git &#8211; Corso Intensivo"  width="200" height="200" /></a></div><br/>Oggi dovevo scrivere una guida che rendesse persone digiune di git capaci di gestire un progetto multi utente distribuito. Non so se sono riuscito nell&#8217;interno ma dato che ci ho messo due ore per scrivere queste 6-7 pagine di documentazione vorrei condividerla con tutti. L&#8217;ho scritta di fretta, alcune informazioni sono carenti e altre mancanti, <a href='http://davideaversa.it/slashcode/2010/07/git-corso-intensivo/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F07%2Fgit-corso-intensivo%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/07/git-corso-intensivo/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Git &#8211; Corso Intensivo" data-url="http://davideaversa.it/slashcode/2010/07/git-corso-intensivo/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/07/bible.png"><img class="alignleft size-thumbnail wp-image-634" title="bible" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/07/bible-150x150.png" alt="" width="150" height="150" /></a>Oggi dovevo scrivere una guida che rendesse persone digiune di git capaci di gestire un progetto multi utente distribuito. Non so se sono riuscito nell&#8217;interno ma dato che ci ho messo due ore per scrivere queste 6-7 pagine di documentazione vorrei condividerla con tutti.</p>
<p>L&#8217;ho scritta di fretta, alcune informazioni sono carenti e altre mancanti, ma credo che nel complesso sia uscita una cosa molto carina e istruttiva. Quantomeno, dopo aver letto questa guida, saprete dove mettere le mani per fare qualcosa. Penso che la aggiornerò ancora nei prossimi giorni quindi magari ripassateci. <img src='http://davideaversa.it/slashcode/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Eccola qui:</p>
<p><strong><a href="https://docs.google.com/document/edit?id=1kiLCEJqYmNTP0WIyHxKZBUefgVnf45L5fQyELX0XuBw&amp;hl=it">GUIDA MEGAGALATTICA EXPRESS PER GIT</a></strong></p>
<p><strong>EDIT 13-07-2011:</strong> Ieri sera ho riletto tutta la guida e ho corretto alcune imprecisioni, oltre ad aver sistemato qualche carenza stilistica e grafica. Vi ricordo che suggerimenti e commenti sono molto apprezzati! <img src='http://davideaversa.it/slashcode/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=633&amp;md5=7529b89ccd19b0bab9e9133550ce531c" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/07/git-corso-intensivo/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F07%2Fgit-corso-intensivo%2F&amp;language=it_IT&amp;category=text&amp;title=Git+%26%238211%3B+Corso+Intensivo&amp;description=Oggi+dovevo+scrivere+una+guida+che+rendesse+persone+digiune+di+git+capaci+di+gestire+un+progetto+multi+utente+distribuito.+Non+so+se+sono+riuscito+nell%26%238217%3Binterno+ma+dato+che+ci+ho...&amp;tags=git%2Cgithub%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Come integrare GIT e SVN</title>
		<link>http://davideaversa.it/slashcode/2010/06/come-integrare-git-e-svn/</link>
		<comments>http://davideaversa.it/slashcode/2010/06/come-integrare-git-e-svn/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 13:05:10 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=612</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/06/come-integrare-git-e-svn/"><img title="Come integrare GIT e SVN" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/06/github-logo-150x150.png" alt="Come integrare GIT e SVN"  width="200" height="200" /></a></div><br/>Git non è l&#8217;unico sistema di controllo di versione esistente (aimè! xD). Ad esempio SVN è il sistema utilizzato ufficialmente dal progetto KDE (anche se c&#8217;è l&#8217;intenzione di passare a Git nel prossimo futuro). A questo punto sorge spontaneo chiedersi come si possa fare per partecipare a questi progetti ma, allo stesso tempo, continuare ad <a href='http://davideaversa.it/slashcode/2010/06/come-integrare-git-e-svn/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F06%2Fcome-integrare-git-e-svn%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/06/come-integrare-git-e-svn/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Come integrare GIT e SVN" data-url="http://davideaversa.it/slashcode/2010/06/come-integrare-git-e-svn/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><img class="alignleft size-thumbnail wp-image-613" title="GitHub" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/06/github-logo-150x150.png" alt="" width="150" height="150" /></p>
<p>Git non è l&#8217;unico sistema di controllo di versione esistente (aimè! xD). Ad esempio SVN è il sistema utilizzato ufficialmente dal progetto KDE (anche se c&#8217;è l&#8217;intenzione di passare a Git nel prossimo futuro). A questo punto sorge spontaneo chiedersi come si possa fare per partecipare a questi progetti ma, allo stesso tempo, continuare ad utilizzare il nostro (mio) amato Git?</p>
<p>La soluzione, ovviamente, esiste. Basta installare il pacchetto <strong>git-svn</strong> che offre un comodo layer di interfaccia fra Git e Svn. Ma vediamo come usarlo:</p>
<p>La prima cosa da fare è di clonare il repository svn. Questo può essere fatto semplicemente con il comando:</p>
<pre>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git</span> <span style="color: #c20cb9; font-weight: bold;">svn</span> clone &nbsp;?optional-directory-name?</div></div>
</pre>
<p>Lo svantaggio di questa operazione è data però dalla lentezza. Questo perché la cronologia di git viene riempita scaricando dal repo svn ogni commit singolarmente. Quindi è meglio che eseguiate questo comando solamente quando avete un po&#8217; di tempo da perdere.</p>
<p>Il prossimo comando serve a tenere aggiornata la nostra copia locale rispetto al trunk remoto. Il corrispettivo, in pratica, del comando <code class="codecolorer text dawn"><span class="text">svn update</span></code>.</p>
<pre>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git</span> <span style="color: #c20cb9; font-weight: bold;">svn</span> rebase</div></div>
</pre>
<p>Per ultimo, vediamo invece come inviare il nostro ramo locale nel ramo remoto:</p>
<pre>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git</span> <span style="color: #c20cb9; font-weight: bold;">svn</span> dcommit</div></div>
</pre>
<p>Per tutto il resto del tempo potete continuare ad utilizzare i classici comandi git, potete creare rami locali, riunirli, fare tutto ciò che vi pare come se il progetto fosse nativamente gestito da git.</p>
<p>Un vantaggio niente male eh? <img src='http://davideaversa.it/slashcode/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=612&amp;md5=e85a4a25494d7d062529de4cfcc3f63c" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/06/come-integrare-git-e-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F06%2Fcome-integrare-git-e-svn%2F&amp;language=it_IT&amp;category=text&amp;title=Come+integrare+GIT+e+SVN&amp;description=Git+non+%C3%A8+l%26%238217%3Bunico+sistema+di+controllo+di+versione+esistente+%28aim%C3%A8%21+xD%29.+Ad+esempio+SVN+%C3%A8+il+sistema+utilizzato+ufficialmente+dal+progetto+KDE+%28anche+se+c%26%238217%3B%C3%A8+l%26%238217%3Bintenzione+di+passare+a...&amp;tags=cvs%2Cgit%2Ckde%2Csvn%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Git: Configurazioni Utili</title>
		<link>http://davideaversa.it/slashcode/2010/06/git-configurazioni-utili/</link>
		<comments>http://davideaversa.it/slashcode/2010/06/git-configurazioni-utili/#comments</comments>
		<pubDate>Wed, 16 Jun 2010 10:27:17 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[kdiff]]></category>
		<category><![CDATA[merge]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=610</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/06/git-configurazioni-utili/"><img title="Git: Configurazioni Utili" src="http://davideaversa.it/slashcode/wp-content/uploads/2009/08/header.gif" alt="Git: Configurazioni Utili"  width="200" height="198" /></a></div><br/>Come spero sappiate amo Git con tutto il mio cuore. Volevo quindi appuntare una serie di configurazioni che trovo utilissime. Una piccola nota nel caso vi dimentichiate alcuni pezzi di sintassi (e io lo dimentico spesso).]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F06%2Fgit-configurazioni-utili%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/06/git-configurazioni-utili/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Git: Configurazioni Utili" data-url="http://davideaversa.it/slashcode/2010/06/git-configurazioni-utili/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2009/08/header.gif"><img class="alignleft size-full wp-image-214" title="Git" src="http://davideaversa.it/slashcode/wp-content/uploads/2009/08/header.gif" alt="" width="107" height="106" /></a> Come spero sappiate amo Git con tutto il mio cuore. Volevo quindi appuntare una serie di configurazioni che trovo utilissime. Una piccola nota nel caso vi dimentichiate alcuni pezzi di sintassi (e io lo dimentico spesso).</p>
<p><strong>1 &#8211; UTENTE</strong></p>
<p>Inserire l&#8217;utente è fondamentale per fare in modo che i commit non escano con nomi casuali e irriconoscibili.</p>
<pre>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> user.name <span style="color: #ff0000;">&quot;Il vostro nome&quot;</span><br />
<span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> user.email tuaemail<span style="color: #000000; font-weight: bold;">@</span>dominio.it</div></div>
</pre>
<p><strong>2 &#8211; COLORI</strong></p>
<p>Per migliorare la leggibilità è cosa buona e giusta abilitare i colori nell&#8217;output dei comandi di git.</p>
<pre>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> color.branch auto<br />
<span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> color.diff auto<br />
<span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> color.interactive auto<br />
<span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> color.status auto</div></div>
</pre>
<p><strong>3 &#8211; MERGE</strong></p>
<p>Prima cosa da fare è configurare lo strumento che useremo per risolvere i conflitti del merge. Io su KDE uso <strong>kdiff3</strong>  ma per GNOME esiste un alternativa altrettanto valida di nome <strong>meld</strong>.</p>
<p>Per Kdiff3 bisogna però aggiungere una configurazione ulteriore. Andate a Settings, Configure KDiff3, Integration. Nella casella &#8216;Command line options to ignore&#8217;, aggiungete il parametro &#8216;;&#8211;&#8217;. </p>
<p>A questo punto vi basta configurare git.</p>
<pre>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> merge.tool kdiff3</div></div>
</pre>
<p><strong>4 &#8211; EDITOR</strong></p>
<p>Potete anche configurare l&#8217;editor che git userà quando avrà bisogno di farvi editare del testo.</p>
<pre>
<div class="codecolorer-container bash dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">git config</span> <span style="color: #660033;">--global</span> core.editor <span style="color: #c20cb9; font-weight: bold;">vim</span></div></div>
</pre>
<p>Potete sceglierne anche uno con interfaccia grafica.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=610&amp;md5=ec7f2b42552f96bef0e0bef98edf6dfb" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/06/git-configurazioni-utili/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F06%2Fgit-configurazioni-utili%2F&amp;language=it_IT&amp;category=text&amp;title=Git%3A+Configurazioni+Utili&amp;description=Come+spero+sappiate+amo+Git+con+tutto+il+mio+cuore.+Volevo+quindi+appuntare+una+serie+di+configurazioni+che+trovo+utilissime.+Una+piccola+nota+nel+caso+vi+dimentichiate+alcuni+pezzi+di...&amp;tags=editor%2Cgit%2Ckdiff%2Cmerge%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Come organizzare un progetto</title>
		<link>http://davideaversa.it/slashcode/2010/05/come-organizzare-un-progetto/</link>
		<comments>http://davideaversa.it/slashcode/2010/05/come-organizzare-un-progetto/#comments</comments>
		<pubDate>Mon, 24 May 2010 10:47:51 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[Generale]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[programmazione]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=584</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/05/come-organizzare-un-progetto/"><img title="Come organizzare un progetto" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/05/House_of_cards-150x150.jpg" alt="Come organizzare un progetto"  width="200" height="200" /></a></div><br/>Stavo attrezzando un piccolo progettino scemo sulle OpenGL (più didattico che altro) e così ho pensato di condividere quelle regole non scritte che servono ad organizzare e gestire un progetto software. Sono piccole &#8220;tips&#8221;, struttura delle cartelle e file che non devono mai mancare. Presenterò anche altri strumenti, come ho fatto per Python, ma questa <a href='http://davideaversa.it/slashcode/2010/05/come-organizzare-un-progetto/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F05%2Fcome-organizzare-un-progetto%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/05/come-organizzare-un-progetto/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Come organizzare un progetto" data-url="http://davideaversa.it/slashcode/2010/05/come-organizzare-un-progetto/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><img class="alignleft size-thumbnail wp-image-585" title="House of cards" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/05/House_of_cards-150x150.jpg" alt="" width="150" height="150" />Stavo attrezzando un piccolo progettino scemo sulle OpenGL (più didattico che altro) e così ho pensato di condividere quelle regole non scritte che servono ad organizzare e gestire un progetto software. Sono piccole &#8220;tips&#8221;, struttura delle cartelle e file che non devono mai mancare. Presenterò anche altri strumenti, come ho fatto per Python, ma questa volta saranno strumenti &#8220;generici&#8221;, ovvero utilizzabili con qualunque linguaggio.</p>
<p>Questo perché tenere in piedi un progetto male organizzato è come costruire un castello di carta. Ci vuole una base forte per rendere il più accogliente possibile il progetto per le persone interessate a collaborare, sia per i membri del vostro team (se ne avete uno).</p>
<p><strong>STRUTTURA CARTELLE</strong></p>
<p>Le cartelle vanno organizzate in modo piuttosto coerente. È importante non mischiare tutto in poche cartelle confuse specialmente per progetti destinati a crescere rapidamente. Una struttura minimale è la seguente:</p>
<ul>
<li><strong>src</strong> &#8211; La cartella <em>src</em> contiene il codice sorgente. Il codice al suo interno può essere organizzato come si desidera in accordo con le convenzioni del linguaggio. L&#8217;importante è che contenga solamente il codice del programma/libreria.</li>
<li><strong>test</strong> &#8211; La cartella <em>test</em> contiene il codice sorgente dedicato ai test. Il codice di test serve a provare il corretto funzionamento delle classi sviluppate o di alcuni moduli software oppure possono essere semplicemente test prestazionali.</li>
<li><strong>build</strong> &#8211; La cartella <em>build</em> contiene tutti i file ottenuti come residuo di una compilazione. Possono essere moduli parziali C/C++ (.o), classi Java (.class), file python compilati (.pyc) e così via. La cartella va a sua volta divisa nelle varie configurazioni di compilazione (ad esempio ci potrebbe essere una configurazione <em>Debug</em> con compilati ottimizzati per il debug e una configurazione <em>Release</em> con compilati ottimizzati per le prestazioni).</li>
<li><strong>dist</strong> &#8211; La cartella <em>dist<strong> </strong><span style="font-style: normal;">contiene il prodotto finito. Può essere il programma eseguibile, un file .jar, una libreria .so e così via. Tutto quello che sta in dist deve essere pronto per essere eseguito e distribuito.</span></em></li>
<li><em><span style="font-style: normal;"><strong>doc</strong> &#8211; La cartella <em>doc</em> contiene la documentazione dettagliata. Tale documentazione è per lo più la specifica dettagliata delle API la quale è solitamente auto-generata.</span></em></li>
</ul>
<p><strong>FILE MUST</strong></p>
<p>Nella cartella radice sono necessari alcuni file. Necessari è una parola grossa in quanto solitamente il programma funziona benissimo anche senza, ma sono un tocco di classe e di umanità verso chi vuole accedere ai sorgenti della vostra applicazione.</p>
<ul>
<li><strong>Tool di compilazione -</strong> Sia Makefile, o Cmake o qualunque altro tool utilizzate&#8230; <strong>DEVE</strong> esserci uno strumento per la configurazione e la compilazione. Molti IDE possono anche auto-generare roba simile.</li>
<li><strong>README</strong> &#8211; Il readme deve dire vita morte e miracoli sull&#8217;applicazione. Deve spiegare come può essere compilata  l&#8217;applicazione, quali sono le dipendenze, i bug noti, etc..</li>
<li><strong>README.src</strong> &#8211; Per applicazioni il cui README è eccessivamente complesso è bene separare le informazioni per sviluppatori in un file a parte. Il file README.src deve spiegare come è organizzato il codice, quale IDE si è usato (se si è usato), quale librerie di sviluppo servono, quale strumenti si sono usati per generare la documentazione, per i test e per altro. Insomma&#8230; tutto ciò che può essere utile per chi è interessato alla modifica del codice.</li>
<li><strong>COPYRIGTH </strong>- Il file che contiene le informazioni sulla licenza del progetto.</li>
<li><strong>CHANGELOG</strong> &#8211; Il file che contiene la lista dei cambiamenti apportati al programma nel corso della sua storia. Questo file può essere auto-generato da alcuni sistemi di CVS.</li>
</ul>
<p><strong>DOCUMENTAZIONE</strong></p>
<p>Scrivere a mano la documentazione è sempre l&#8217;ultimo dei problemi. Nonostante ci siano molte cose che debbano necessariamente essere scritte a mano, per le API è possibile usare dei tools automatici. Abbiamo visto Epydoc per python. Bene, per tutto il resto c&#8217;è <strong>Doxygen</strong>. Doxygen è un programma di auto-generazione della documentazione utilizzabile per una miriade di linguaggi.</p>
<p><strong>CVS</strong></p>
<p>Il programma per CVS è essenziale se programmate in gruppo ma è molto utile anche se programmate da soli. Vi permette di manipolare il codice con molta disinvoltura navigando fra branch diversi in modo del tutto trasparente.</p>
<p>Potete usare quello che vi pare come CVS anche se io consiglio sempre <strong>GIT</strong>. Lo trovo molto più veloce ed elastico dei concorrenti. Se volete convincervi potete sempre andare su <a href="http://it.whygitisbetterthanx.com/">http://it.whygitisbetterthanx.com/</a> <img src='http://davideaversa.it/slashcode/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><strong>MESSAGGISTICA</strong></p>
<p>Ebbene si. Se avete un gruppo di persone con cui lavorate insieme non potete prescindere da un sistema rapido e veloce per lo scambio di informazioni, siano esse &#8220;OMG! Non funziona una cippa!&#8221; o messaggi più tecnici.</p>
<p>A questo punto avete le basi. Non vi resta che seguire questi consigli e lanciarvi nel tempestoso mondo del software libero sperando che il vostro progetto non sia un castello di carte spazzato via dal vento.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=584&amp;md5=80f2256c07614aa3f748c61afec9b950" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/05/come-organizzare-un-progetto/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F05%2Fcome-organizzare-un-progetto%2F&amp;language=it_IT&amp;category=text&amp;title=Come+organizzare+un+progetto&amp;description=Stavo+attrezzando+un+piccolo+progettino+scemo+sulle+OpenGL+%28pi%C3%B9+didattico+che+altro%29+e+cos%C3%AC+ho+pensato+di+condividere+quelle+regole+non+scritte+che+servono+ad+organizzare+e+gestire+un+progetto...&amp;tags=cvs%2Cdocumentation%2Cgit%2Cprogrammazione%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Gitg &#8211; Un altra Gui per Git!</title>
		<link>http://davideaversa.it/slashcode/2010/05/gitg-un-altra-gui-per-git/</link>
		<comments>http://davideaversa.it/slashcode/2010/05/gitg-un-altra-gui-per-git/#comments</comments>
		<pubDate>Sat, 22 May 2010 13:13:24 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[gtk]]></category>

		<guid isPermaLink="false">http://davideaversa.it/slashcode/?p=582</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2010/05/gitg-un-altra-gui-per-git/"><img title="Gitg &#8211; Un altra Gui per Git!" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/05/gitglinux-150x150.png" alt="Gitg &#8211; Un altra Gui per Git!"  width="200" height="200" /></a></div><br/>So che lo state pensando. &#8220;Oh no! Un altra GUI per Git! Che dio ci scampi!&#8221;. Effettivamente di gui per git ce ne sono a valanghe. Ognuna con i suoi vantaggi e svantaggi. Però Gitg ha qualcosa che te la fa preferire. Innanzitutto è ben integrato con GNOME, secondo ha una velocità impressionante nel caricare <a href='http://davideaversa.it/slashcode/2010/05/gitg-un-altra-gui-per-git/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F05%2Fgitg-un-altra-gui-per-git%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2010/05/gitg-un-altra-gui-per-git/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Gitg &#8211; Un altra Gui per Git!" data-url="http://davideaversa.it/slashcode/2010/05/gitg-un-altra-gui-per-git/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><a href="http://davideaversa.it/slashcode/wp-content/uploads/2010/05/gitglinux.png"><img class="alignleft size-thumbnail wp-image-583" title="Gitg" src="http://davideaversa.it/slashcode/wp-content/uploads/2010/05/gitglinux-150x150.png" alt="" width="150" height="150" /></a>So che lo state pensando. &#8220;Oh no! Un altra GUI per Git! Che dio ci scampi!&#8221;. Effettivamente di gui per git ce ne sono a valanghe. Ognuna con i suoi vantaggi e svantaggi. Però <strong>Gitg</strong> ha qualcosa che te la fa preferire. Innanzitutto è ben integrato con GNOME, secondo ha una velocità impressionante nel caricare repository di enormi dimensioni (dall&#8217;immagine potete vedere che carica più di 17.000 commit in meno di un secondo).</p>
<p>E poi è graficamente gradevole con i suoi colori e amenità varie. E questo non guasta mai. <img src='http://davideaversa.it/slashcode/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Il programma è disponibile nei repo ufficiali di Lucid ma vi consiglio di usare la versione 0.0.6 che invece trovate nei repo di Maverik. Potete prenderla direttamente da la, non ci sono problemi.</p>
<p>Unica pecca il supporto ai repository remoti non ancora completo.</p>
<p>Se vi capita provatelo. Buon sabato.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=582&amp;md5=3c0170007c82e6045d7271a77dd5909e" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2010/05/gitg-un-altra-gui-per-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2010%2F05%2Fgitg-un-altra-gui-per-git%2F&amp;language=it_IT&amp;category=text&amp;title=Gitg+%26%238211%3B+Un+altra+Gui+per+Git%21&amp;description=So+che+lo+state+pensando.+%26%238220%3BOh+no%21+Un+altra+GUI+per+Git%21+Che+dio+ci+scampi%21%26%238221%3B.+Effettivamente+di+gui+per+git+ce+ne+sono+a+valanghe.+Ognuna+con+i+suoi...&amp;tags=cvs%2Cgit%2Cgnome%2Cgtk%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Gitk &#8211; Una GUI per Git</title>
		<link>http://davideaversa.it/slashcode/2009/09/git-gitk/</link>
		<comments>http://davideaversa.it/slashcode/2009/09/git-gitk/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 10:29:22 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[git-gui]]></category>
		<category><![CDATA[gitk]]></category>

		<guid isPermaLink="false">http://slashcode.wordpress.com/?p=255</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2009/09/git-gitk/"><img title="Gitk &#8211; Una GUI per Git" src="http://lwn.net/images/ns/kernel/gitk.png" alt="Gitk &#8211; Una GUI per Git"  width="183" height="200" /></a></div><br/>Gitk e Git-Tool sono due strumenti che permettono di interagire con git esclusivamente (o quasi) per via grafica. Grazie a questi tool si può, inoltre, visualizzare un grafico che riassume la storia del progetto. Possiamo creare branches, fare merge, commit, push, possiamo comprimere il database per aumentre le prestazioni, possiamo vedere quali file sono stati modificati ma non ancora commissionati e gestire i repository remoti (come Gitorious).]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F09%2Fgit-gitk%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2009/09/git-gitk/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Gitk &#8211; Una GUI per Git" data-url="http://davideaversa.it/slashcode/2009/09/git-gitk/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p>Dopo aver visto un po di comandi base di Git è giunto il momento di vedere un tool molto semplice per avere tutta la storia del progetto a portata di click.</p>
<p><strong>Gitk</strong> è un tool grafico scritto con le librerie Tk per interagire con Git. Permette di navigare con facilità attraverso i vari commit e i vari rami del progetto. Possiamo installarlo facilmente con:</p>
<pre># apt-get install gitk
# apt-get install git-gui</pre>
<p>Una volta installato basta spostarci nella cartella del programma e dare:</p>
<pre>$ gitk</pre>
<p>A questo punto ci apparirà una finestra simile a quella mostrata nello screenshot.</p>
<p style="text-align:center;"><a href="http://lwn.net/images/ns/kernel/gitk.png"><img class="aligncenter" title="Screenshot" src="http://lwn.net/images/ns/kernel/gitk.png" alt="" width="335" height="364" /></a></p>
<p style="text-align:left;">Nella finestra possiamo identificare subito 3 zone:</p>
<ul>
<li><strong>La finestra del grafo.</strong> In alto. Qui sono mostrati i vari commit con la loro descrizione. A sinistra di c&#8217;è la rappresentazione grafica dei vari rami. Delle linee che mostrano la storia del progetto, le divisioni e le riunificazioni dei vari rami. Così che si possa facilmente capire come si distribuiscono le varie linee di progetto.</li>
<li><strong>La finestra dei diff.</strong> A sinistra. Qui, per ogni commit, vengono mostrate in dettaglio le differenza fra la versione attuale e quella precedente.</li>
<li><strong>La finestra dei file.</strong> Dove vengono mostrati, per ogni commit, i file interessati da modifiche.</li>
</ul>
<p>Ma la caratteristica principale è nascosta nel menù <strong>file. </strong>Da qui infatti possiamo avviare <strong>git-gui</strong> (tramite <em>Start git gui</em>).</p>
<p><strong>Git-Gui </strong>è il tool per eccellenza. Ci permetti di fare per via grafica gran parte delle operazioni di Git. Possiamo creare branches, fare merge, commit, push, possiamo comprimere il database per aumentre le prestazioni, possiamo vedere quali file sono stati modificati ma non ancora commissionati e gestire i repository remoti (come Gitorious).</p>
<p>Insomma, abbiamo a disposizione un tool molto potente, leggero e versatile per poter dimenticare il terminale in quasi tutti i casi di utilità. Resta il fatto che i comandi da terminale è sempre meglio saperli.</p>
<p>Vi consiglio vivamente di provarlo.</p>
<p>Alla prossima.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=255&amp;md5=a6c08ad1fbd6ec4b52109320e54f26f4" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2009/09/git-gitk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F09%2Fgit-gitk%2F&amp;language=it_IT&amp;category=text&amp;title=Gitk+%26%238211%3B+Una+GUI+per+Git&amp;description=Dopo+aver+visto+un+po+di+comandi+base+di+Git+%C3%A8+giunto+il+momento+di+vedere+un+tool+molto+semplice+per+avere+tutta+la+storia+del+progetto+a+portata+di...&amp;tags=cvs%2Cgit%2Cgit-gui%2Cgitk%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Git &#8211; Log e Branches</title>
		<link>http://davideaversa.it/slashcode/2009/09/git-log-e-branches/</link>
		<comments>http://davideaversa.it/slashcode/2009/09/git-log-e-branches/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 15:25:08 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[branch]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://slashcode.wordpress.com/?p=247</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2009/09/git-log-e-branches/"><img title="Git &#8211; Log e Branches" src="http://www.freefoto.com/images/15/19/15_19_65---Tree-Branches_web.jpg" alt="Git &#8211; Log e Branches"  width="134" height="200" /></a></div><br/>Continuiamo a parlare di Git. Dopo aver visto come inizializzare un progetto e gestire le varie modifiche semplicemente con git-add e git-commit, vediamo come ottenere la lista delle varie modifiche e come gestire i vari rami di sviluppo. Innanzitutto affrontiamo la questione dei log. I log sono dei riassunti in cui sono elencati via via <a href='http://davideaversa.it/slashcode/2009/09/git-log-e-branches/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F09%2Fgit-log-e-branches%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2009/09/git-log-e-branches/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Git &#8211; Log e Branches" data-url="http://davideaversa.it/slashcode/2009/09/git-log-e-branches/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><img class="alignleft" title="Branches" src="http://www.freefoto.com/images/15/19/15_19_65---Tree-Branches_web.jpg" alt="" width="169" height="252" />Continuiamo a parlare di Git. Dopo aver visto come inizializzare un progetto e gestire le varie modifiche semplicemente con <em>git-add </em>e <em>git-commit</em>, vediamo come ottenere la lista delle varie modifiche e come gestire i vari <em>rami</em> di sviluppo.</p>
<p>Innanzitutto affrontiamo la questione dei log. I <em>log</em> sono dei riassunti in cui sono elencati via via tutti i vari <em>commit</em> che sono stati inviati.<strong> </strong><em>Git</em> permette di creare un gran numero di log con un enorme lista di opzioni. Io presenterò solo le tre forme più diffuse lasciandovi, per il momento, il divertimento di legger <em>man git-log</em> per vedere in dettaglio tutte le varie opzioni.</p>
<p>Il log più semplice è sicuramente</p>
<pre>$ git log</pre>
<p>Con questo comando otterrete semplicemente la lista di tutti i commit con data e autore.</p>
<p>Se invece volete sapere, per ogni commit, anche quali modifiche siano state effettuate vi basta digitare:</p>
<pre>$ git log -p</pre>
<p>In questo modo alla lista precedente verrà aggiunto anche il<em> diff</em> corrispondente ovvero una lista dettagliata della modifica effettuata.</p>
<p>Spesso però la lista dettagliata non interessa, ma interessa soltanto un riassunto che ci dica l&#8217;entità delle modifiche effettuate su ogni file.</p>
<pre>$ git log --stat --summary</pre>
<p>Questo comando mostra, per ogni commit, quante righe sono state modificate/aggiunte/rimosse per ogni file.</p>
<p><strong>Ora vediamo invece come gestire i vari rami di sviluppo.</strong></p>
<p>Supponiamo di voler creare un ramo sperimentale per la nostra applicazione. Per creare questo ramo ci basta digitare:</p>
<pre>$ git branch experimental</pre>
<p>Ora il nostro ramo è stato creato e per apportargli modifiche ci basta dare</p>
<pre>$ git checkout experimental</pre>
<p>Ora siamo nel ramo experimental. Possiamo modificare liberamente i nostri file e, dopo aver modificato a piacere, tornare di nuovo al ramo principale con</p>
<pre>$ git checkout master</pre>
<p>Noterete che le modifiche appena fatte non sono più visibili. Esse infatti sono state fatte nel ramo experimental. Ora potete fare delle modifiche diverse nel ramo &#8220;master&#8221; causando così la separazione dei due rami.</p>
<p>A questo punto potreste voler riunire di nuovo i due rami perché avete visto che la modifica in experimental funziona meglio della versione originale. Per fare ciò basta un semplicissimo</p>
<pre>$ git merge experimental</pre>
<p>E, se non ci sono conflitti, avete concluso. In caso di conflitti invece le righe conflittuali verranno marcate così da semplificare la loro adeguazione.</p>
<p>Ora non vi resta che cancellare il ramo experimental, se non vi serve più, con</p>
<pre>$ git branch -d experimental</pre>
<p>Come vedete la gestione dei rami è decisamente semplice e vi permette in modo rapido e sicuro di <em>azzardare</em> modifiche al codice mantenendo sempre una versione <em>stabile</em> su cui appoggiarvi.</p>
<p>Ovviamente potete mantenere contemporaneamente qualunque numero di branches vogliate.</p>
<p>Hai richieste al riguardo? Commenta o visita il forum!<br />
<a href="http://www.linuxqualityhelp.it/supporto" target="_blank"><img src="http://www.linuxqualityhelp.it/lqh_help.png" alt="Serve aiuto? LQH!"></a></p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=247&amp;md5=c71bd5c6a22d9fd830a96a08dcddb967" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2009/09/git-log-e-branches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F09%2Fgit-log-e-branches%2F&amp;language=it_IT&amp;category=text&amp;title=Git+%26%238211%3B+Log+e+Branches&amp;description=Continuiamo+a+parlare+di+Git.+Dopo+aver+visto+come+inizializzare+un+progetto+e+gestire+le+varie+modifiche+semplicemente+con+git-add+e+git-commit%2C+vediamo+come+ottenere+la+lista+delle+varie+modifiche...&amp;tags=branch%2Ccvs%2Cgit%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Git &#8211; Hostare un progetto su Gitorious</title>
		<link>http://davideaversa.it/slashcode/2009/08/git-hostare-un-progetto-su-gitorious/</link>
		<comments>http://davideaversa.it/slashcode/2009/08/git-hostare-un-progetto-su-gitorious/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 08:33:54 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[cvs]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitorious]]></category>
		<category><![CDATA[version control system]]></category>

		<guid isPermaLink="false">http://slashcode.wordpress.com/?p=217</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2009/08/git-hostare-un-progetto-su-gitorious/"><img title="Git &#8211; Hostare un progetto su Gitorious" src="http://slashcode.files.wordpress.com/2009/08/logo-cube-text.png" alt="Git &#8211; Hostare un progetto su Gitorious"  width="" /></a></div><br/>Precedentemente abbiamo visto come muovere i primi passi con Git. Ovviamente usare un CVS in locale non sfrutta le sue massime potenzialità. Dobbiamo quindi trovare un host remoto sul quale condividere il progetto. Quello che uso io è Gitorious. Gitorious offre hosting gratuito per tutti quei progetti con licenze riconosciute dalla Free Software Foundation. Se <a href='http://davideaversa.it/slashcode/2009/08/git-hostare-un-progetto-su-gitorious/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F08%2Fgit-hostare-un-progetto-su-gitorious%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2009/08/git-hostare-un-progetto-su-gitorious/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Git &#8211; Hostare un progetto su Gitorious" data-url="http://davideaversa.it/slashcode/2009/08/git-hostare-un-progetto-su-gitorious/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><img class="alignleft size-full wp-image-218" title="Gitorious" src="http://slashcode.files.wordpress.com/2009/08/logo-cube-text.png" alt="Gitorious" width="95" height="95" />Precedentemente abbiamo visto come muovere i primi passi con <strong>Git</strong>. Ovviamente usare un CVS in locale non sfrutta le sue massime potenzialità.</p>
<p>Dobbiamo quindi trovare un host remoto sul quale condividere il progetto. Quello che uso io è <a href="http://gitorious.org/"><strong>Gitorious</strong></a>. Gitorious offre hosting gratuito per tutti quei progetti con licenze riconosciute dalla Free Software Foundation. Se avete bisogno di hosting per software closed, oltre a non avere la mia stima, dovrete ricorrere a hosting a pagamento (basta una rapida ricerca su Google).</p>
<p>Per prima cosa dobbiamo registrarci. La procedura è semplice e non richiede nessuna conoscenza particolare. Dopodiché creiamo un nuovo progetto cliccando sul bottone in fondo a destra.</p>
<p>Dopo aver inserito i dati del progetto vi verrà chiesto di inserire la vostra <strong>chiave SSH pubblica</strong> per garantire la massima sicurezza. Se non avete una chiave ssh è il momento di crearne una con il comando:</p>
<pre>$ ssh-keygen</pre>
<p>Vi verrà chiesto di inserire la password. Inseritela e al termine della procedura avrete la vostra chiave nel file <em>.ssh/id_rsa.pub</em> nella vostra home.</p>
<p>Ora potete aprire questo file e copiarne il contenuto per inserirlo in Gitorious e fargli accettare questa chiave.</p>
<p>Subito dopo dovrete creare il primo <em>repository</em> del vostro progetto. Un repository non è altro che uno <em>scaffale</em> che contiente il vostro codice. In progetti complessi potreste aver bisogno di mantenere contemporaneamente più versioni del vostro programma (ad esempio risolvendo bug della versione stable e intanto preparare la nuova versione). In questo caso vi basterà creare due repository, uno per la versione stable (es: <em>pippo2.0</em>) e un altro per la versione di sviluppo (es:<em> trunk</em>).</p>
<p>A voi però per il momento ne basta uno. Createlo seguendo le indicazioni e avrete finito.</p>
<p>Ora dovete configurare git affinché riconosca il repository remoto appena creato.</p>
<p>Aprite il file <em>.git/config</em> nella cartella del vostro progetto e inserite come segue:</p>
<pre>[remote "origin"]
       url = git@gitorious.org:<em>project</em>/<em>repository.git</em>
       fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
       remote = origin
       merge = refs/heads/master</pre>
<p>Sostituendo a <em>project</em> il nome del progetto su Gitorious, e a <em>repository</em> il nome del repository. Questa configurazione istruisce git dicendogli che il <em>branch</em> locale <em>master</em> ha il suo corrispettivo remoto <em>origin. </em></p>
<p>A questo punto per spedire il vostro progetto nella rete non basta che dare:</p>
<pre>$ git push</pre>
<p>E godersi l&#8217;idea che il proprio progetto fa ora parte del fantastico mondo del Free Software.</p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=217&amp;md5=f42b406bb60d9e824cedc020e6b8a920" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2009/08/git-hostare-un-progetto-su-gitorious/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F08%2Fgit-hostare-un-progetto-su-gitorious%2F&amp;language=it_IT&amp;category=text&amp;title=Git+%26%238211%3B+Hostare+un+progetto+su+Gitorious&amp;description=Precedentemente+abbiamo+visto+come+muovere+i+primi+passi+con+Git.+Ovviamente+usare+un+CVS+in+locale+non+sfrutta+le+sue+massime+potenzialit%C3%A0.+Dobbiamo+quindi+trovare+un+host+remoto+sul+quale...&amp;tags=cvs%2Cgit%2Cgitorious%2Cversion+control+system%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Quick Start &#8211; Git</title>
		<link>http://davideaversa.it/slashcode/2009/08/quick-start-git/</link>
		<comments>http://davideaversa.it/slashcode/2009/08/quick-start-git/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 08:53:41 +0000</pubDate>
		<dc:creator>THeK3nger</dc:creator>
				<category><![CDATA[CVS]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitorious]]></category>
		<category><![CDATA[version control system]]></category>

		<guid isPermaLink="false">http://slashcode.wordpress.com/?p=213</guid>
		<description><![CDATA[<div><a href="http://davideaversa.it/slashcode/2009/08/quick-start-git/"><img title="Quick Start &#8211; Git" src="http://slashcode.files.wordpress.com/2009/08/header.gif" alt="Quick Start &#8211; Git"  width="" /></a></div><br/>Git è un importante e noto version control system. Utilizzato dagli stessi sviluppatori del kernel, nonchè dagli sviluppatori di progetti come Qt e KDE. Ha l&#8217;enorme pregio della velocità ed è possibile trovare molti tools di supporto e hosting gratuiti (io utilizzo Gitorious). Adesso vedremo un piccolo quick start, ovvero una piccola guida per conoscere <a href='http://davideaversa.it/slashcode/2009/08/quick-start-git/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<div style="height:33px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F08%2Fquick-start-git%2F&amp;layout=button_count&amp;show_faces=false&amp;width=100&amp;action=like&amp;colorscheme=light&amp;send=false&amp;height=27" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:27px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:90px;"><div class="g-plusone" data-size="medium" data-href="http://davideaversa.it/slashcode/2009/08/quick-start-git/" ></div></div><div class="really_simple_share_twitter" style="width:110px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" 
						data-text="Quick Start &#8211; Git" data-url="http://davideaversa.it/slashcode/2009/08/quick-start-git/" 
						data-via=""  ></a></div></div>
		<div style="clear:both;"></div><p><img class="alignleft size-full wp-image-214" title="Git" src="http://slashcode.files.wordpress.com/2009/08/header.gif" alt="Git" width="107" height="106" /> <strong>Git</strong> è un importante e noto <strong>version control system.</strong> Utilizzato dagli stessi sviluppatori del kernel, nonchè dagli sviluppatori di progetti come Qt e KDE.<br />
Ha l&#8217;enorme pregio della <strong>velocità</strong> ed è possibile trovare molti tools di supporto e hosting gratuiti (io utilizzo <a href="http://gitorious.org" target="_blank">Gitorious</a>).</p>
<p>Adesso vedremo un piccolo <em>quick start</em>, ovvero una piccola guida per conoscere le basi di Git ed essere subito operativi. La guida è basata sull&#8217;ultima versione disponibile al momento (la 1.6.4.1) ma dovrebbe adattarsi facilmente anche a versioni non troppo distanti.</p>
<p>Per prima cosa installiamo <strong>Git</strong> con il solito comando:</p>
<pre># apt-get install git-core</pre>
<p>Facendolo precedere da <em>sudo</em> se usate ubuntu e derivate.</p>
<p>Una volta installato dobbiamo procedere alla configurazione iniziale:</p>
<pre><tt><tt>$ git config --global user.name "Qui Inserisci Il Tuo Nome"
$ git config --global user.email qui.inserisci@la.tua.email
</tt></tt></pre>
<p>Ora siamo pronti ad inizializzare Git con il progetto che stiamo portando avanti. Supponiamo che il progetto si trovi in una cartella <em>project</em> nella vostra home.</p>
<pre>$ cd project
$ git init
$ git add .
</pre>
<p>Il comando <em>init</em> inizializzerà Git e creerà una cartella nascosta <em>.git/ </em>in cui verranno memorizzati i dati. Il comando <em>add</em>, invece, aggiungerà i file a del progetto nell&#8217;insieme dei file <em>controllati</em> da Git. Ora, per rendere effettivo tutto basta dare:</p>
<pre>$ git commit</pre>
<p>Vi verrà chiesto di inserire un messaggio che descriva il commit, ovvero che spieghi a grandi linee cosa è stato modificato-aggiunto dall&#8217;ultima volta.</p>
<p>Ora potete bellamente modificare tutto e Git terrà traccia di tali modifiche. Per vedere un breve riassunto dei file modificati dall&#8217;ultimo commit basta dare</p>
<pre>$ git status</pre>
<p>Che restituirà una lista del tipo:</p>
<pre># On branch master
# Changes to be committed:
#   (use "git reset HEAD &lt;file&gt;..." to unstage)
#
#       modified:   file1
#       modified:   file2
#       modified:   file3
</pre>
<p>Queste sono grossomodo le basi. Successivamente vedremo come hostare un progetto mantenuto con git in Gitorious e come gestire le varie <strong>branch.</strong></p>
 <p><a href="http://davideaversa.it/slashcode/?flattrss_redirect&amp;id=213&amp;md5=c92bbb78909730edabe00a4db65f32fd" title="Flattr" target="_blank"><img src="http://davideaversa.it/slashcode/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://davideaversa.it/slashcode/2009/08/quick-start-git/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=thek3nger&amp;popout=1&amp;url=http%3A%2F%2Fdavideaversa.it%2Fslashcode%2F2009%2F08%2Fquick-start-git%2F&amp;language=it_IT&amp;category=text&amp;title=Quick+Start+%26%238211%3B+Git&amp;description=Git+%C3%A8+un+importante+e+noto+version+control+system.+Utilizzato+dagli+stessi+sviluppatori+del+kernel%2C+nonch%C3%A8+dagli+sviluppatori+di+progetti+come+Qt+e+KDE.+Ha+l%26%238217%3Benorme+pregio+della+velocit%C3%A0+ed...&amp;tags=git%2Cgitorious%2Cversion+control+system%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

