<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Drogomir: Git</title>
    <link>http://blog.drogomir.com/articles/2008/04/08/git</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Git</title>
      <description>&lt;p&gt;Je&#380;eli kto&#347; jeszcze nie zauwa&#380;y&#322; spo&#322;eczno&#347;&#263; framework&#243;w &lt;a href="http://rubyonrails.org"&gt;Ruby on Rails&lt;/a&gt; i &lt;a href="http://merbivore.org"&gt;Merb&lt;/a&gt; przesiada si&#281; powoli na rozproszony system kontroli wersji &lt;a href="http://git.or.cz/"&gt;Git&lt;/a&gt;. Na gita przechodz&#261; Railsy, przeszed&#322; ju&#380; Merb, Rspec, sporo koder&#243;w wypuszczaj&#261;cych popularne pluginy. Jednym s&#322;owem co&#347; w tym musi by&#263;.&lt;/p&gt;


	&lt;p&gt;I rzeczywi&#347;cie co&#347; w tym jest.&lt;/p&gt;


	&lt;p&gt;O co chodzi? Jaros&#322;aw Zabie&#322;&#322;o na swoim blogu &lt;a href="http://blog.zabiello.com/articles/2008/03/19/distributed-vcs"&gt;przedstawi&#322; kilka rozproszonych system&#243;w kontroli wersji&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Jakie s&#261; zalety gita?&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;ka&#380;dy posiadaj&#261;cy kopi&#281; aplikacji posiada te&#380; ca&#322;e repozytorium. Co&#347; si&#281; rozwali&#322;o? Trzeba zmieni&#263; serwer? Serwis,a na kt&#243;rym hostowa&#322;e&#347; &lt;span class="caps"&gt;SVN&lt;/span&gt;&amp;#8217;a pad&#322;? Smuteczek. Ale nie z gitem &amp;#8211; repozytorium, kt&#243;re masz na dysku wystarczy.&lt;/li&gt;
		&lt;li&gt;Git jest du&#380;o szybszy od SVNa&lt;/li&gt;
		&lt;li&gt;&amp;#8220;Mobilno&#347;&#263;&amp;#8221; &amp;#8211; bardzo wa&#380;na dla mnie kwestia. Cz&#281;sto wyje&#380;d&#380;am i zdarza mi si&#281; pracowa&#263; bez dost&#281;pu do netu. W przypadku SVNa musia&#322;em wrzuci&#263; jeden mega commit z pierdylionem zmian. W przypadku gita commity lec&#261; do repozytorium na dysku i p&#243;&#378;niej mo&#380;na je ewentualnie pchn&#261;&#263; (push) do publicznego repo.&lt;/li&gt;
		&lt;li&gt;Bardzo &#322;atwa obs&#322;uga ga&#322;&#281;zi. Pracuj&#261;c z gitem najlepiej wyrobi&#263; sobie nawyk tworzenia ga&#322;&#281;zi przy ka&#380;dej zmianie, lub grupie po&#322;&#261;czonych ze sob&#261; zmian. Dzi&#281;ki  temu mo&#380;na pracowa&#263; r&#243;wnolegle nad wieloma rzeczami nie za&#347;miecaj&#261;c aplikacji. P&#243;&#378;niej tylko &#322;&#261;czymy ga&#322;&#281;zie, kt&#243;re rzeczywi&#347;cie s&#261; potrzebne, je&#380;eli co&#347; nie wyjdzie mo&#380;na po prostu dan&#261; ga&#322;&#261;&#378; wyrzuci&#263; i po krzyku&lt;/li&gt;
		&lt;li&gt;du&#380;o &#322;atwiejsze wrzucanie zmian do projekt&#243;w open source&amp;#8217;owych, szczeg&#243;lnie z pomoc&#261; githuba (ale o tym za chwil&#281;).&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Ale kod le&#380;&#261;cy ca&#322;y czas na dysku b&#281;dzie ma&#322;o przydatny. Dlatego mo&#380;na za&#322;o&#380;y&#263; sobie publiczne repozytorium. Stwierdzi&#322;em jaki&#347; czas temu, &#380;e w trosce o sw&#243;j czas, kt&#243;rego zawsze za ma&#322;o, b&#281;d&#281; musia&#322; ograniczy&#263; wszelkie prace, kt&#243;rych mog&#281; stosunkowo &#322;atwo unikn&#261;&#263;. Dlatego nie bawi&#322;em si&#281; nawet w tworzenie swojego w&#322;asnego publicznego repozytorium. Wygodniej skorzysta&#263; pracy innych ludzi ;-)&lt;/p&gt;


	&lt;p&gt;Obecnie najbardziej popularne (jedyne?) serwisy oferuj&#261;ce hosting repozytori&#243;w gita to: &lt;a href="http://github.org"&gt;GitHub&lt;/a&gt; i &lt;a href="http://gitorius.org"&gt;Gitorius&lt;/a&gt;. Gitorius jest w pe&#322;ni darmowy, ale nie mo&#380;na na nim trzyma&#263; prywatnych repozytori&#243;w. Na githubie za darmo mo&#380;na trzyma&#263; publiczne repozytoria (ogranicza nas 100mb &amp;#8211; je&#380;eli chodzi o gita to bardzo du&#380;o), za prywatne trzeba b&#281;dzie zap&#322;aci&#263;. Na razie mo&#380;na jeszcze korzysta&#263; za darmo, bo serwis jest w fazie beta.&lt;/p&gt;


	&lt;p&gt;Zarejestrowa&#322;em si&#281; na Githubie kilka dni temu i przenios&#322;em tam 2 ze swoich projekt&#243;w. Github to bardzo fajny pomys&#322; na stworzenie spo&#322;eczno&#347;ci koder&#243;w (napisany oczywi&#347;cie w railsach). Co daje taki serwis?&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;dost&#281;p do rss&amp;#8217;&#243;w poszczeg&#243;lnych u&#380;ytkownik&#243;w, projekt&#243;w, feed z wiadomo&#347;ciami z obserwowanych projekt&#243;w&lt;/li&gt;
		&lt;li&gt;mo&#380;na jednym klikni&#281;ciem zrobi&#263; kopi&#281; aplikacji (fork) &amp;#8211; jakie s&#261; tego korzy&#347;ci opisa&#322; na blogu jeden z developer&#243;w merba Michael Ivey :&lt;a href="http://gweezlebur.com/2008/2/9/contributing-to-merb-part-2"&gt;Contributing to merb&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;mo&#380;na wys&#322;a&#263; znajomym &amp;#8220;pull request&amp;#8221; &amp;#8211; czyli pro&#347;b&#281; o uaktualnienie, na przyk&#322;ad po wa&#380;nej aktualizacji&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Dodatkowo dostajemy wszystkie zalety gita.&lt;/p&gt;


	&lt;p&gt;No to co? Przesiadka na jasn&#261; stron&#281; mocy, z tego fuj fuj oble&#347;nego i niefajnego SVNa, kt&#243;ry tak chwali&#322;em kiedy si&#281; z nim zapozna&#322;em ;-)&lt;/p&gt;</description>
      <pubDate>Tue, 08 Apr 2008 14:50:00 +0200</pubDate>
      <guid isPermaLink="false">urn:uuid:78e03164-3ce1-41e8-990b-be7f9e2e0d60</guid>
      <author>Piotr Sarnacki</author>
      <link>http://blog.drogomir.com/articles/2008/04/08/git</link>
      <category>Programowanie</category>
      <category>git</category>
      <category>github</category>
      <category>gitorius</category>
      <category>svn</category>
      <category>scm</category>
      <trackback:ping>http://blog.drogomir.com/articles/trackback/49</trackback:ping>
    </item>
  </channel>
</rss>
