<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: How to release new versions of Websites</title>
	<link>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/</link>
	<description>Getting the most out of Subversion</description>
	<pubDate>Fri, 21 Nov 2008 04:05:02 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
		<item>
		<title>By: michaelcaplan</title>
		<link>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-44</link>
		<dc:creator>michaelcaplan</dc:creator>
		<pubDate>Mon, 23 Jun 2008 12:27:08 +0000</pubDate>
		<guid>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-44</guid>
		<description>Hi Mark,

Just got a response back from the SVN user group.  According to Ryan Schmidt (thanks Ryan!) "svn switch, like its lesser cousin svn update, is not atomic."

Oh well.  Symlinks are the way to go for me.

Thanks,

Mike</description>
		<content:encoded><![CDATA[<p>Hi Mark,</p>
<p>Just got a response back from the SVN user group.  According to Ryan Schmidt (thanks Ryan!) &#8220;svn switch, like its lesser cousin svn update, is not atomic.&#8221;</p>
<p>Oh well.  Symlinks are the way to go for me.</p>
<p>Thanks,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mark</title>
		<link>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-43</link>
		<dc:creator>mark</dc:creator>
		<pubDate>Wed, 18 Jun 2008 20:13:20 +0000</pubDate>
		<guid>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-43</guid>
		<description>I'm not 100% sure how it physically does the write. If you have a high concurrency website you could try having two folders with the checked out code, and use a symbolic link. So you code have a folder of new code, and a folder of original code. When you came to release, you could swap the link over, and have instant update to your site.

Also if your site is very high concurrency and you have multiple web servers, how about off-lining one while you do the update. The svn update itself doesn't take long at all and you could be back to full service very quickly.

I hope these ideas have helped.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not 100% sure how it physically does the write. If you have a high concurrency website you could try having two folders with the checked out code, and use a symbolic link. So you code have a folder of new code, and a folder of original code. When you came to release, you could swap the link over, and have instant update to your site.</p>
<p>Also if your site is very high concurrency and you have multiple web servers, how about off-lining one while you do the update. The svn update itself doesn&#8217;t take long at all and you could be back to full service very quickly.</p>
<p>I hope these ideas have helped.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: michaelcaplan</title>
		<link>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-42</link>
		<dc:creator>michaelcaplan</dc:creator>
		<pubDate>Wed, 18 Jun 2008 14:25:14 +0000</pubDate>
		<guid>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-42</guid>
		<description>Great tip!  I really like the idea of using svn switch for updating your site.

How safe is this though?  Does svn replace the files in an atomic manner so that half written to files are not accidentally served?  

The PHP APC docs explain the issue best:

&lt;blockquote&gt;
"When you modify a file on a live web server you really should do so in an atomic manner. That is, write to a temporary file and rename (mv) the file into its permanent position when it is ready. Many text editors, cp, tar and other such programs don't do this. This means that there is a chance that a file is accessed (and cached) while it is still being written to. This apc.file_update_protection  setting puts a delay on caching brand new files. The default is 2 seconds which means that if the modification timestamp (mtime) on a file shows that it is less than 2 seconds old when it is accessed, it will not be cached. The unfortunate person who accessed this half-written file will still see weirdness, but at least it won't persist. If you are certain you always atomically update your files by using something like rsync which does this correctly, you can turn this protection off by setting it to 0. If you have a system that is flooded with io causing some update procedure to take longer than 2 seconds, you may want to increase this a bit. "  - http://ca3.php.net/manual/en/apc.configuration.php
&lt;/blockquote&gt;

I looked at the svn docs and can't find any details on the method used to replace files. 


Thanks,

Mike</description>
		<content:encoded><![CDATA[<p>Great tip!  I really like the idea of using svn switch for updating your site.</p>
<p>How safe is this though?  Does svn replace the files in an atomic manner so that half written to files are not accidentally served?  </p>
<p>The PHP APC docs explain the issue best:</p>
<blockquote><p>
&#8220;When you modify a file on a live web server you really should do so in an atomic manner. That is, write to a temporary file and rename (mv) the file into its permanent position when it is ready. Many text editors, cp, tar and other such programs don&#8217;t do this. This means that there is a chance that a file is accessed (and cached) while it is still being written to. This apc.file_update_protection  setting puts a delay on caching brand new files. The default is 2 seconds which means that if the modification timestamp (mtime) on a file shows that it is less than 2 seconds old when it is accessed, it will not be cached. The unfortunate person who accessed this half-written file will still see weirdness, but at least it won&#8217;t persist. If you are certain you always atomically update your files by using something like rsync which does this correctly, you can turn this protection off by setting it to 0. If you have a system that is flooded with io causing some update procedure to take longer than 2 seconds, you may want to increase this a bit. &#8221;  - <a href="http://ca3.php.net/manual/en/apc.configuration.php" rel="nofollow">http://ca3.php.net/manual/en/apc.configuration.php</a>
</p></blockquote>
<p>I looked at the svn docs and can&#8217;t find any details on the method used to replace files. </p>
<p>Thanks,</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: UriShare - Using subversion to release new version of websites</title>
		<link>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-6</link>
		<dc:creator>UriShare - Using subversion to release new version of websites</dc:creator>
		<pubDate>Fri, 08 Feb 2008 21:48:56 +0000</pubDate>
		<guid>http://www.svn-checkout.co.uk/2008/01/19/how-to-release-new-versions-of-websites/#comment-6</guid>
		<description>[...] Using subversion to release new version of websites   This page describes a method of release management for websites using Subversion and svn tags     Submitted: 1 minute ago  Category: Technology  Submitter: RssFeed   Website: www.svn-checkout.co.uk  Report this link: Click here to report   Comments: 0 [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Using subversion to release new version of websites   This page describes a method of release management for websites using Subversion and svn tags     Submitted: 1 minute ago  Category: Technology  Submitter: RssFeed   Website: <a href="http://www.svn-checkout.co.uk" rel="nofollow">http://www.svn-checkout.co.uk</a>  Report this link: Click here to report   Comments: 0 [&#8230;]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
