<?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>BLARGH!! for the people &#187; subversion</title>
	<atom:link href="http://blargh.tommymontgomery.com/category/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://blargh.tommymontgomery.com</link>
	<description>It&#039;s time to bring forth the rhythm and the rhyme</description>
	<lastBuildDate>Fri, 09 Jul 2010 04:03:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Subversion, Apache, nginx and &#8220;Entity Too Large&#8221;</title>
		<link>http://blargh.tommymontgomery.com/2010/05/subversion-apache-nginx-and-entity-too-large/</link>
		<comments>http://blargh.tommymontgomery.com/2010/05/subversion-apache-nginx-and-entity-too-large/#comments</comments>
		<pubDate>Wed, 05 May 2010 04:00:48 +0000</pubDate>
		<dc:creator>tmont</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blargh.tommymontgomery.com/?p=502</guid>
		<description><![CDATA[tl;dr: add client_max_body_size 10m; to your nginx vhost.
This one took me a while to track down. My brother uses my subversion repository, and he was trying to commit a 1MB flash file. The TortoiseSVN error he got back was: 

This was a bit perplexing. I figured it was some sort of mod_dav setting I had [...]]]></description>
			<content:encoded><![CDATA[<p><strong>tl;dr: add <kbd>client_max_body_size 10m;</kbd> to your nginx vhost.</strong></p>
<p>This one took me a while to track down. <a href="http://bob.tmont.com/">My brother</a> uses my subversion repository, and he was trying to commit a 1MB flash file. The TortoiseSVN error he got back was: </p>
<p><img src="http://blargh.tommymontgomery.com/wp-content/uploads/2010/05/CommitError.png" alt="" title="CommitError" width="659" height="301" class="aligncenter size-full wp-image-503" /></p>
<p>This was a bit perplexing. I figured it was some sort of <kbd>mod_dav</kbd> setting I had never encountered, so I turned to Google. Google spouted a bunch of stuff about where to put your SSL directives in your Apache configuration, some stuff about Apache not handling the <kbd>Content-Length</kbd> header correctly, some promising mailing list threads about using the <kbd>LimitXMLRequestBody</kbd> <kbd>mod_dav</kbd> directive, and a bunch of stuff about some idiots trying to commit 4GB files to a subversion server running on Windows.</p>
<p>None of these were my problem.</p>
<p>It turns out I needed to add another keyword to my search. After I searched for <em>svn apache <strong>nginx</strong> &#8220;entity too large&#8221;</em>, the <a href="http://digita.la/2009/2/12/nginx-subversion-and-413-s">first hit</a> took me home. Like everyone else who is awesome, I&#8217;m using nginx as a proxy to Apache running <kbd>mod_dav</kbd>. nginx&#8217;s configuration was getting hit first, and Apache and Subversion had nothing to do with anything.</p>
<p>It turns out the default maximum request body size for nginx is 1MB, exactly the size my brother was trying commit to the repository. Adding this one line in my virtual host solved it all:</p>
<pre class="brush: plain; highlight: [5];">
server {
    listen 80;
    server_name svn.tommymontgomery.com;

    client_max_body_size 10m;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://svn.tommymontgomery.com:8080;
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blargh.tommymontgomery.com/2010/05/subversion-apache-nginx-and-entity-too-large/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extracting a Directory into its Own Subversion Repository</title>
		<link>http://blargh.tommymontgomery.com/2009/10/extracting-a-directory-into-its-own-subversion-repository/</link>
		<comments>http://blargh.tommymontgomery.com/2009/10/extracting-a-directory-into-its-own-subversion-repository/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 04:41:30 +0000</pubDate>
		<dc:creator>tmont</dc:creator>
				<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://blargh.tommymontgomery.com/?p=195</guid>
		<description><![CDATA[Like my previous subversion post, this is something that is a bit difficult to find on the internet.
Every so often, you realize that a project is growing too big, and it deserves its own repository. What you want is to extract a single directory from one repository, and create an entirely new repository that only [...]]]></description>
			<content:encoded><![CDATA[<p>Like my <a href="/2009/06/running-a-subversion-server-on-windows/">previous subversion post</a>, this is something that is a bit difficult to find on the internet.</p>
<p>Every so often, you realize that a project is growing too big, and it deserves its own repository. What you want is to extract a single directory from one repository, and create an entirely new repository that only has the revisions related to that one directory in it. And it would be nice if they started from one. Luckily, subversion provides just such a tool for doing it.</p>
<p>Suppose your repo looks like this:<br />
<code>/foo<br />
/bar<br />
--/src<br />
--/tests<br />
--/www<br />
----/css<br />
----/images<br />
----/js<br />
--/bin<br />
/baz<br />
/bat<br />
</code></p>
<p>and you want to remove the &#8220;bar&#8221; directory and create a new repository out of it. Here is what you would do:</p>
<pre class="brush: plain;">
svnadmin dump /path/to/big/repo &gt; repodump
cat repodump | svndumpfilter include bar --drop-empty-revs --renumber-revs &gt; newrepodump
svnadmin create newrepo
svnadmin load newrepo &lt; newrepodump
</pre>
<p>You&#8217;ll probably want to create trunk, tags and branches for your new repo, so you have two choices:</p>
<ol>
<li>Try and figure out how to modify the dump file and delete the proper nodes (impossible)</li>
<li>Say screw it, and just <kbd>svn mv</kbd> the files around after you&#8217;ve loaded the revision into the new repo</li>
</ol>
<p>This is all fine until you realize that <kbd>svndumpfilter </kbd>doesn&#8217;t play nice with an <kbd>svn mv</kbd> outside of the directory you&#8217;re filtering. That&#8217;s when you have to play with the <kbd>exclude</kbd> subcommand, and pipe the output about 30 different times to <kbd>svndumpfilter</kbd> until you&#8217;ve got what you want. It&#8217;s not enjoyable. I&#8217;ll leave this one as an exercise to the reader.</p>
]]></content:encoded>
			<wfw:commentRss>http://blargh.tommymontgomery.com/2009/10/extracting-a-directory-into-its-own-subversion-repository/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running a Subversion server on Windows</title>
		<link>http://blargh.tommymontgomery.com/2009/06/running-a-subversion-server-on-windows/</link>
		<comments>http://blargh.tommymontgomery.com/2009/06/running-a-subversion-server-on-windows/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 03:35:36 +0000</pubDate>
		<dc:creator>tmont</dc:creator>
				<category><![CDATA[subversion]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blargh.tommymontgomery.com/?p=24</guid>
		<description><![CDATA[This needs to be in more places on the internet. I&#8217;m sick of googling it every time I can&#8217;t remember the stupid command.

Download the zipped up version of Subversion, and put it somewhere, say, c:\lib\svn
Create your subversion repository: c:\lib\svn\bin\svnadmin create c:\path\to\repo
Type this, and the equals sign spacing is extremely intentional:sc create subversion binpath= "c:\lib\svn\bin\svnserve.exe --service [...]]]></description>
			<content:encoded><![CDATA[<p>This needs to be in more places on the internet. I&#8217;m sick of googling it every time I can&#8217;t remember the stupid command.</p>
<ol>
<li>Download the zipped up version of Subversion, and put it somewhere, say, <code>c:\lib\svn</code></li>
<li>Create your subversion repository: <code>c:\lib\svn\bin\svnadmin create c:\path\to\repo</code></li>
<li>Type this, and the equals sign spacing is <strong>extremely</strong> intentional:<code>sc create subversion binpath= "c:\lib\svn\bin\svnserve.exe --service --root c:\path\to\repo" start= auto depend= Tcpip displayname= "Subversion Server"</code>
</li>
<li>Type this: <code>c:\lib\svn\bin\svn info svn://localhost</code></li>
<li>Profit.</li>
</ol>
<p>If you see this:</p>
<pre><code>Path: localhost
URL: svn://localhost
Repository Root: svn://localhost
Repository UUID: b2faa4b0-80f5-4142-907f-0accf209a4de
Revision: 0
Node Kind: directory
Last Changed Rev: 0
Last Changed Date: 2009-06-16 14:01:41 -0700 (Tue, 16 Jun 2009)</code></pre>
<p>a winner is you.</p>
<p>If you suck and screwed it up, delete the service by running <code>sc delete subversion</code>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blargh.tommymontgomery.com/2009/06/running-a-subversion-server-on-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
