<?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>hocuspokus &#187; svn</title>
	<atom:link href="http://hocuspokus.net/tag/svn/feed" rel="self" type="application/rss+xml" />
	<link>http://hocuspokus.net</link>
	<description>the life and times of a code monkey</description>
	<lastBuildDate>Tue, 01 Jun 2010 16:40:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Add Git and SVN Branch to Bash&#160;Prompt</title>
		<link>http://hocuspokus.net/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fhocuspokus.net%2F2009%2F07%2Fadd-git-and-svn-branch-to-bash-prompt&amp;seed_title=Add+Git+and+SVN+Branch+to+Bash%26%23160%3BPrompt</link>
		<comments>http://hocuspokus.net/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fhocuspokus.net%2F2009%2F07%2Fadd-git-and-svn-branch-to-bash-prompt&amp;seed_title=Add+Git+and+SVN+Branch+to+Bash%26%23160%3BPrompt#comments</comments>
		<pubDate>Thu, 09 Jul 2009 19:58:06 +0000</pubDate>
		<dc:creator>Daz</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[noteworthy]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[command-line]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[os x]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://hocuspokus.net/?p=352</guid>
		<description><![CDATA[EDIT: (12-Mar-2010) slight update to the svn prompt code to give a better / more useful output&#8230; I&#8217;ve seen things like this posted on the net before but never really had a chance to play with the idea. But as &#8230; <a href="http://hocuspokus.net/feeder/?FeederAction=clicked&#38;feed=Articles+%28RSS2%29&#38;seed=http%3A%2F%2Fhocuspokus.net%2F2009%2F07%2Fadd-git-and-svn-branch-to-bash-prompt&#38;seed_title=Add+Git+and+SVN+Branch+to+Bash%26%23160%3BPrompt">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>EDIT:</strong> (12-Mar-2010) slight update to the svn prompt code to give a better / more useful output&#8230;</p>

<p>I&#8217;ve seen things like this posted on the net before but never really had a chance to play with the idea.  But as I&#8217;m now using git and svn a lot more these days (fingers crossed i&#8217;ll be totally free of cvs soon!) I thought it was about time I pulled my finger out.</p>

<p>So here&#8217;s the end goal, in a normal directory, we just get a normal bash promt, but in a directory controlled by git or svn, we also get an addition telling us the source control tool in use and the current branch:</p>

<p><img src="http://hocuspokus.net/wp-content/uploads/2009/07/git_svn_bash_terminal.png" alt="git_svn_bash_terminal" title="git_svn_bash_terminal" width="500" height="305" class="aligncenter size-full wp-image-358" /></p>

<p>So, fire up yer terminal and add the following to your <code>.profile</code>, <code>.bash_profile</code> or <code>.bashrc</code> (whichever one you use):</p>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">parse_git_branch <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	git name-rev HEAD <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s#HEAD\ \(.*\)# (git::\1)#'</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
parse_svn_branch<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	parse_svn_url <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'s#^'</span><span style="color: #ff0000;">&quot;<span style="color: #007800;">$(parse_svn_repository_root)</span>&quot;</span><span style="color: #ff0000;">'##g'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print &quot; (svn::&quot;$1&quot;)&quot; }'</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
parse_svn_url<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #c20cb9; font-weight: bold;">svn</span> info <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">'s#^URL: ##p'</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
parse_svn_repository_root<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #c20cb9; font-weight: bold;">svn</span> info <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-ne</span> <span style="color: #ff0000;">'s#^Repository Root: ##p'</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #007800;">BLACK</span>=<span style="color: #ff0000;">&quot;\[\033[0;38m\]&quot;</span>
<span style="color: #007800;">RED</span>=<span style="color: #ff0000;">&quot;\[\033[0;31m\]&quot;</span>
<span style="color: #007800;">RED_BOLD</span>=<span style="color: #ff0000;">&quot;\[\033[01;31m\]&quot;</span>
<span style="color: #007800;">BLUE</span>=<span style="color: #ff0000;">&quot;\[\033[01;34m\]&quot;</span>
<span style="color: #007800;">GREEN</span>=<span style="color: #ff0000;">&quot;\[\033[0;32m\]&quot;</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PS1</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$BLACK</span>[ \u@<span style="color: #007800;">$RED</span>\h <span style="color: #007800;">$GREEN</span>\w<span style="color: #007800;">$RED_BOLD</span><span style="color: #000099; font-weight: bold;">\$</span>(parse_git_branch)<span style="color: #000099; font-weight: bold;">\$</span>(parse_svn_branch)<span style="color: #007800;">$BLACK</span> ] &quot;</span></pre></div></div>


<p>Simples.  Now just open up a new terminal and move into a project directory using svn or git. <img src='http://hocuspokus.net/wp-content/plugins/smilies-themer/tango/face-smile.png' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://hocuspokus.net/feeder/?FeederAction=clicked&amp;feed=Articles+%28RSS2%29&amp;seed=http%3A%2F%2Fhocuspokus.net%2F2009%2F07%2Fadd-git-and-svn-branch-to-bash-prompt&amp;seed_title=Add+Git+and+SVN+Branch+to+Bash%26%23160%3BPrompt/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->