<?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>Postpostmodern &#187; Transmit</title>
	<atom:link href="http://postpostmodern.com/tag/transmit/feed/" rel="self" type="application/rss+xml" />
	<link>http://postpostmodern.com</link>
	<description>Speaking of web development.</description>
	<lastBuildDate>Wed, 11 Jan 2012 00:21:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Gitup!</title>
		<link>http://postpostmodern.com/downloadable/gitup/</link>
		<comments>http://postpostmodern.com/downloadable/gitup/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 18:49:34 +0000</pubDate>
		<dc:creator>Jason Johnson</dc:creator>
				<category><![CDATA[Downloadable]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Transmit]]></category>

		<guid isPermaLink="false">http://postpostmodern.com/?p=296</guid>
		<description><![CDATA[Gitup + Transmit = Really Simple Publishing]]></description>
			<content:encoded><![CDATA[<p>Gitup + Transmit = Really Simple Publishing</p>

<h2>Deploy vs Publish</h2>

<p>There are many ways to deploy a new version of a web site. If it&#8217;s a web app, you normally want to use a complete deployment solution like <a href="http://www.capify.org/">Capistrano</a> or <a href="http://blog.railsmachine.com/articles/2009/01/16/moonshine-configuration-management-and-deployment/">Moonshine</a>. But if you need to update a static HTML site or a simple PHP site, you usually just need to upload the changed files. This is often referred to as <em>publishing</em> as opposed to <em>deployment</em>. There are obviously several ways of doing this. Many file transfer apps have synchronization features. Publishing features can also be found in many editors/IDEs.</p>

<h2>The Pain of Publishing</h2>

<p>I&#8217;m a simple man. All those fancy publish/sync features always seem to be a hassle or else they&#8217;re built-in to a less-than-ideal coding environment (I&#8217;m looking at you, <a href="http://www.panic.com/coda/">Coda</a> and <a href="http://macrabbit.com/espresso/features/publish/">Espresso</a>). Editing in Textmate and dock-sending to Transmit is about as fancy as I get. No sync. Just uploading files. The problem is, it&#8217;s hard sometimes to keep track of all the updated files that need to be uploaded once a new page is added, feature is complete, etc. Git knows what&#8217;s changed (if you&#8217;re not using <a href="http://git-scm.com/">Git</a> or some other SCM, you should be), but going through the logs is a pain.</p>

<h2>Gitup and Go</h2>

<p>So, yesterday, I wrote a Ruby script to do simple publishing. It&#8217;s called <a href="http://github.com/postpostmodern/gitup/tree/master">Gitup</a>. You tell Gitup which Git commits you want to publish, and it finds all of the changed files and sends them to Transmit. If you have Transmit&#8217;s dock send feature set up, Transmit will upload the files to the appropriate server and directory. Gitup will even let you preview the list of files that it plans on uploading.</p>

<p>It&#8217;s super-simple and quick. Much quicker than any &#8216;publish&#8217; feature I&#8217;ve seen.</p>

<h2>Examples</h2>

<p>Send files modified in the last commit to Transmit (Gitup will let you know how many files will be sent and offer you the option to view a list of the files or abort.):</p>

<p><kbd class="block">gitup</kbd></p>

<p>Send files modified in the last 3 commits to Transmit:</p>

<p><kbd class="block">gitup -3</kbd></p>

<p>Send files modified in the last 3 commits to Transmit immediately (no prompting or anything):</p>

<p><kbd class="block">gitup -s -3</kbd></p>

<p>Send files modified since yesterday to Transmit:</p>

<p><kbd class="block">gitup --since=yesterday</kbd></p>

<p>Send files modified since Monday to Transmit (quotes are required):</p>

<p><kbd class="block">gitup --since="last monday"</kbd></p>

<p>Send files since the specified commit to Transmit:</p>

<p><kbd class="block">gitup dcd2c68..</kbd></p>

<p>Open files added/updated between the two specified commits in Textmate:</p>

<p><kbd class="block">gitup --application=Textmate dcd2c68..bf75dd6</kbd></p>

<h2>Disclaimer</h2>

<p><em>Please note that Gitup is brand new. It could be buggy. I&#8217;m just sayin&#8217;.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://postpostmodern.com/downloadable/gitup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

