<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>Nothing in particular &#187; git</title>
	<atom:link href="http://blogs.gnome.org/juanje/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/juanje</link>
	<description>Juanje's thoughts about GNOME, FLOSS and more</description>
	<lastBuildDate>Tue, 24 Jan 2012 02:35:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/es/</creativeCommons:license>		<item>
		<title>Using git behind a proxy</title>
		<link>http://blogs.gnome.org/juanje/2009/07/17/git_behind_proxy/</link>
		<comments>http://blogs.gnome.org/juanje/2009/07/17/git_behind_proxy/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 12:58:46 +0000</pubDate>
		<dc:creator>juanje</dc:creator>
				<category><![CDATA[distros]]></category>
		<category><![CDATA[DVCS]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[guadalinex]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[socks]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juanje/?p=169</guid>
		<description><![CDATA[This is a simple recipe about how to use git behind a proxy. Right now I&#8217;m working behind a very restrictive firewall and I can&#8217;t get any port I need open, so I use a proxy socks for working with git,bzr,jabber and so on. I was looking for an easy way to use git with [...]]]></description>
			<content:encoded><![CDATA[<style>
div.paste {  padding: 10px 10px 10px 10px; font-size: 110%;  border: .5px solid #6d4c07; background-color: #f5ebd7; }
.c { color: #008800; font-style: italic } /* Comment */
.err { border: 1px solid #FF0000 } /* Error */
.k { color: #AA22FF; font-weight: bold } /* Keyword */
.o { color: #666666 } /* Operator */
.nv { color: #B8860B } /* Name.Variable */
.nb { color: #AA22FF } /* Name.Builtin */
</style>
<p>This is a simple recipe about how to use <b>git</b> behind a proxy.</p>
<p>Right now I&#8217;m working behind a very restrictive firewall and I can&#8217;t get any port I need open, so I use a <a href="http://en.wikipedia.org/wiki/SOCKS">proxy socks</a> for working with <i>git</i>,<i>bzr</i>,<i>jabber</i> and so on. I was looking for an easy way to use git with a proxy but I didn&#8217;t find easily the solution. After some researches a friend (<i>Roberto</i>) found the solution and we use it at work.</p>
<p>Let&#8217;s see it <img src='http://blogs.gnome.org/juanje/wp-content/mu-plugins/tango-smilies/tango/face-wink.png' alt=';-)' class='wp-smiley' /> </p>
<p>Just in case we don&#8217;t have it:</p>
<div class="paste">
<pre><span class="nv">$ </span>mkdir ~/bin
</pre>
</div>
<p></p>
<p>Now the interesting part, the <i>wrapper</i> for the proxy:</p>
<div class="paste">
<pre><span class="nv">$ </span>cat <span class="s">&lt;&lt;EOF&gt;&gt; ~/bin/proxy-wrapper</span>
<span class="c">#!/bin/sh</span>
<span class="c"># Put your own values</span>
<span class="nv">PROXY_IP</span><span class="o">=</span>10.0.0.80
<span class="nv">PROXY_PORT</span><span class="o">=</span>22000

nc -x<span class="k">${</span><span class="nv">PROXY_IP</span><span class="k">}</span>:<span class="k">${</span><span class="nv">PROXY_PORT</span><span class="k">}</span> -X5 <span class="nv">$*</span>

<span class="s">EOF</span>
<span class="nv">$ </span><span class="s">chmod +x ~/bin/proxy-wrapper</span>
</pre>
</div>
<p>Note that you&#8217;ll need to have installed <b>netcat</b> (the openbsd&#8217;s one: <i>netcat-openbsd</i>) to be able to use the command <b>nc</b> with the option <b>-x</b>.</p>
<p>Then you&#8217;ll have to be sure you have setted the <i>~/bin</i> directory on your <i>PATH</i> and then add the env variable <b>GIT_PROXY_COMMAND</b>. That variable will be used by <i>git</i> for doing pushes through <i>git</i> or <i>ssh</i> protocol:</p>
<p></p>
<div class="paste">
<pre><span class="nv">$ </span>cat <span class="s">&lt;&lt;EOF&gt;&gt; ~/.bashrc</span>
<span class="nb">export </span><span class="nv">PATH</span><span class="o">=</span>~/bin:<span class="s2">"${PATH}"</span>
<span class="nb">export </span><span class="nv">GIT_PROXY_COMMAND</span><span class="o">=</span>~/bin/proxy-wrapper
<span class="s">EOF</span>
</pre>
</div>
<p>Now you will be able to use git normally with no worries about the firewall, nat or whatever.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juanje/2009/07/17/git_behind_proxy/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>git question</title>
		<link>http://blogs.gnome.org/juanje/2009/04/13/git-question/</link>
		<comments>http://blogs.gnome.org/juanje/2009/04/13/git-question/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 21:31:19 +0000</pubDate>
		<dc:creator>juanje</dc:creator>
				<category><![CDATA[DVCS]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juanje/?p=106</guid>
		<description><![CDATA[Ok, I&#8217;m not really git fan. Actually, I don&#8217;t like at all&#8230; But I have to use because of some projects and now, that GNOME is moving to Git, more. Anyway, I use it. But there are some workflows I don&#8217;t get well yet. I know the basis and maybe a bit more, but I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I&#8217;m not really git fan. Actually, I don&#8217;t like at all&#8230; But I have to use because of some projects and now, that GNOME is moving to Git, more.</p>
<p>Anyway, I use it. But there are some workflows I don&#8217;t get well yet. I know the basis and maybe a bit more, but I&#8217;m far from a git-poweruser.</p>
<p>There are <a href="http://live.gnome.org/GitForGnomeDevelopers" target="_blank">some docs</a> and<a title="Git rebase at maillists" href="http://mail.gnome.org/archives/gnome-infrastructure/2009-April/msg00031.html" target="_blank"> interesting threads about git in GNOME</a>, but I have to learn a lot&#8230;</p>
<p>The thing is I like to collaborate with some project in which official git repos I haven&#8217;t account, so I try to use <a href="http://github.com" target="_blank">Github</a> to public and manage my branches.</p>
<p>Although I don&#8217;t like git so much, I do like Github. It is a very good web gui for a DCVS and has awesome features&#8230;</p>
<p>But here is one of my use cases:</p>
<p>I try to make some changes on a Debian project (<a href=" 	 http://debian-live.alioth.debian.org" target="_blank">live-helper</a>) which uses a git repository. But I work with a friend on some features and changes over the main project.</p>
<p>My first though was: I create a mirror of the upstream project on Guthub, my friend create a &#8220;fork&#8221; (kind of &#8220;git clone&#8221; but keeping parent-child relationship on Github) and then he can make so many branches he need and develop the different features and changes.</p>
<p>I like to have one branch where merge all the mature features, but also keeping the upstream mirror. So I create a branch of my mirror and I&#8217;m merging there the different features.</p>
<p>I think until here everything is right. If there is a better way, tell me, please.</p>
<p>Keep going&#8230; The problem is not all the features are interesting for the upstream projects, so the merged branch is not good place for get patches or merge from. But it is our good branch which we use for our project, so we need keep as is.</p>
<p>But some of our features are integrated in upstream. Which is good and thing we want. The problem is we we pull the changes from upstream, there are some changes identical, but merged or committed in other order. Some times pull a changed we push to upstream make some mess in our history&#8230;</p>
<p>And if we like to keep updated the different feature branches from upstream to keep working on this features but with valid and new code, from where we pull those changes?</p>
<p>From our mirror? the merged branch? is there another magic git way?</p>
<p>I know this could be very confusing. I think it&#8217;s easy to explain with graphics but my artistic skills are below zero&#8230;</p>
<p>But <a href="http://github.com/juanje/live-helper/network" target="_blank">this graph</a> could help (or not&#8230;)</p>
<p>I hope some git guru understand some of this uses case and give me some tips to doing better.</p>
<p>BTW, I couldn&#8217;t find a way to make more than one fork from one branch on Github, which would have been useful&#8230;</p>
<p><strong>NOTE:</strong> I have my reasons to dislike git, but it&#8217;s now the point of this post. I don&#8217;t like flames and I don&#8217;t like argue about which DCVS is better, I just like to know how to use better this tool. Thanks <img src='http://blogs.gnome.org/juanje/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juanje/2009/04/13/git-question/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Why just one DVCS?</title>
		<link>http://blogs.gnome.org/juanje/2008/12/14/why-just-one-dvcs/</link>
		<comments>http://blogs.gnome.org/juanje/2008/12/14/why-just-one-dvcs/#comments</comments>
		<pubDate>Sun, 14 Dec 2008 18:09:07 +0000</pubDate>
		<dc:creator>juanje</dc:creator>
				<category><![CDATA[DVCS]]></category>
		<category><![CDATA[bzr]]></category>
		<category><![CDATA[emergya]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[hg]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/juanje/?p=35</guid>
		<description><![CDATA[There are a lots of flame wars out there about the best DVCS (Distributed version control system), like others (IMHO) ego wars (KDE vs GNOME, VIM vs EMACS, etc). There are very good options like git, mercurial, bazaar or darcs and many people (as GNOME is doing right now with all the survey thing). Even [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lots of flame wars out there about the best <strong>DVCS</strong> (<em>Distributed version control system</em>), like others (IMHO) ego wars (KDE vs GNOME, VIM vs EMACS, etc). There are very good options like git, mercurial, bazaar or darcs and many people (as GNOME is doing right now with all the survey thing).</p>
<p>Even in my <a title="Emergya" href="http://www.emergya.es" target="_blank">company</a>, we were (actually, we&#8217;re already) discussing about the right one for our day by day at work. We&#8217;re almost sure to adopt a good dvcs is better than our well known Subversion, but we don&#8217;t know the best option.</p>
<p>We could follow the typical technical reasons people usually does, but we must also pay attention to other (more practical) reason. For example, we develop linux distributions (mostly) based on Ubuntu, so that tell us we should use bazaar to make easy clones, branches, merges and any kind of tasks in order to collaborate.</p>
<p>But, in other hand, we work with rails. Rails and projects around use git intensively, so makes sense to use git as well.</p>
<p>And we also work with other projects which still use subversion or even others systems.</p>
<p>After think about the best possibility it&#8217;s clear for me that choose just one makes no sense at all. We can choose one for working internally, but we&#8217;ll still have to deal with with other system we work or collaborate with.</p>
<p>Our major project is the technical level and background of the people here is very heterogeneous. We got very geek guys and people who just got out from the university and don&#8217;t know to much about real life tools&#8230;</p>
<p>So, we need something with learning curve small enough to normal people could just use the dvcs and good enough to use in professional projects.</p>
<p>But I really think the best way, at last, is to learn the basics of each one (of the most common ones), use internally just a good one, but bring to the people the way to use whatever they want or need for each project. I think <a href="http://blogs.gnome.org/johncarr/2008/12/11/dvcs-for-gnome/" target="_blank">John</a> is right about that&#8230; why to choose for the people? Let&#8217;s people decide by themselves.</p>
<p>I was talking with <a href="http://aruiz.typepad.com/" target="_blank">Alberto</a> about this and we agree (didn&#8217;t we? <img src='http://blogs.gnome.org/juanje/wp-content/mu-plugins/tango-smilies/tango/face-raspberry.png' alt=':-P' class='wp-smiley' /> ) that to have a kind of interface which makes abstraction about which dvcs is below and gives us compatibility between them, probably is better than try to push people to one or another system just because we think is the best.</p>
<p>There ar to much big (and little ones) projects which have already chosen git, bazaar, mercurial or other and are very happy with their decision to just change because someone say so&#8230;</p>
<p>I don&#8217;t think to expect that is very realistic&#8230;</p>
<p>I know this is possible and we as open source and free software people doing all the time: make open standards, communication APIs, and abstractions layers. I don&#8217;t see more complex than a lot of projects (GNOME itself) does al the time.</p>
<p>I think I will sum myself to the <a href="http://blogs.gnome.org/johncarr/2008/12/11/dvcs-for-gnome/" target="_blank">John&#8217;s count</a> he is meaning to do something similar <img src='http://blogs.gnome.org/juanje/wp-content/mu-plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/juanje/2008/12/14/why-just-one-dvcs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  blogs.gnome.org/juanje/tag/git/feed/ ) in 1.27360 seconds, on Feb 10th, 2012 at 6:03 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 10th, 2012 at 7:03 pm UTC -->
