<?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>CodeSanity &#187; Technology</title>
	<atom:link href="http://codesanity.net/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://codesanity.net</link>
	<description>PHP, Javascript &#38; Technology Ramblings</description>
	<lastBuildDate>Wed, 07 Jul 2010 00:28:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Making the Switch: SVN to Git</title>
		<link>http://codesanity.net/2010/03/making-switch-svn-git/</link>
		<comments>http://codesanity.net/2010/03/making-switch-svn-git/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 02:25:49 +0000</pubDate>
		<dc:creator>Tom Schlick</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[environments]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[svn-git]]></category>

		<guid isPermaLink="false">http://codesanity.net/?p=175</guid>
		<description><![CDATA[Choosing the right revision control system can make or break your development flow. I found this out the hard way after SVN brought our source migration process to a crawl. We will walk through the problems that most have with SVN and the migration process from SVN to Git.]]></description>
			<content:encoded><![CDATA[<h2>Overview</h2>
<p>Recently at work, we realized that our SVN setup just wasn&#8217;t working anymore for us. Merges were difficult and time consuming, we had weekly release meetings to go file by file through a list of changes to make sure what we were pushing to production was actually quality. This process was severely inefficient and everyone hated it.  So we did what any company that absolutely hates svn does, we moved to <a href="http://git-scm.com/" target="_blank">Git</a> &amp; <a href="http://github.com/" target="_blank">Github</a>. We chose Github for the stability, function, and social coding features. We use freelancers fairly often to contribute to small modules we work on and having a rich GUI is absolutely essential.</p>
<h2>Git-SVN</h2>
<p>Now we had a years worth of commits that we wanted to migrate over to the new git system. I tried using the import tool that Github provides for repositories but due to our unconventional setup it couldn&#8217;t be done. After some searching  I found a command line tool that actually resides inside of the core git install called <a href="http://www.kernel.org/pub/software/scm/git-core/docs/git-svn.html" target="_blank">git-svn</a>. With a few simple commands and about 45 minutes in the case of our repository it had converted every commit to the sha-1 equivalent that git uses.  Git-svn was actually designed so that you have the ability to work with both systems at the same time. So you could use git while your co-worker uses svn and both commit to the same repository. Below is the actual command we used to convert our SVN repo to a git repository. You can find the original tutorial on doing so <a href="http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/" target="_blank">here</a>.</p>
<p><code>git svn clone  --no-metadata -A authors.txt -t tags -b branches -T trunk </code></p>
<p>This took around 35 &#8211; 45 minutes with our repository which had almost 6,000 commits in it so give yourself some time.</p>
<h2>Git GUI &amp; Bash</h2>
<p>Unfortunately, not everyone in the office is running on a mac. Now this wouldn&#8217;t be so bad if windows had native support for ssh but it doesn&#8217;t so we had to find a third party solution to using git. Good thing for us is that the git gui &amp; bash application is pretty feature rich and has a low learning curve. After you <a href="http://git-scm.com/download" target="_blank">install git via msysGit</a>, head over to the <a href="http://learn.github.com" target="_blank">github learing </a>page or the <a href="http://progit.org/book/" target="_blank">progit book</a> site to get your self acclimated with how git works.</p>
<p>Screencast on using git gui via Vimeo<br />
[vimeo 2111264 400 285]</p>
<h2>Line Endings</h2>
<p>Let me just say this. Line Endings are a nasty bitch.  If you use multiple operating systems with your repository (especially windows) line endings can be a very big problem if you don&#8217;t set them up right from the start. What happens is that when Windows modifies a file and commits it it uses  a different style of line ending than mac or linux. When your mac or  linux machine pulls that down from the central repository, it changes  the line ending thus changing the sha1 which makes git think you edited  the entire file.  This bit us in the ass a week after converting our repo, which just so happened to be over the holidays so troubleshooting the problems it presented turned out to be especially hard. I highly recommend setting your line endings to the spec that <a href="http://help.github.com/dealing-with-lineendings/" target="_blank">this tutorial outlines</a>. Since we did this we have not had line ending problems.</p>
<h2>Workflow</h2>
<p>We experimented with several workflows to see which would work best with Git. We landed on the &#8220;branch per task&#8221; solution. Basically whenever someone is going to complete a task ( a bug fix, feature enhancement, etc) they create a branch with the ticket name and number. They do their work in that branch, committing and pushing often. When their code is ready to be merged back into the master branch its a fairly easy task. We just run git merge origin/branchname and their changes are ported into the current codebase. We have found this best because it keeps developers from stepping on each others toes and its easy to delay a branch from making it into the master codebase if needed.</p>
<h2>Server Deployment</h2>
<p>We use several staging &amp; production environments for alpha/beta testing  as well as our live environment. Pushing the code changes to these servers is actually quite easy. We just SSH right into the server, cd to the directory and run &#8221; git pull &#8220;. Its as simple as that.</p>
<h4>Overall we all like the new system. It took some getting used to and like everyone else we had our own WTF did I just do moments but in the end it works.</h4>
]]></content:encoded>
			<wfw:commentRss>http://codesanity.net/2010/03/making-switch-svn-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nambu Twitter Client for Mac and iPhone</title>
		<link>http://codesanity.net/2009/05/nambu-twitter-client-mac-iphone/</link>
		<comments>http://codesanity.net/2009/05/nambu-twitter-client-mac-iphone/#comments</comments>
		<pubDate>Wed, 06 May 2009 00:14:10 +0000</pubDate>
		<dc:creator>Tom Schlick</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[nambu]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://codesanity.net/?p=75</guid>
		<description><![CDATA[Nambu is a great new twitter client out for the Mac and iPhone Platforms. It includes the saved searches, tr.im / pic.im integration, and the ability to group your friends. Its a pretty nice app if you have not tried it yet.]]></description>
			<content:encoded><![CDATA[<p>Recently around the Mac Software ecosystem we have heard alot about twitter clients such as tweetie, tweetdeck and seesmic desktop. Now don&#8217;t get me wrong they are all great twitter clients but they just didn&#8217;t have all the features i was interested in. That is where nambu comes in.</p>
<p>Nambu is a terrific twitter client for the Mac and iPhone. It includes the ability to manage multiple twitter accounts, a mailbox like interface that lets you organize all of your tweets, . You can check out where you are mentioned on twitter, direct messages, sent messages, favorites, and even current trends on twitter! Not to mention the killer ability to organize the people you are following into groups to better manage your tweet stream. I for one use the groups feature very heavily. I have one group for fellow codeigniter people, one for work messages, and another for celebrities such as @aplusk &amp; @grantimahara.</p>
<p><img class="alignleft size-full wp-image-83" title="overview" src="http://codesanity.s3.amazonaws.com/wp-content/uploads/2009/05/overview.jpg" alt="overview" width="330" height="275" /></p>
<p>The search feature is pretty nice too. You can save searches and when new entries for those searches appear you will be notified. So if you have an existing search open for &#8220;CodeIgniter&#8221; and someone you dont even know posts &#8220;Man i love Codeigniter!&#8221; you will see that message. A great way to find new friends on twitter with the same interests as you.</p>
<p>Nambu also includes integration with tr.im and pic.im services. Yes i know you are thinking that they are just another set of url shortening services and you are right, but they also have a few tricks up their sleeves. Such as being able to see right from the client how many people have clicked your links and when you visit the tr.im website you can see an analytical breakdown of browsers, countries, bots vs. humans, etc. A pretty powerful feature for anyone who loves to keep track of how traffic is coming to their website.</p>
<p><img class="alignleft size-full wp-image-84" title="search" src="http://codesanity.s3.amazonaws.com/wp-content/uploads/2009/05/search.jpg" alt="search" width="330" height="275" /></p>
<p>Nambu is completely free! No trial periods or annoying ads get inserted into your tweets either. You can download the <a href="http://www.nambu.com/">desktop version for mac here</a> and you can download the <a href="http://itunes.com/apps/nambu">iphone app from the itunes store</a>. So you have no reason to give nambu a shot and save some money while you are at it!</p>
]]></content:encoded>
			<wfw:commentRss>http://codesanity.net/2009/05/nambu-twitter-client-mac-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)
Content Delivery Network via Amazon Web Services: S3: assets.codesanity.net.s3.amazonaws.com

Served from: codesanity.net @ 2010-09-09 20:23:30 -->