<?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>Software Configuration Management and Agile Software Development &#187; release candidate</title>
	<atom:link href="http://accurev.com/blog/tag/release-candidate/feed/" rel="self" type="application/rss+xml" />
	<link>http://accurev.com/blog</link>
	<description>SCM and Agile Software Development Blog</description>
	<lastBuildDate>Fri, 03 Feb 2012 19:28:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>AccuRev TimeSafe makes retrieving code from &quot;anywhen&quot; easy</title>
		<link>http://accurev.com/blog/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/</link>
		<comments>http://accurev.com/blog/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/#comments</comments>
		<pubDate>Wed, 24 Oct 2007 18:00:05 +0000</pubDate>
		<dc:creator>jtalbott</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[AccuRev]]></category>
		<category><![CDATA[change management]]></category>
		<category><![CDATA[configuration management]]></category>
		<category><![CDATA[development process]]></category>
		<category><![CDATA[labeling]]></category>
		<category><![CDATA[release candidate]]></category>
		<category><![CDATA[retrieving code]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<category><![CDATA[source control]]></category>
		<category><![CDATA[Stream-based]]></category>
		<category><![CDATA[tagging]]></category>
		<category><![CDATA[time-basis]]></category>
		<category><![CDATA[TimeSafe]]></category>
		<category><![CDATA[version control]]></category>

		<guid isPermaLink="false">http://accurev.wordpress.com/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/</guid>
		<description><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/' addthis:title='AccuRev TimeSafe makes retrieving code from &#34;anywhen&#34; easy ' ><a href="//addthis.com/bookmark.php?v=250&#38;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">&#124;</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div>One of the problems frequently faced in traditional branch-and-label version control systems is how to retrieve a particular configuration of code from the past if it wasn&#8217;t tagged or labeled at the time. You forgot to label the release-candidate-6 branch from last month before building it, and now you have no way to accurately pull [...]<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/' addthis:title='AccuRev TimeSafe makes retrieving code from &#34;anywhen&#34; easy '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></description>
			<content:encoded><![CDATA[<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/' addthis:title='AccuRev TimeSafe makes retrieving code from &quot;anywhen&quot; easy ' ><a href="//addthis.com/bookmark.php?v=250&amp;username=xa-4d2b47597ad291fb" class="addthis_button_compact">Share</a><span class="addthis_separator">|</span><a class="addthis_button_preferred_1"></a><a class="addthis_button_preferred_2"></a><a class="addthis_button_preferred_3"></a><a class="addthis_button_preferred_4"></a></div><p><span style="font-family: Arial;">One of the problems frequently faced in traditional branch-and-label <a href="http://www.accurev.com/scm_comparisons.html" target="_blank">version control </a>systems is how to retrieve a particular configuration of code from the past if it wasn&#8217;t tagged or labeled at the time. You forgot to label the release-candidate-6 branch from last month before building it, and now you have no way to accurately pull the correct files.</span></p>
<p><span style="font-family: Arial;">AccuRev, through a combination of its TimeSafe architecture and the power of its streams, makes this easy. Say you have a development process where code follows a promotion model from individual contributors to an Integration area, to a QA area, to Production. The release candidates are based on the QA stream. The QA team built and released RC5 on Friday, June 7th at 11:00 pm, but unfortunately neglected to snapshot it. In the following weeks, additional changes were promoted to the QA stream.</span></p>
<p><span style="font-family: Arial;">To get guaranteed access to the code configuration as it existed for RC5, you could do the following:<br />
* create a stream off of QA and assign it a time basis of June 7th, 11:00 pm<br />
* run &#8220;accurev pop&#8221; to retrieve the contents to disk</span></p>
<p><a href="http://www.accurev.com/blog/wp-content/uploads/2007/06/anywhen_stream.jpg" target="_blank"><img src="http://www.accurev.com/blog/wp-content/uploads/2007/06/anywhen_stream.jpg" alt="anywhen stream AccuRev TimeSafe makes retrieving code from &quot;anywhen&quot; easy" width="801" height="399" title="AccuRev TimeSafe makes retrieving code from &quot;anywhen&quot; easy" /></a></p>
<p><span style="font-family: Arial;">It&#8217;s as easy as that! Furthermore, if you want to automate this process, how about creating a stream for all your source pulls, call it something like &lt;depot&gt;_source_pull (or equivalent, doesn’t really matter). Then, whenever you need source files, use the &#8220;accurev chstream&#8221; command to first move it to whatever parent stream you want the files from and second to change the time-basis on it to the correct time or transaction. Lastly, you pop from that time-basis stream to place the files in whatever location you want:</span></p>
<p><span style="font-family: Arial;">&#8220;accurev chstream -s &lt;depot&gt;_source_pull -b &lt;depot&gt;_target_stream&#8221;<br />
&#8220;accurev chstream -s &lt;depot&gt;_source_pull -t 356&#8243;<br />
&#8220;accurev pop -R -O -v &lt;depot&gt;_source_pull -L c:\build_dir .&#8221;</span></p>
<p><span style="font-family: Arial;">There are other ways to skin this cat in AccuRev, as there usually are, but this is a quick way to get guaranteed results.</span></p>
<p class="MsoNormal"><span style="font-family: Arial; color: #000080; font-size: x-small;"><span style="font-size: 10pt; color: navy; font-family: Arial;"> </span></span></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://accurev.com/blog/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/' addthis:title='AccuRev TimeSafe makes retrieving code from &quot;anywhen&quot; easy '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://accurev.com/blog/2007/10/24/accurev-timesafe-makes-retrieving-code-from-anywhen-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

