<?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>Annoyed.ca &#187; Subversion</title>
	<atom:link href="http://annoyed.ca/category/technology/subversion/feed/" rel="self" type="application/rss+xml" />
	<link>http://annoyed.ca</link>
	<description>Life - Technology</description>
	<lastBuildDate>Mon, 30 Jan 2012 20:57:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>An Introduction to Subversion</title>
		<link>http://annoyed.ca/2009/03/05/an-introduction-to-subversion/</link>
		<comments>http://annoyed.ca/2009/03/05/an-introduction-to-subversion/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 13:45:13 +0000</pubDate>
		<dc:creator>Christopher Hyne</dc:creator>
				<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://annoyed.ca/?p=275</guid>
		<description><![CDATA[Subversion (also referred to as SVN) is an open-source revision control system. Subversion tracks changes to files and folders, and keeps copies of all revisions, or versions, of your files and folders. Subversion allows you to retrieve at any time &#8230; <a href="http://annoyed.ca/2009/03/05/an-introduction-to-subversion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Subversion (also referred to as SVN) is an open-source revision control system. Subversion tracks changes to files and folders, and keeps copies of all revisions, or versions, of your files and folders. Subversion allows you to retrieve at any time older versions of your files and folder. And because subversions keeps copies of all revisions of your files separate from the copy you&#8217;re currently working with, there&#8217;s an element of a backup system to it. Subversion can work across a network, with more than one user as well, and can help manage the situation where many users may be modifying the same file. Subversion can help manage any conflicts that may arise when more than one users makes changes to the same file.</p>
<p>For this tutorial we are going to start with the basics. We will assume that there is only one user, and we won&#8217;t deal with Subversion being used across a network. We are also going to focus on one particular Subversion program, TortoiseSVN. TortoiseSVN is an open-source windows implementation of a Subversion client program.</p>
<p><span id="more-275"></span>
</p>
<p>First things first, let&#8217;s get define some basic Subversion terminology:</p>
<ul>
<li><strong>Repository</strong>: This is the central location where Subversion maintain all the information about all the different copies of your files and folders.
<li><strong>Working Copy</strong>: This is the copy of your files and folders that you work with. You can have any number of Working Copies for one Repository, though normal each user would only need one Working Copy (per computer, anyway).
<li><strong>Import</strong>: This is what you do to initially include existing files into your Subversion repository.
<li><strong>Check Out</strong>: This is how you would create a new Working Copy from an existing Repository.
<li><strong>Update</strong>: You would do an Update on an existing Working Copy to make sure it contains the latest versions of the files and folders from the Repository.
<li><strong>Commit</strong>: When you make changes to files in your Working Copy, Commit will push those changes into the Repository. </li>
</ul>
<p>We will go through each of these in detail later in this tutorial.</p>
<h2>Getting and Installing TortoiseSVN</h2>
<p>You can download TortoiseSVN from the TortoiseSVN site here: <a href="http://tortoisesvn.net/downloads" target="_blank">http://tortoisesvn.net/downloads</a>. Double-click the downloaded file to begin the installation. The installation process itself is quite straightforward. Once the installation is done, you will need to restart your computer because TortoiseSVN integrates itself into Windows Explorer (not Internet Explorer). There is no TortoiseSVN &#8220;program&#8221;. You access all of TortoiseSVN&#8217;s functionality via the right-click menu on files and folders on your computer.</p>
<p>Once you&#8217;ve installed TortoiseSVN and rebooted your computer we can move on and create our first repository.</p>
<h2>Creating a Repository</h2>
<p>The repository is the central location where Subversion keeps information about all the versions of the files and folders you will keep until version control. You can create the repository somewhere on the same hard disk that you will work on, but I would recommend keeping it on a separate disk because that way you get the added benefit being protected if one of your hard disks fails. The ultimate place to put your files is on another computer in another part of the country (or of the world), but that is beyond the scope of this tutorial. For this tutorial, I will create the repository on my E:\ drive and I will work with my files on the C:\ drive.</p>
<p>On the E:\ drive I created a new folder, &#8220;SVN Repository&#8221;. You can call it whatever you like.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-2.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="559" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb.png" width="750" border="0"></a></p>
<p>I then right-click on the &#8220;SVN Repository&#8221; folder, and from the context menu select &#8220;TortoiseSVN&#8221; &gt; &#8220;Create repository here&#8221;.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-4.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="613" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-1.png" width="754" border="0"></a></p>
<p>You should see a message stating that the repository was successfully created.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-6.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="159" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-2.png" width="432" border="0"></a></p>
<p>If you look inside the &#8220;SVN repository&#8221; folder you&#8217;ll see that a bunch of files and sub-folders were created. Don&#8217;t worry too much about the contents, you should never really have to worry about the repository folder again, except perhaps if you want to include the whole folder in your backup routine. All you need to know about the repository is where it is, in my case &#8220;E:\SVN Repository&#8221;.</p>
<h2>Adding Existing Files into a New Subversion Repository</h2>
<p>Let says that on my C:\ drive I have a folder, &#8220;Project X&#8221; that contains a number of files related to a project I am working on.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-8.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="454" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-3.png" width="670" border="0"></a></p>
<p>I want to import these files into my Subversion repository so that I can track changes to them. To do this I need to Import them into Subversion. I will go up one folder level and right-click on the &#8220;Project X&#8221; folders and select &#8220;SVN Import&#8221; from the context menu. You may need to select &#8220;TortoiseSVN&#8221; &gt; &#8220;SVN Import&#8221;. Which SVN commands appear directly on the context menu versus on the TortoiseSVN sub-menu is configurable.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-10.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="426" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-4.png" width="439" border="0"></a></p>
<p>In the resulting dialog window I enter <a href="file:///E:/SVN Repository">File:///E:/SVN Repository</a> as the URL of my repository. This is the path to the repository I created earlier in the tutorial. If I had a repository out on the Internet, my URL might start with http:// instead of <a href="file:///">file:///</a> (note, there are 3 slashes).</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-12.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="439" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-5.png" width="597" border="0"></a></p>
<p>Click the &#8220;&#8230;&#8221; button to browse the contents of the given repository. This allows you to choose where in the repository you want to import your files.</p>
<p>As you can see below, my repository is empty. If I were to leave the URL as shown, the 4 files in my &#8220;Project X&#8221; folder would be imported directly into the root of the repository. You can have one project per repository, or you can place several projects in a repository. I will have several projects in one repository, so I will use the Repository Browser windows to create a folder structure prior to importing my files.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-14.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="577" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-6.png" width="755" border="0"></a></p>
<p>I will right-click in the Repository Browser a few times to create a structure where I want to save the files in my &#8220;Project X&#8221; folder (see image below):</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-16.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="588" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-7.png" width="766" border="0"></a></p>
<p>When I&#8217;ve created my structure in the repository, I&#8217;ll select the &#8220;Project X&#8221; sub-folder in the Repository Browser window, click OK and I&#8217;ll be back in the Import window. Notice the URL in the Import window now points at the sub-folder in the repository.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-18.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="375" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-8.png" width="510" border="0"></a></p>
<p>Click OK in the Import window and the files are imported.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-20.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="326" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-9.png" width="724" border="0"></a></p>
<p>Yay! My files are in the repository. The only problem now is that my files in the repository are not linked to the files in my original &#8220;C:\Project X&#8221; folder. I need to check-out a Working Copy in order to have files to work with.</p>
<h2>Checking-Out a Working Copy</h2>
<p>To create a working copy of my files on my C:\ drive I will right-click in the C:\ explorer window and select &#8220;SVN Checkout&#8221;.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-22.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="601" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-10.png" width="325" border="0"></a></p>
<p>In the Checkout window, the URL will point to the URL where I imported my files, and the Checkout directory will be a new directory on my C:\ drive&nbsp; where I want a copy of the files so I can work with them. TortoiseSVN will create the directory if it doesn&#8217;t exist.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-24.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="394" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-11.png" width="513" border="0"></a></p>
<p>I now have a working copy of the files in my repository. I can now safely delete my original &#8220;Project X&#8221; directory as all the files are now both in the repository (on my E:\ drive) and my new working copy (on the C:\ drive).</p>
<h2>Working with your Working Copy</h2>
<p>Notice the little green checkmark icon on my working copy directory. This tells me that none of the files inside that directory have been modified since I last got copies from the repository.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-26.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="441" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-12.png" width="732" border="0"></a></p>
<p>If I modify one of the files in my working copy, I will see a little red exclamation point icon on the folder.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-28.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="446" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-13.png" width="741" border="0"></a></p>
<p>I can then drill down through the folders to find exactly what file has changed, in this case my index.html file.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-30.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="449" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-14.png" width="746" border="0"></a></p>
<p>I can right click the file, and chose &#8220;SVN Diff (or &#8220;TortoiseSVN&#8221; &gt; &#8220;SVN Diff&#8221;) to find out exactly what has changed in the file.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-32.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="446" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-15.png" width="389" border="0"></a></p>
<p>In the image below you can see that I added &#8220;: The Web Site&#8221; to my title element. Note: the image below is not from the built-in TortoiseSVN Diff tool, but rather from WinMerge. TortoiseSVN&#8217;s built-in tool will show you the differences, but you can use other third-party tools if you prefer.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-34.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="529" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-16.png" width="732" border="0"></a></p>
<p>I am happy with that change, so I will go ahead and commit that change to the repository. I right-click on the changed file, and select &#8220;SVN Commit&#8221; from the context menu.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-36.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="488" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-17.png" width="448" border="0"></a></p>
<p>The commit window gives me a chance to enter a message about the changes made. This can be helpful if you ever need to know exactly when something was changed. Click OK to commit the change.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-38.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="549" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-18.png" width="522" border="0"></a></p>
<p>If I now refresh my working copy folder view in Explorer, the icon on the file will change back to the green checkmark meaning that what is in my working folder is up to date with what&#8217;s in the repository.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-40.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="393" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-19.png" width="653" border="0"></a></p>
<p>If I wasn&#8217;t happy with the changes I had made, I could have done an &#8220;SVN Revert&#8221; to restore the previous version of the file from the repository rather than committing the change.</p>
<h2>Keeping Your Working Copy Up To Date</h2>
<p>If you end up with multiple working copies on different computers (for example you have one repository on a shared drive, but you have working copies on both your PC and your laptop) the green checkmark doesn&#8217;t guarantee you&#8217;ve got the latest version from the repository. The green checkmark means that as far as this working copy is concerned, the last time it checked the repository things were up to date. If you have two working copies and one of them falls behind in terms of being up to date, you can do an &#8220;SVN Update&#8221; to update a working copy. This will go out and check the repository for updates and update the working copy accordingly.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-42.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="362" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-20.png" width="431" border="0"></a></p>
<p>If I add a new file to my working directory, you notice that it won&#8217;t automatically have any associated SVN icon. This is because by default the file will be considered &#8220;non-versioned&#8221;. To make it versioned you&#8217;ll need to right-click it and select &#8220;SVN Add&#8221;. When you are ready you will still need to commit the file to the repository.</p>
<h2>Deleting a File from the Working Copy</h2>
<p>If you want to delete a file from the working copy you have to do more than just pressing the delete button. If you just press the delete button, then the repository doesn&#8217;t know that you meant to delete it, so the next time you do an update it will re-appear (copied back from the version in the repository). Instead you need to right-click the file and select &#8220;SVN Delete&#8221;.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-44.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="454" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-21.png" width="426" border="0"></a></p>
<p>That will delete the file, but also mark the file as deleted within your working copy. You will again need to do an commit to make the deletion in the repository.</p>
<p><a href="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-46.png" rel="lightbox[275]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="482" alt="image" src="http://annoyed.ca/wp-content/uploads/2009/02/windowslivewriteranintroductiontosubversion-d8d9image-thumb-22.png" width="458" border="0"></a></p>
<h2>Revisions</h2>
<p>Every time you make a commit to the repository, the revision number of the repository increases by one. Revisions are counted for the repository as a whole. The most recent revision can be referred to by the alias &#8220;HEAD&#8221;.</p>
<h2>What are all the .svn folders in my Working Copy?</h2>
<p>If you look closely in your working copy, you may see an .svn folder in each folder of your working copy. The folders are hidden folders, so depending on the Windows settings you may not see them, but they are there. Those folders contain the information that Subversion uses to link your working copy to the repository. If ever you need to get a copy of what&#8217;s in the repository, but without all the .svn folders, say for example you&#8217;re ready to publish it or hand the files over to your client, you can do an &#8220;SVN Export&#8221; into a new folder to get a &#8220;clean&#8221; copy of what&#8217;s in your repository.</p>
<h2>Conclusion</h2>
<p>This tutorial has just scratched the surface of what you can do with Subversion. We&#8217;ve seen how to create a Subversion repository, add files to it, checkout a working copy, modify, add, delete and commit files to the repository, revert files back from the repository and export a copy of the files suitable for distribution. We haven&#8217;t talked about integrating subversion with your favourite editor or IDE, or about advanced topics like tagging, branching. Those are topics worthy of their own tutorial.</p>
<p>I use Subversion on a daily basis for tracking everything from projects I am working on, to configuration files, to my resume.</p>
<p>I hope you found this tutorial useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://annoyed.ca/2009/03/05/an-introduction-to-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upgrading a WordPress Site Using Subversion</title>
		<link>http://annoyed.ca/2008/10/25/upgrading-a-wordpress-site-using-subversion/</link>
		<comments>http://annoyed.ca/2008/10/25/upgrading-a-wordpress-site-using-subversion/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 02:22:40 +0000</pubDate>
		<dc:creator>Christopher Hyne</dc:creator>
				<category><![CDATA[My Blog]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://annoyed.ca/2008/10/25/upgrading-a-wordpress-site-using-subversion/</guid>
		<description><![CDATA[A few weeks ago I finally made the upgrade jump from WordPress version 2.5.1 to version 2.6.2. I skipped the versions in between because while I haven&#8217;t got a lot of experience upgrading WordPress, from what experience I have had &#8230; <a href="http://annoyed.ca/2008/10/25/upgrading-a-wordpress-site-using-subversion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://annoyed.ca/wp-content/uploads/2008/10/windowslivewriterupgradingawordpresssiteusingsubversion-1352cimage-4.png" rel="lightbox[110]"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 15px 0px 20px; border-right-width: 0px" height="58" alt="image" src="http://annoyed.ca/wp-content/uploads/2008/10/windowslivewriterupgradingawordpresssiteusingsubversion-1352cimage-thumb-1.png" width="178" align="right" border="0"></a> </p>
<p>A few weeks ago I finally made the upgrade jump from WordPress version 2.5.1 to version 2.6.2. I skipped the versions in between because while I haven&#8217;t got a lot of experience upgrading WordPress, from what experience I have had it has usually been a pain. Especially if I&#8217;ve done any kind of customization (which I have).</p>
</p>
<p>So when I did make the jump to 2.6.2 I resolved to do it in such a way that any future upgrades would be easy. So what&#8217;s the obvious solution to the problem of controlling versions? Version control, of course! I am a big Subversion user and luckily the creators of WordPress are Subversion users too!</p>
<p><span id="more-110"></span>
<p>With a bit of Googling I came across <a href="http://www.geeksaresexy.net/2008/08/05/how-to-upgrade-wordpress-using-subversion/" target="_blank">this &#8220;How To Upgrade WordPress Using Subversion&#8221; page</a>. I basically followed the instructions in the section called &#8220;Switching an Established Blog to Subversion&#8221;.</p>
<p>So today I logged in to the administration side of the site and find a suggestion that I upgrade to WordPress 2.6.3. Time to test my simpler upgrade set-up. So I log into my site via SSH, switch into the directory containing my WordPress site (after making a backup of it, just in case), and I execute the following command:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">svn <span style="color: #0000ff">switch</span> http://svn.automattic.com/wordpress/tags/2.6.3 .</pre>
</div>
<p>and the result:</p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">U    wp-includes/class-snoopy.php
U    wp-includes/version.php
U    wp-admin/includes/media.php
Updated to revision 9351.</pre>
</div>
<p>Three files quietly updated. I logged into the administration side of the site again, just to see if there were any associated database upgrades for version 2.6.3 (there weren&#8217;t) and I see that I am now successfully running WordPress version 2.6.3.</p>
<p>Absolutely painless!</p>
]]></content:encoded>
			<wfw:commentRss>http://annoyed.ca/2008/10/25/upgrading-a-wordpress-site-using-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AnkhSVN is AWESOME!</title>
		<link>http://annoyed.ca/2008/10/25/ankhsvn-is-awesome/</link>
		<comments>http://annoyed.ca/2008/10/25/ankhsvn-is-awesome/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 01:45:23 +0000</pubDate>
		<dc:creator>Christopher Hyne</dc:creator>
				<category><![CDATA[AnkhSVN]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[VS2005]]></category>
		<category><![CDATA[VS2008]]></category>

		<guid isPermaLink="false">http://annoyed.ca/2008/10/25/ankhsvn-is-awesome/</guid>
		<description><![CDATA[What is AnkhSVN? It&#8217;s a Subversion source control provider for Visual Studio. It allows you to use Subversion for version control in Visual Studio rather than something like Visual SourceSafe. It&#8217;s also open-source and free. I can just hear some &#8230; <a href="http://annoyed.ca/2008/10/25/ankhsvn-is-awesome/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>What is <a href="http://ankhsvn.open.collab.net/" target="_blank">AnkhSVN</a>? It&#8217;s a Subversion source control provider for Visual Studio. It allows you to use Subversion for version control in Visual Studio rather than something like Visual SourceSafe. It&#8217;s also open-source and free.</p>
<p>I can just hear some people saying &#8220;I&#8217;ve tried AnkhSVN. It sucks. <a href="http://www.visualsvn.com/" target="_blank">VisualSVN</a> is the closest you can get to working Subversion / Visual Studio integration&#8221;. I can even hear a few people saying &#8220;They both suck. Who needs IDE integration anyway. <a href="http://tortoisesvn.tigris.org/" target="_blank">TortoiseSVN</a> from Windows Explorer is just fine&#8221;.</p>
<p>I have shared both of these views at various points in the last few years. But today I discovered and tried <strong><u><a href="http://blogs.open.collab.net/svn/2008/07/ankhsvn-20-fina.html" target="_blank">AnkhSVN 2.0</a></u></strong>! Huge difference! The new version is a nearly complete rewrite. It&#8217;s no longer an add-in, it&#8217;s own a proper SCC provider.</p>
<p>Do yourself a favour and give it a try before you drop any money on VisualSVN.</p>
]]></content:encoded>
			<wfw:commentRss>http://annoyed.ca/2008/10/25/ankhsvn-is-awesome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

