<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>source-control &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/source-control/</link>
	<description>Feed of posts on WordPress.com tagged "source-control"</description>
	<pubDate>Tue, 01 Dec 2009 03:26:44 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Team Foundation Server(TFS) Installation woes]]></title>
<link>http://tsells.wordpress.com/2009/11/30/tfs-installation-woes/</link>
<pubDate>Tue, 01 Dec 2009 02:15:11 +0000</pubDate>
<dc:creator>tsells</dc:creator>
<guid>http://tsells.wordpress.com/2009/11/30/tfs-installation-woes/</guid>
<description><![CDATA[Well after redoing my home network I needed to reinstall a VM with a TFS server for source control. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Well after redoing my home network I needed to reinstall a VM with a TFS server for source control.  I thought it would be fairly straight forward as I had done it in the past.  This time I thought I would use newer technologies (SQL 2008 vs 2005, Windows 2008 versus 2003).  Boy was that a mistake.  After numerous attempts to get a functioning TFS server I finally have it (3 days later).</p>
<p>Below is a list of failed attempts.</p>
<p>1.  Windows 2008 and SQL 2008.  Way too much custom installation and setup for source control.  Microsoft has to be out of their minds when setting this up.  I have done many custom installations (MS and Linux) and have to say this latest TFS attempt was the worst ever!!!! I would prefer to setup a Solaris Box and attempt multiple versions of Oracle on the same box before doing this again.</p>
<p>2.  Windows 2003 and SQL 2005 &#8211; I went with Win 2003 so it would install Windows Sharepoint Services for me (one less step).  Something happened with permission&#8217;s on one of my user accounts to my reporting services installation.  Too bad it didn&#8217;t catch it in the beginning.  After I few hours of trying to recover from a FAILED installation of TFS I scrapped the VM and went back to a snapshot.</p>
<p>3.  I get everything up and running (I thought) and then the next day get a strange SQL error I can&#8217;t pinpoint.  It has to do with the WSS_Configuration database.  After a couple of hours or more of searching I decided a clean operating system was in order.  Only about 15 minutes into the new operating system did I discover that while I applied the Service Pack for Visual Studio &#8211; it did not include the Service Pack for TFS.  This caused file version errors which were the root cause of my error.</p>
<p>4.  So now I am writing this post while waiting for the last of my service packs to be applied to TFS.  Here&#8217;s hoping I can create a new project from a remote pc.</p>
<p>Tips for install TFS 2008 on a single server</p>
<ol>
<li>Use Windows 2003 (32bit)</li>
<li>Use SQL 2005 SP3</li>
<li>Print out the directions and follow the prerequisites exactly</li>
<li>If running a VM &#8211; take a snapshot after every major software installation</li>
<li>Do not skip steps</li>
<li>Read the directions</li>
<li>Read the directions again</li>
<li>PAY CLOSE ATTENTION TO EVERY STEP IN THE PREREQ section!!!</li>
<li>If the TFS installation fails &#8211; go to a backup  / snapshot &#8211; do not waste your time.  The installation SUCKS and does NOT recover gracefully.</li>
</ol>
<p>Tips:  MICROSOFT &#8211; please try to make TFS 2010 a little more straight forward for installation.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What is source control and how to get started]]></title>
<link>http://cgrant.wordpress.com/2009/11/26/what-is-source-control-and-how-to-get-started/</link>
<pubDate>Thu, 26 Nov 2009 15:57:27 +0000</pubDate>
<dc:creator>cgrant</dc:creator>
<guid>http://cgrant.wordpress.com/2009/11/26/what-is-source-control-and-how-to-get-started/</guid>
<description><![CDATA[In the big IT shops source control is rather common place. However in smaller shops or for individua]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In the big IT shops source control is rather common place. However in smaller shops or for individual developers a version control system may not be a top priority. A source control system may seem overly complicated and unnecessary. Fortunately they’re not as cumbersome as you might think and the benefits are well worth the small effort.&#160; </p>
<p>So what exactly do we mean when we talk about source control, or version control systems? Basically a source control system provides a central place to store your code and a mechanism to track revisions of that code. </p>
<h3>&#160;</h3>
<h3>Source Control</h3>
<p>One common reason people start using a source control system is when more than one developer needs to access the code. There used to be a time when our live production system served as the central repository for accessing code. Jim had a task to update a webpage so, he would connect directly to the server and make a change to the file in the live environment. Bob may have a change to make and then go do the same thing. What about quality, what if there was a mistake or a file was accidentally deleted. To avoid this Developers may keep code in another location other than the live site. For individual developers this is typically on their computer. For multiple developers, this central spot may be a shared network drive. With that risk averted what else could go wrong?</p>
<p>What if Jim had a lot of changes to implement. Some core functionality needed to be changed and it couldn’t be done at one time. Typically Jim would grab a copy and keep it locally until it was finished then post it. Here’s the rub, after Jim takes the copy but before he puts it back, Bob goes on the server and makes a change. Later Jim posts his changes and overwrites Bob’s code. Geez thanks Jim. </p>
<p>Here’s where we start to see features of a source control system come in. In this case if they were using source control, when Jim tries to put his changes in, the system would alert him that other changes had been made since he pulled his copy. </p>
<h3>Source Versioning</h3>
<p>So what about this versioning concept, why do I care? Have you ever used undo on your computer? You know you make a mistake, hit ctrl+z and revert back to what you had before? Here’s a question, how do you revert back to something you had yesterday or last week. If you had something versioning your files you could do just that. </p>
<p>Say you’re doing a website and are making some wording updates to a promotion. You post the changes and a few weeks later your client tells you there’s a law suit over that change. Apparently a customer claimed the original promotion said one thing but the company say it was something else. How do you go back and see what really was on the site? Version control. </p>
<p>Another scenario, you have a functional application that your client is using in production. Now you have another customer who wants to use it too. You decide to update the application to accommodate more than one client. After a few weeks of tinkering you still can’t get things the way you want. It’s functional and in your central repository but not quite right. Your client comes back and wants a change to the app in production tomorrow. Your repository copy has the new changes in it, if you make the change now it will have your unfinished changes in it. With a version control system you can pull a snapshot of the code from before you started your changes and update it without affecting your in progress changes. </p>
<p>&#160;</p>
<h3>Getting started using a source version control system</h3>
<p>There are a variety of free and fee based solutions. Some of the big names like ClearCase and Preforce sometimes show up in the big companies but the free solutions like CVS and SVN are more popular. CVS has been around for ages and had a huge following. SVN, also known as Subversion, started as an effort to fix some of the challenges that were in CVS. These days SVN is very widely used and is pretty much the standard. </p>
<p>Lets take a look at SVN. Most systems have a server component and a client component. The server piece is where your code is stored and the client is an interface for you to access that code. SVN is no different. You can go out and <a href="http://subversion.tigris.org/" target="_blank">grab the server components</a> then go get a client too. You don’t need to do this at this point though. For this example and for simple setups, the <a href="http://tortoisesvn.tigris.org/" target="_blank">Subversion client TortoiseSVN</a> has everything you need. So go ahead, down load and install it. </p>
<p>Once installed create a directory to act as your central repository. In this case I’ll create one at c:\repo. Navigate into that directory and right click. In the context menu choose TortoiseSVN -&#62; Create repository here. Just like that you have a functional source control system. </p>
<p>Lets start using our new system. Before we do I need to clarify one thing. We just created a setup that mimics a server configuration. While this example is setup locally, it could ba on a server somewhere. The next step explains how you access that content and keep a useable copy locally. </p>
<p><a href="http://cgrant.files.wordpress.com/2009/11/image15.png"><img style="display:inline;margin-left:0;margin-right:0;border-width:0;" title="image" border="0" alt="image" align="right" src="http://cgrant.files.wordpress.com/2009/11/image_thumb17.png?w=339&#038;h=266" width="339" height="266" /></a> We’re ready now to use our SVN instance. Find a place on your computer where you’ll be doing your work, maybe c:\workspace. Navigate into that directory and right click. In the context menu choose SVN Chekout. This will pop up a window asking you where your repository is and how you want to get the contents.&#160; </p>
<p>For the URL type in <a href="///">file:///</a> followed by the path to where you create the SVN repository earlier. This is not the working directory, rather the location of the repository. Since we installed this locally it will be something like <a href="/repo">file:///C:/repo</a> but if this were on a server it could be <a href="http://someserver.com/repo">http://someserver.com/repo</a> </p>
<p>In this scenario we’re starting with the repository and pull the contents into our workspace. If you already had files in a workspace you could start there and push them into the repository with the import option on the context menu.</p>
<h3>Using Your New Source Control System</h3>
<p>Now that we have things setup lets try it out. Create a text file in your workspace called MyFile.txt. Add some content in it. Save and close. <a href="http://cgrant.files.wordpress.com/2009/11/image16.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="http://cgrant.files.wordpress.com/2009/11/image_thumb18.png?w=244&#038;h=150" width="244" height="150" /></a>Depending on your version and setup the icon may differ but you’ll see a marker on your file like a question mark. This is telling you that this file is not in the repository or under source control. Since it is a new file we need to get it in there. Right click on a white space and choose</p>
<p>svn commit. The following popup will show you all files&#160;&#160; that have been updated locally and are not in sync with the repository. you should notice that our file is listed, but is not checked.<a href="http://cgrant.files.wordpress.com/2009/11/image17.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="http://cgrant.files.wordpress.com/2009/11/image_thumb19.png?w=244&#038;h=218" width="244" height="218" /></a> Since this is a new file we need to select it and have the SVN client add it to our repository. Make sure our file is checked and hit ok.&#160; The confirmation screen will show that everything has been added and updated. </p>
<p><a href="http://cgrant.files.wordpress.com/2009/11/image18.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="http://cgrant.files.wordpress.com/2009/11/image_thumb20.png?w=244&#038;h=114" width="244" height="114" /></a>Now go back and make a change to that file again, Save it and take a look at the new icon.&#160; </p>
<p><a href="http://cgrant.files.wordpress.com/2009/11/image19.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="http://cgrant.files.wordpress.com/2009/11/image_thumb21.png?w=146&#038;h=145" width="146" height="145" /></a> </p>
<p>This exclamation point tells us that this file, which is under version control, is out of sync with the repository. Again right click and commit changes. </p>
<p><a href="http://cgrant.files.wordpress.com/2009/11/image20.png"><img style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="http://cgrant.files.wordpress.com/2009/11/image_thumb22.png?w=105&#038;h=104" width="105" height="104" /></a> Now all is good and we get a Green checkmark. </p>
<p>So there you have it. The barebones basics of getting going with a source control system. </p>
<p>&#160;</p>
<p>&#160;</p>
<p>In future posts we’ll be using source control systems in our examples which will give you more context how this fits into a development process. Even with this basic setup you’ll be able to point your IDE to this local repository and follow along. Don’t just use it for our examples though, you can keep versions of any file this way. Version your wedding list, or Photoshop files. Whatever it is, revision control systems provide a lot of value. </p>
<p>For now happy versioning.&#160; </p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Source Control Headaches...]]></title>
<link>http://joelbennett.wordpress.com/2009/11/18/source-control-headaches/</link>
<pubDate>Wed, 18 Nov 2009 22:43:08 +0000</pubDate>
<dc:creator>Joel</dc:creator>
<guid>http://joelbennett.wordpress.com/2009/11/18/source-control-headaches/</guid>
<description><![CDATA[It seems like it&#8217;s at least once a week that I end up fighting with source control (Vault, I]]></description>
<content:encoded><![CDATA[It seems like it&#8217;s at least once a week that I end up fighting with source control (Vault, I]]></content:encoded>
</item>
<item>
<title><![CDATA[Git Over It]]></title>
<link>http://citrixblogger.org/2009/11/13/git-over-it/</link>
<pubDate>Fri, 13 Nov 2009 00:30:41 +0000</pubDate>
<dc:creator>jeffreymuir</dc:creator>
<guid>http://citrixblogger.org/2009/11/13/git-over-it/</guid>
<description><![CDATA[Git is a tool used extensively for open source projects.  It is a way of distributing source control]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://citrixblogger.wordpress.com/files/2009/11/git-logo.jpg"><img class="aligncenter size-full wp-image-531" title="git-logo" src="http://citrixblogger.wordpress.com/files/2009/11/git-logo.jpg" alt="git-logo" width="97" height="202" /></a></p>
<p><a title="Git" href="http://en.wikipedia.org/wiki/Git_(software)" target="_blank">Git</a> is a tool used extensively for open source projects.  It is a way of distributing source control instead of the typical central repository.  History has it that Linus Torvalds himself developed the original tool.</p>
<blockquote><p><em>Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server.</em></p></blockquote>
<p>Why is it called git?  The theory is that <a title="Git naming" href="http://git.or.cz/gitwiki/GitFaq#Whythe.27git.27name.3F" target="_blank">Linus named it after himself</a>. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   However, no one seems to know for sure.</p>
<p>Why git?  It all started as a dispute between the Linux developers and BitKeeper.  The BitKeeper tools had been free to the community until the company charged the developers with reverse engineering their product.   The result was that developers would need to <a title="Paying for BitKeeper" href="http://en.wikipedia.org/wiki/BitKeeper#Pricing_change" target="_blank">pay to continue using BitKeeper</a>.  Given the &#8220;free&#8221; nature of Linux development this obviously did not go down well.  Linus led the project to develop an alternative and the result is git.</p>
<p>The overall good news is that git has been widely adopted even though it was only created starting in 2005.  There are several good features it has compared to the traditional source control solutions.</p>
<ul>
<li>Offline changes</li>
<li>Free (always helps)</li>
<li>Fairly simple commands</li>
<li>Distributed source management</li>
<li>Open source (for the hardcore)</li>
</ul>
<p>To get a better introduction, visit the <a title="Git home page" href="http://git-scm.com/">git homepage</a>.  As a set of examples of this homepage:</p>
<p><a href="http://citrixblogger.wordpress.com/files/2009/11/gitis.jpg"><img class="aligncenter size-full wp-image-533" title="Git Is..." src="http://citrixblogger.wordpress.com/files/2009/11/gitis.jpg" alt="Git Is..." width="339" height="309" /></a>There is also a section on quick start.  Git has two paths for creating a repository.  Either it is created from a clone from another server or it is created from scratch.</p>
<p><a href="http://citrixblogger.wordpress.com/files/2009/11/gitquickstart.jpg"><img class="aligncenter size-full wp-image-534" title="GitQuickStart" src="http://citrixblogger.wordpress.com/files/2009/11/gitquickstart.jpg" alt="GitQuickStart" width="500" height="150" /></a>Anything in parentheses is meant to be replaced with specific actions (like a directory or file).  To keep it simple, it is best to experiment with a locally created depot.  It is worth doing an easy walk through of the creation.</p>
<ol>
<li>git init</li>
<li>git add .</li>
<li>git commit -m &#8220;My message&#8221;</li>
</ol>
<p>&#8220;git init&#8221; creates the initial depot for this current project.  It creates a subdirectory (usually hidden) called .git which contains all the information that git needs to keep to manage the source.  Think of it as being where everything is kept to keep git happy.</p>
<p>&#8220;git add .&#8221; instructs git to find every single file under the current directory and add it to the staging area to be prepared for committing. It will only add files that are new or changed when used with the &#8220;.&#8221; which is a great trick.  If there are files that you do not want to automatically add, you can always change the &#8220;.gitignore&#8221; file to skip over them.  Typically the object and binaries need to be skipped if the tree is actually built.  Doing the add is really just a sign of intent.  It does not actually change anything in the git tree.  Also of note, if you change any files that have been added, you need to add them again if you want to capture the changes in the staging area.</p>
<p>There is nothing to fear with commitment.  Commit with &#8220;git commit&#8221; just means that you want to capture all the changes into one thing.  This is where it updates the local git tree and it is seen as a kind of &#8220;snapshot&#8221; of where the code is at.  Keep in mind that a commit means nothing to anyone else.  A commit is just a local thing.  This enables git to be used offline and without the need for a central server ever.</p>
<p>However, git can also be used in a distributed team.  In fact, that was the original intent.  That is the point of the other path for creating a depot on the local machine.</p>
<p>Working off of a remote depot is in this order:</p>
<ol>
<li>clone a remote depot (git clone)</li>
<li>make changes to the local files (git add)</li>
<li>commit the changes (git commit)</li>
<li>send the patch to someone that cares (git format-patch)</li>
</ol>
<p>This is not the only way to do it.  It is also possible to submit the changes back to the remote depot assuming you have been authorized.</p>
<p>Coming from a world of PVCS and Perforce, git can take some getting used to.  It seems uncommon for git to be used in commercial products in Citrix (except for Xen products).  XenApp and XenDesktop are based on Perforce.</p>
<p>There are so many different places you can go to find out more about git.  Here are some examples:</p>
<ul>
<li><a title="Gitcasts" href="http://www.gitcasts.com/" target="_blank">Gitcasts &#8211; collection of videos about git features </a></li>
<li><a title="Git book" href="http://progit.org/book/" target="_blank">Pro Git &#8211; online book about git</a></li>
<li><a title="Git Internals document" href="http://ftp.newartisans.com/pub/git.from.bottom.up.pdf" target="_blank">Git from the bottom up &#8211; understanding the internals</a></li>
<li><a title="Git documentation" href="http://git-scm.com/documentation" target="_blank">Official git documentation site</a></li>
</ul>
<p><span style='text-align:center; display: block;'><object width='425' height='350'><param name='movie' value='http://www.youtube.com/v/4XpnKHJAok8&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' /><param name='allowfullscreen' value='true' /><param name='wmode' value='transparent' /><embed src='http://www.youtube.com/v/4XpnKHJAok8&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;hd=0' type='application/x-shockwave-flash' allowfullscreen='true' width='425' height='350' wmode='transparent'></embed></object></span></p>
<p>Linus Torvalds (git creator) speaks about git at Google Talks.</p>
<p>Thanks goes to Michael Wookey in Citrix Labs Sydney for being such a great git advocate.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[A simple intro to git on Windows]]></title>
<link>http://codingbone.wordpress.com/2009/11/09/a-simple-intro-to-git-on-windows/</link>
<pubDate>Mon, 09 Nov 2009 10:02:47 +0000</pubDate>
<dc:creator>brass-kazoo</dc:creator>
<guid>http://codingbone.wordpress.com/2009/11/09/a-simple-intro-to-git-on-windows/</guid>
<description><![CDATA[I&#8217;ve heard a fair amout about git in the last year, various people singing its praises for lon]]></description>
<content:encoded><![CDATA[I&#8217;ve heard a fair amout about git in the last year, various people singing its praises for lon]]></content:encoded>
</item>
<item>
<title><![CDATA[VCS is only part of ALM]]></title>
<link>http://codetheory.wordpress.com/2009/11/07/vcs-is-only-part-of-alm/</link>
<pubDate>Sat, 07 Nov 2009 16:36:00 +0000</pubDate>
<dc:creator>Greg</dc:creator>
<guid>http://codetheory.wordpress.com/2009/11/07/vcs-is-only-part-of-alm/</guid>
<description><![CDATA[Version Control Systems(VCS) only covers a portion of Application Life cycle Management(ALM).&#160; ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Version Control Systems(VCS) only covers a portion of Application Life cycle Management(ALM).&#160; Its important to understand what your needs are and use the correct tools.&#160; VCS will fall short if your looking to manage application life cycles.&#160; If you are building enterprise solutions and run with large teams, making the investment in ALM pays off almost immediately.</p>
<p>Modern software projects tend to be very complex and require fast and efficient delivery cycles, that leave simple VCS systems lacking.&#160; Even in small teams, ALM has many advantages.&#160; I find very few cases where simply having a source control system is sufficient.</p>
<p>In the world of ALM, there are two approaches.&#160; You can cobble together an ALM system from many tools or you can get an integrated solution.&#160; I always prefer the later, because the cost of doing the tools integration is high.&#160; In addition, it tends to create pockets of knowledge of the process workings and in some cases a single point of failure among the skill sets.&#160; You can get integrated solutions from vendors like Borland, Microsoft or Serena.</p>
<p>There are cost differentials to consider.&#160; Many of the ALM products or commercial and come with a price.&#160; While you can probably get VCS, Defect, Project tracking tools to create an ALM process, you still pay for that in time and complexity.&#160; A home built solution takes time to get off the ground and usually has that one guy that knows how it all works.&#160; To everyone else it tends to be a mystery.</p>
<p>If your producing software, the quality can be directly impacted by the process that is applied to the production of the software.&#160; Using an ALM tool can greatly amplify a software engineering teams ability to create a quality product.</p>
<p>Some of the benefits of ALM:</p>
<ul>
<li>Better collaboration and communication among teams </li>
<li>Increased productivity and faster development through tool integration </li>
<li>Improved quality and defect tracking </li>
<li>Adaptability to business changes and market demand </li>
<li>Improved project governance through visibility and transparency </li>
</ul>
<p>Managing the life cycles around code are fundamental to leveraging your teams most effectively.&#160; Everything that interacts with that code, from new requirements to maintenance support and defect corrections, can cause the code base to experience entropy.&#160; There are already very complex process and problems and chaining effects of change that need to be mitigated.&#160; Using tools that allow developers, testers and project managers to have visibility into the process and make adjustments quickly help to keep the product in a stable and manageable state.</p>
<p>As projects grow, the importance branching, merging and conflict resolution become extremely important.&#160; And the ability to map artifacts to code and trace it through the process becomes vital to releasing features while maintaining existing features.&#160; Planning and scheduling work against branches and communication with quality teams can be cumbersome when your process and tools are not integrated.</p>
<p>How you organize your teams and the tools they use can make or break the product you are trying to produce.&#160; Simply using a VCS will limit your ability to be competitive in the marketplace.&#160; He who has the best people and the best process wins.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Installing Subversion (svn) onto Windows Server]]></title>
<link>http://yamspog.wordpress.com/2009/10/22/installing-subversion-svn-onto-windows-server/</link>
<pubDate>Thu, 22 Oct 2009 23:05:08 +0000</pubDate>
<dc:creator>yamspog</dc:creator>
<guid>http://yamspog.wordpress.com/2009/10/22/installing-subversion-svn-onto-windows-server/</guid>
<description><![CDATA[&#160; Ignorance is Bliss This has got me angrified!&#160; There are no simple steps on how to insta]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>&#160;</p>
<blockquote><p>Ignorance is Bliss</p>
</blockquote>
<p>This has got me <strong>angrified</strong>!&#160; There are no simple steps on how to install an SVN server onto a windows server.&#160; All the steps assume that you already have Apache installed.&#160; I understand that you can run SVN as a stand-alone installation but I want to run it in conjunction with Apache and take advantage of single sign-in provided by integration with active directory.</p>
<p><font face="Verdana">I suddenly find myself eating my own words.&#160; After writing my tirade, I went back and found a couple complete svn packages. The one that I opted for is called Visual SVN (<a href="http://www.visualsvn.com">www.visualsvn.com</a>).&#160; They have both a free and a pay version.&#160; Being cheap, and generally against the principle of paying for open-source software, I opted for the free version.</font></p>
<p><font face="Verdana">My installation experience went something like this…</font></p>
<ol>
<li>download the msi package</li>
<li>double-click and follow the steps to create repository and users</li>
<li>run tortoise svn to access the newly created repository</li>
</ol>
<p><font face="Verdana">It couldn’t have been simpler or more elegant even if Apple had created the product!&#160; It may make the UNIX crowd angry as they seem to have created a product that does away with the arcanity of command line arguments, but these guys did an excellent job of bringing svn into the windows age.</font></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[SVN con Windows Authentication]]></title>
<link>http://guidozanon.wordpress.com/2009/10/22/svn-con-windows-authentication/</link>
<pubDate>Thu, 22 Oct 2009 20:40:50 +0000</pubDate>
<dc:creator>guidozanon</dc:creator>
<guid>http://guidozanon.wordpress.com/2009/10/22/svn-con-windows-authentication/</guid>
<description><![CDATA[En el intento de integrar un poco mas los servicios de la red interna de la empresa, cambiamos de Se]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>En el intento de integrar un poco mas los servicios de la red interna de la empresa, cambiamos de Seguridad de Texto Plano a Seguridad Integrada con Windows Authentication (SSPI).</p>
<p>Cual es la idea de esto? simplemente mantener un unico password por usuario para cualquier servicio que segurizado (lo que se conoce como single-sign-on).</p>
<p>El cambio es realmente sencillo de realizar. Lo unico que necesitamos es tener un Dominio de Windows que realice la autenticacion y el modulo SSPI de Apache (<a href="http://sourceforge.net/projects/mod-auth-sspi/">http://sourceforge.net/projects/mod-auth-sspi/</a>).</p>
<p>Porque un modulo de Apache? porque SVN no maneja la seguridad de los directorios, sino que la misma esta a cargo del Servidor HTTP, que en este caso es Apache.</p>
<p>Ok, el paso a paso&#8230;</p>
<ol>
<li>Bajar el Modulo SSPI de Apache (<a href="http://sourceforge.net/projects/mod-auth-sspi/">http://sourceforge.net/projects/mod-auth-sspi/</a>)</li>
<li>Bajar el servicio Apache en el Servidor donde se encuentra SVN.</li>
<li>Copiar el archivo &#8220;mod_auth_sspi.so&#8221; que se encuentra dentro del archivo que bajamos en el paso 1), al directorio &#8220;\httpd\modules&#8221; dentro del directorio donde se instalo SVN, o dentro del directorio donde se encuentra instalado Apache.</li>
<li>Ahora necesitamos cambiar la configuracion de Apache. Para esto vamos al directorio &#8220;\conf&#8221; dentro del directorio donde se encuentra instalado Apache y editamos el archivo &#8220;httpd.conf&#8221;
<ol>
<li>Agregar linea &#8220;LoadModule sspi_auth_module modules/mod_auth_sspi.so&#8221; luego de la ultima linea que comienze con &#8220;LoadModule&#8221;. Esto cargara el modulo SSPI en el proceso de Apache.</li>
<li>Cambiar la configuracion de Location. A continuacion muestro como quedo mi configuracion:<br />
<code><br />
</code>&#60;Location /svn&#62;<br />
DAV svn<br />
SVNParentPath C:\path_del_repositorio<br />
AuthType SSPI<br />
SSPIAuth On<br />
SSPIAuthoritative On<br />
SSPIDomain TUDOMINIO<br />
SSPIOfferBasic On<br />
AuthName &#8220;Mi Mensaje de Autorizacion&#8221;<br />
AuthzSVNAccessFile C:\path_del_archivo_de_accesos<br />
Require valid-user<br />
&#60;/Location&#62;</li>
<li>Es necesario eliminar o comentar (con # al inicio de la linea) la configuracion anterior de &#8220;AuthUserFile&#8221;, ya que ahora la autenticación se realiza  a través del dominio.</li>
</ol>
</li>
<li>Por ultimo sera necesario modificar el archivo de acceso o autorización. Este es el archivo del que se hace referencia en el key &#8220;AuthzSVNAccessFile&#8221; en la configuracion que modificamos anteriormente. En este archivo es necesario agregarle a todos los usuarios el Dominio al que pertenecen. Ej: Guido por Dominio\Guido.</li>
<li>Iniciamos nuevamente el servicio Apache y si todo esta bien, iniciara normalmente.</li>
</ol>
<p>Ya tenemos nuestro repositorio con seguridad integrada!</p>
<p>Obviamente sera necesario que el usuario Dominio\Guido exista en el dominio de windows, o cambiar al usuario Guido por el usuario de Dominio que utiliza esa persona.</p>
<p>Si el servicio Apache no inicia, es posible ver los errores de inicio del servicio en el EventViewer de Windows.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CCRC - where is the view information?]]></title>
<link>http://idlesun.wordpress.com/2009/10/18/ccrc-where-is-the-view-information/</link>
<pubDate>Sun, 18 Oct 2009 19:43:56 +0000</pubDate>
<dc:creator>idlesun</dc:creator>
<guid>http://idlesun.wordpress.com/2009/10/18/ccrc-where-is-the-view-information/</guid>
<description><![CDATA[One of my colleagues at work had gotten hard disk booting failure. Luckily, the HDD was attached to ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>One of my colleagues at work had gotten hard disk booting failure. Luckily, the HDD was attached to other PC and readable. The issue was that there were CCRC views with checked out files. The files couldn&#8217;t be checked in or undone unless the views were properly recovered. However, when all the CCRC and CCRC views  were copied over to newly built PC, the views were not visible in CCRC.  CCRC doesn&#8217;t recognize the local CCRC views folders even though everything was copied to the exact same location as before.</p>
<p>The key to resolving this issue is to find out where the view information is stored locally on PC. Not in Windows registry. Not in the CCRC program folder. It is in the &#8216;<strong>.ccase_wvreg</strong>&#8216; file in user home folder. Once you find and open it in a text editor, you will get pretty good idea.</p>
<p>For more detail on .ccase_wvreg file, see <a href="http://www-01.ibm.com/support/docview.wss?rs=984&#38;uid=swg21228258" target="_blank">About the CCRC .ccase_wvreg file</a>.</p>
<div id="_mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:0;width:1px;height:1px;">
<h1>.ccase_wvreg</h1>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[CCRC - How to fix "undo checkout" failure]]></title>
<link>http://idlesun.wordpress.com/2009/10/18/ccrc-how-to-fix-undo-checkout-failure/</link>
<pubDate>Sun, 18 Oct 2009 19:13:30 +0000</pubDate>
<dc:creator>idlesun</dc:creator>
<guid>http://idlesun.wordpress.com/2009/10/18/ccrc-how-to-fix-undo-checkout-failure/</guid>
<description><![CDATA[As far as my experience is concerned, CCRC (ClearCase Remote Client) is not that stable on Windows (]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As far as my experience is concerned, CCRC (ClearCase Remote Client) is not that stable on Windows (It was much more stable on Linux).<br />
One of the problems I faced was the &#8220;undo checkout&#8221; failure with the “Unable to find checked out version” error. I guess it happened because of some network issue when I tried undo initially. Again, my guess is that undoing was done on server side but it was not reflected properly on my CCRC client.<br />
This ghost checked-out file is a real problem because you can not update or check in anymore. Luckily, I could find  a solution myself.</p>
<p>The solution that I found involves manual editing of &#8220;.copyarea.db&#8221; file in the directory where that checked-out file is. So do it at your own judgment and risk. Here is the procedure:</p>
<ol>
<li>Make &#8220;.copyarea.db&#8221; file writable and open it using a text edit of your choice.</li>
<li>Find the line with the problematic file name and modify the number in the end of the line from &#8216;1&#8242; to &#8216;0&#8242;.</li>
<li>Save modified &#8220;.copyarea.db&#8221; file and change back it to &#8216;read-only&#8217;.</li>
<li>Open CCRC  and find that the file is not marked as &#8216;checked-out&#8217; anymore. (It may be marked as &#8216;hijacked&#8217; already. Then skip next step)</li>
<li>Do &#8220;update resource&#8221; on the file. And find that file turns into &#8216;hijacked&#8217; state.</li>
<li>Do &#8220;undo hijack&#8221;. Once it is done with no problem, the file state is synched and good to go.</li>
</ol>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Pre-Merge Formatting]]></title>
<link>http://ccollins.wordpress.com/2009/10/07/pre-merge-formatting/</link>
<pubDate>Wed, 07 Oct 2009 12:15:53 +0000</pubDate>
<dc:creator>ccollins</dc:creator>
<guid>http://ccollins.wordpress.com/2009/10/07/pre-merge-formatting/</guid>
<description><![CDATA[Merge Right A problem with formatting code on a branch, is when you come to merge it back to the tru]]></description>
<content:encoded><![CDATA[Merge Right A problem with formatting code on a branch, is when you come to merge it back to the tru]]></content:encoded>
</item>
<item>
<title><![CDATA[howto use svnsync to mirror a repository on windows]]></title>
<link>http://iacoware.wordpress.com/2009/10/02/howto-use-svnsync-to-mirror-a-repository-on-windows/</link>
<pubDate>Fri, 02 Oct 2009 10:37:42 +0000</pubDate>
<dc:creator>iacoware</dc:creator>
<guid>http://iacoware.wordpress.com/2009/10/02/howto-use-svnsync-to-mirror-a-repository-on-windows/</guid>
<description><![CDATA[I&#8217;m in the process of (hopefully) switching SVN hosting provider from eurosvn.com to xp-dev.co]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">I&#8217;m in the process of (hopefully) switching SVN hosting provider from eurosvn.com to xp-dev.com. To make that happen I first have to create a dump of my existing repository and it&#8217;s not something you can do on an online repo, svnadmin dump only works on local paths (which is a good thing <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">I&#8217;m going to post here the details of making a local readonly mirror repository. It&#8217;s useful for, at least, two reasons:</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">1. Make a backup</div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">2. Make a dump <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </div>
<div id="_mcePaste" style="position:absolute;left:-10000px;top:0;width:1px;height:1px;">Ready? Ok, let&#8217;s start opening your command prompt:</div>
<p>I&#8217;m in the process of (hopefully) switching SVN hosting provider from eurosvn.com to xp-dev.com. To make that happen I first have to create a dump of my existing repository and it&#8217;s not something you can do on an online repo, svnadmin dump only works on local paths (which is a good thing <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>I&#8217;m going to post here the details of making a local readonly mirror repository. It&#8217;s useful for, at least, two reasons:</p>
<ol>
<li><strong>Make a backup</strong></li>
<li><strong>Make a dump</strong> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ol>
<p>Ready? Ok, let&#8217;s start opening your command prompt:</p>
<h3>1. Create a local repository</h3>
<pre>svnadmin create [YOUR NEW REPO PATH]
eg: svnadmin create c:\svnrepo\iacoware.</pre>
<p>The root path must exists (c:\svnrepo). By default the repository is created as read-only</p>
<h3>2. Enable writing on your new repo</h3>
<p>Open file [PHYSICAL LOCAL REPO PATH\conf\svnserve.conf] and decomment line</p>
<pre>[password-db = passwd] (line 20 in my file)</pre>
<p>This tell to SVN which file stores user&#8217;s credentials.</p>
<h3>3. Add a new user</h3>
<p>Open file [PHYSICAL LOCAL REPO PATH\conf\passwd] and add a new user under the [users] group (mine svnsync_user = svnsync).</p>
<h3>4. Give your new user read/write permissions</h3>
<p>Open file [PHYSICAL LOCAL REPO PATH\conf\authz] and add:</p>
<pre>[/]
svnsync_user = rw</pre>
<h3>5. Enable rev propchange (revision property change)</h3>
<p>Look for the file &#8220;pre-revprop-change.tmpl&#8221; in [PHYSICAL LOCAL REPO PATH\hooks]. Make a copy and rename it to pre-revprop-change.bat. Open it and remove everything, be sure to leave only:</p>
<pre>exit 0</pre>
<h3>6. Initialize the repository</h3>
<pre>svnsync init [LOCAL REPO PATH using file:// protocol] [REMOTE LOCAL PATH] --sync-username [USERNAME] --sync-password [PASSWORD]
eg: svnsync init file:///c:/svnrepo/iacoware http://your.svn.hosting.provider/your.repository --sync-username user_svnsync --sync-password svnsync</pre>
<p>Getting the local repo path right could be tricky. Pay close attention to the number of slash. I used the file protocol but you can also use the svnserve protocol:</p>
<pre>eg: svnsync init svn://iacoware ...
(obviously svnserve must be up and running, eg: svnserve -d -r c:\svnrepo)</pre>
<h3>7. Synchronize</h3>
<p><code>svnsync sync [LOCAL REPO PATH]. Be aware, if your repo is big, it could take a loooot of time.<br />
eg: svnsync sync file:///c:/svnrepo/iacoware</code><br />
From now on if you want to synchronize your local repository you have to repeat only step no.7</p>
<p>HTH</p>
<h3>Troubleshooting</h3>
<p>If the synchronization process goes wrong (it happened to me) next time you&#8217;ll try to sync you&#8217;ll receive an error &#8220;failed to get lock on destination repos, currently held by&#8230;&#8221;. Run this command:</p>
<pre>svn propdel svn:sync-lock --revprop -r 0 [LOCAL REPO PATH]</pre>
<p>and life will be happy again</p>
<h3>References</h3>
<p><a href="http://journal.paul.querna.org/articles/2006/09/14/using-svnsync/">http://journal.paul.querna.org/articles/2006/09/14/using-svnsync/</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Git for Windows developers]]></title>
<link>http://igorshare.wordpress.com/2009/09/28/git-for-windows-developers/</link>
<pubDate>Mon, 28 Sep 2009 21:09:14 +0000</pubDate>
<dc:creator>igormoochnick</dc:creator>
<guid>http://igorshare.wordpress.com/2009/09/28/git-for-windows-developers/</guid>
<description><![CDATA[Just moved to Git on Windows. It gives me more flexibility for the local repositories and distribute]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Just moved to Git on Windows. It gives me more flexibility for the local repositories and distributed development for my new team.</p>
<p>Found the following series very helpful for the beginners (my engineers never used Git before):</p>
<p><a href="http://www.lostechies.com/blogs/jason_meridth/archive/2009/06/01/git-for-windows-developers-git-series-part-1.aspx">Git For Windows Developers &#8211; Git Series &#8211; Part 1</a></p>
<p><a href="http://www.lostechies.com/blogs/jason_meridth/archive/2009/06/04/git-for-windows-developers-git-series-part-2.aspx">Git For Windows Developers &#8211; Git Series &#8211; Part 2</a></p>
<p><a href="http://www.lostechies.com/blogs/jason_meridth/archive/2009/06/07/git-for-windows-developers-git-series-part-3.aspx">Git For Windows Developers &#8211; Git Series &#8211; Part 3</a></p>
<p>&#160;</p>
<p><a href="http://code.google.com/p/tortoisegit/"><img src="http://code.google.com/p/tortoisegit/logo?logo_id=1251981330" /></a> Take a look at <a href="http://code.google.com/p/tortoisegit/">Tortoise Git</a> as well. Reduces all the command-line noise drastically:</p>
<p> <!--more--><a href="http://code.google.com/p/tortoisegit/"><img src="http://tortoisegit.googlecode.com/files/Log2.jpg" width="586" height="480" /></a><a href="http://code.google.com/p/tortoisegit/"><img src="http://tortoisegit.googlecode.com/files/tortoisemerge.jpg" width="640" height="378" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Ignoring files and folders with Bazaar Source Control]]></title>
<link>http://kashfarooq.wordpress.com/2009/09/15/ignoring-files-and-folders-with-bazaar-source-control/</link>
<pubDate>Tue, 15 Sep 2009 06:32:09 +0000</pubDate>
<dc:creator>Kash</dc:creator>
<guid>http://kashfarooq.wordpress.com/2009/09/15/ignoring-files-and-folders-with-bazaar-source-control/</guid>
<description><![CDATA[Continuing the series of blog posts to help you move away from subversion. In Subversion, you can ig]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Continuing the series of blog posts to help you <a href="http://kashfarooq.wordpress.com/2009/09/08/bazaar-or-git-moving-away-from-subversion">move away from subversion</a>.</p>
<p>In Subversion, you can ignore files or whole sub folders with Subversion properties. Unfortunately, you have to do this everytime you add a new project to your source code structure &#8211; for example, you have to add Subversion properties to ignore the new obj and bin folders. </p>
<p>With Bazaar you can also ignore a specific file or directory. e.g. to ignore a directory:</p>
<pre class="brush: bash;">
bzr ignore src/myproj/bin
</pre>
<p>The first time you ignore a file, a .bzrignore file is created. This file contains all the files and folders you want BZR to ignore. You can push this file to a shared repository and then everyone who makes a branch from the shared repository will ignore the same files.</p>
<p>Rather than ignoring files and folders individually, you can update this file yourself to add pattern matching file paths you want ignored. Paste the following into your .bzrignore to ignore all bin folders, obj folders, ReSharper folders and associated files, and Dev Studio files that you normally do not put in source control:</p>
<pre class="brush: bash;">
**/bin
**/bin/**
**/*.user
**/obj
**/obj/**
**/*.sln.cache
**/*.suo
**/aspnet_client
**/*_ReSharper*.*
**/*.resharper
</pre>
<p>Now, when you commit .bzrignore and push this file back to the shared repository, everyone who pulls the changes to their branches will ignore the same files.</p>
<p>To always ignore these files for all of your BZR branches, you can paste the above code the global &#8216;ignore&#8217; file. You can find this at:</p>
<ol>
<li>Windows Vista: C:\Users\your-user-name\AppData\Roaming\bazaar\2.0\ignore</li>
<li>Windows XP/2003: C:\Documents and Settings\your-user-name\ApplicationData\bazaar\2.0\ignore</li>
</ol>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Bazaar or Git? Moving away from Subversion.]]></title>
<link>http://kashfarooq.wordpress.com/2009/09/08/bazaar-or-git-moving-away-from-subversion/</link>
<pubDate>Tue, 08 Sep 2009 18:41:55 +0000</pubDate>
<dc:creator>Kash</dc:creator>
<guid>http://kashfarooq.wordpress.com/2009/09/08/bazaar-or-git-moving-away-from-subversion/</guid>
<description><![CDATA[I&#8217;ve had enough of Subversion and decided to move to Bazaar. Click BZR in the Tag Clould to se]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve had enough of Subversion and decided to move to Bazaar. Click BZR in the Tag Clould to see my series of blog posts to help you do the same. </p>
<p>Do any of these Subversion complaints sound familiar?</p>
<ul>
<li>You are randomly instructed that &#8220;you need to run update&#8221;. You then do an update &#8211; which takes ages to complete. And then, finally, you see that there were no changes that needed to be downloaded.</li>
<li>You are randomly instructed that &#8220;you need to run cleanup&#8221;.</li>
<li>You have huge merge problems. For example, you use ReSharper to rename a class, and some else has updated that class in the meantime. You then see the dreaded tree conflict error (<em>shudder</em>). Or even worse, you rename an entire namespace and folder (<em>double shudder</em>). Now you really are in for a world of pain.</li>
<li>Your merges tend to be more and more manual. You frequently have to use WinMerge because Subversion hasn&#8217;t got a clue.</li>
<li>You are often waiting around for Tortoise to update/check for modifications/anything.</li>
</ul>
<p>I have a subversion repository on my USB pen drive. I get tree conflicts and merge problems with that, and I&#8217;m the only user!</p>
<p>The main problem is merging. Our team has to work on branches as we have different projects running concurrently, working on the same code base. We don&#8217;t know which project will be going live first, or even if the project will be released at all (they may get canned). So, we need an efficient merging process.</p>
<p>Merging has become so problematic that we&#8217;ve considering adding merging as a separate task for each MMF we implement &#8211; that&#8217;s how long it takes nowadays. We&#8217;ve even considered putting a &#8220;Work In Process&#8221; limit on particular pieces of code to make sure two unrelated MMFs don&#8217;t touch the same code.</p>
<p><em>[Can you tell that I am not happy with Subversion?]</em></p>
<p>So, I decided to try something else.</p>
<p>I was going to try Git. I downloaded binaries, documentation and guides. But then I read this article: <a href="http://www.markshuttleworth.com/archives/123">Renaming is the killer app of distributed version control</a>. And I agree, renaming <em>is</em> really, really important. We rename files all the time. We refactor.</p>
<p>Git <em>doesn&#8217;t</em> handle renames as a &#8220;first class operation&#8221; &#8211; renames are just a delete operation followed by an add operation. This is the same as Subversion. I assume Git handles it much better than Subversion, but I wanted a SCM that has it built in.</p>
<p>So, I decided to start using Bazaar: renames <em>are</em> a first class operation in Bazaar, and it also has &#8220;Intelligent Merging&#8221; to cope with your Dev Studio file moves or renames.</p>
<p>For a full feature list of a number of SCM systems see this <a href="http://versioncontrolblog.com/comparison/Bazaar/Git/Mercurial/Subversion/index.html">source control comparison</a> page. </p>
<p>So far, I&#8217;m happy:</p>
<ul>
<li>It runs natively in windows (I didn&#8217;t really want to run a unix-type shell to get Git working).</li>
<li>It is easy to work with from the command line (I thought I&#8217;d miss Dev Studio integration, e.g. VisualSVN and Ankh, but I don&#8217;t).</li>
<li>I even decided not to install TortoiseBZR &#8211; you don&#8217;t need it. [Tortoise is one of the reasons I wanted to move away from Subversion so I didn't want to install the BZR equivalent.]</li>
<li>BZR comes with some GUI applets if you really need your GUIs. For example, there is a useful one for viewing change logs (command: &#8220;bzr qlog&#8221;)</li>
</ul>
<p>To make the move, check out <a href="http://kashfarooq.wordpress.com/2009/09/14/getting-started-with-bazaar-source-control/">getting started with Bazaar source control</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Roll back (Undo) revisions in the repository]]></title>
<link>http://devmanic.wordpress.com/2009/09/04/roll-back-undo-revisions-in-the-repository/</link>
<pubDate>Fri, 04 Sep 2009 23:47:06 +0000</pubDate>
<dc:creator>Drew</dc:creator>
<guid>http://devmanic.wordpress.com/2009/09/04/roll-back-undo-revisions-in-the-repository/</guid>
<description><![CDATA[Quick pointer to a particular TortoiseSVN feature I wasn&#8217;t familiar with for some reason. This]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Quick pointer to a particular TortoiseSVN feature I wasn&#8217;t familiar with for some reason. This enables reverting to a previous revision easily.</p>
<blockquote><p>The easiest way to revert the changes from a single revision, or from a range of revisions, is to use the revision log dialog. This is also the method to use of you want to discard recent changes and make an earlier revision the new HEAD.</p></blockquote>
<p>via <a href="http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-howto-rollback.html">Roll back (Undo) revisions in the repository</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Nossa! Onde faço o Unshelve?]]></title>
<link>http://enterprisebrothers.wordpress.com/2009/09/04/nossa-onde-faco-o-unshelve/</link>
<pubDate>Fri, 04 Sep 2009 22:50:47 +0000</pubDate>
<dc:creator>Ricardo Serradas</dc:creator>
<guid>http://enterprisebrothers.wordpress.com/2009/09/04/nossa-onde-faco-o-unshelve/</guid>
<description><![CDATA[Ultimamente tenho socorrido várias pessoas que vieram me fazer essa pergunta, ainda que para quem já]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ultimamente tenho socorrido várias pessoas que vieram me fazer essa pergunta, ainda que para quem já está familiarizado com a ferramenta isso não seja um problema.</p>
<p>&#8220;Eu fiz o shelve lá conforme você recomendou só que agora não sei como recuperar as modificações do servidor! E agora, já era? As perdi? Como faz?&#8221;</p>
<p>Muita calma nessa hora. A solução é bem simples, porém, o problema é compreensível. O botão &#8220;Unshelve&#8221; está em localizações pouco intuitivas na IDE do Visual Studio 2008. Vamos à elas:</p>
<p>1 &#8211; <strong>Em &#8220;Pending Changes&#8221;</strong>: De um certo modo, concordo que um <em>changeset </em>é composto de modificações pendentes de <em>check-in</em>, mas não são todos que pensam da mesma forma. Para grande maioria, &#8220;<em>Pending Changes</em>&#8221; são <em>check-outs </em><strong>locais</strong><em> </em>pendentes de commit para <strong>versionamento</strong>. Concordo, afinal Shelveset é um conjunto de modificações armazenadas no <strong>Servidor</strong>, mas ainda <strong>não versionadas</strong>.</p>
<p>Mas voltando ao que interessa, o &#8220;<em>Unshelve</em>&#8221; está aqui: <strong><em>View -&#62; Other Windows -&#62; Pending Changes</em></strong>.</p>
<p><img class="aligncenter size-full wp-image-230" title="Localização do botão Unshelve na tela Pending Changes" src="http://enterprisebrothers.wordpress.com/files/2009/09/unshelve.jpg" alt="Localização do botão Unshelve na tela Pending Changes" width="450" height="156" /></p>
<p>2 &#8211; <strong>Ao clicar com o botão direito em qualquer item no solution explorer</strong>. Sim, ali mesmo. Mas desde que você tenha algum projeto aberto. Não vale aquela &#8220;Solution1&#8243; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div id="attachment_231" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-231" title="Unshelve2" src="http://enterprisebrothers.wordpress.com/files/2009/09/unshelve2.jpg" alt="Localização do botão &#34;Unshelve Pending Changes&#34; ao clicar com o botão direito em qualquer item do Solution Explorer." width="450" height="542" /><p class="wp-caption-text">Localização do botão &#34;Unshelve Pending Changes&#34; ao clicar com o botão direito em qualquer item do Solution Explorer.</p></div>
<p>Ah, aproveitando! Galera, vamos dar mais atenção à essa feature do VSTS. Esse tal de Shelve pode ser muito últil para você!</p>
<p>Um abraço,</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Personal Source Control with Google Code &amp; SVN]]></title>
<link>http://relentlessdevelopment.wordpress.com/2009/08/26/personal-source-control-with-google-code-svn/</link>
<pubDate>Wed, 26 Aug 2009 22:50:56 +0000</pubDate>
<dc:creator>relentlessdevelopment</dc:creator>
<guid>http://relentlessdevelopment.wordpress.com/2009/08/26/personal-source-control-with-google-code-svn/</guid>
<description><![CDATA[I&#8217;m reading The Pragmatic Programmer at the moment, and one thing they recommend is to always ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;m reading <a title="The Pragmatic Programmer" href="http://www.pragprog.com/the-pragmatic-programmer" target="_blank">The Pragmatic Programmer</a> at the moment, and one thing they recommend is to always use source control, even for small prototypes and personal projects.  Now I&#8217;ve been using source control at work ever since I started coding, but I&#8217;ve never given serious thought to using it at home &#8211; I only have a single machine for a start.</p>
<p>But that&#8217;s not really an issue these days, as there are a number of Internet hosts that can act as your source control server &#8211; and this gives the additional advantage of being able to access your code wherever you can get on the &#8216;net.  And as well as being a good way of backing things up,  you also get a full revision history, which can be handy when things go pear-shaped!</p>
<p>Now, I don&#8217;t want to spend any actual money on this, but that&#8217;s not a problem as there are many open source options available &#8211; I didn&#8217;t look too hard here as I&#8217;ve already used <a title="Subversion" href="http://subversion.tigris.org/" target="_blank">Subversion</a> (SVN) at a previous job and it has a big following, and is supported by most of the online hosts.  Same with the client, which is the part I had to install on my machine &#8211; <a title="TortoiseSVn" href="http://tortoisesvn.net/" target="_blank">TortoiseSVN</a> integrates with Windows Explorer, is free, easy to use, and has all the functionality you&#8217;d expect.</p>
<div id="attachment_36" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-36" title="Tortoise Screenshot" src="http://relentlessdevelopment.wordpress.com/files/2009/08/tortoisescreenshot.jpg" alt="TortoiseSVN in action" width="600" height="525" /><p class="wp-caption-text">TortoiseSVN in action</p></div>
<p>So the main thing to do was chose a host.  Again, there are many free options &#8211; <a title="SVN Hosting Comparison" href="http://www.svnhostingcomparison.com/" target="_blank">this site</a> has an excellent comparison of the available options, including several free ones.  One of the main things you need to decide is whether you want your code to be open source or not, as several of them only host open source projects.  I&#8217;m happy enough with that, so after a little research online I went for <a title="Google Code Hosting" href="http://code.google.com/hosting/" target="_blank">Google Code</a>, which has a lot of space, unlimited users, and some useful features.  Two minutes to create a Google account, then you can crate a new project by entering a few basic details, and you&#8217;re ready to rock &#38; roll!</p>
<div id="attachment_37" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-37" title="Google Code New Project" src="http://relentlessdevelopment.wordpress.com/files/2009/08/googlecodeproject.jpg" alt="Creating a new project in Google Code" width="600" height="625" /><p class="wp-caption-text">Creating a new project in Google Code</p></div>
<p>Once you&#8217;ve got TortoiseSVN installed and your Google Code project set up, you just need to upload your project &#8211; <a title="Getting Started with Google Code Hosting, Subversion, and TortoiseSVN " href="http://engtech.wordpress.com/2007/03/03/howto_google_code_hosting_subversion_tortoisesvn/" target="_blank">this blog</a> has some useful tips that will get you up and running in a couple of minutes.  And that&#8217;s it!  In less than 10 minutes you can be up and running with a full source control solution, including online administration:</p>
<div id="attachment_38" class="wp-caption aligncenter" style="width: 610px"><img class="size-full wp-image-38" title="Google Code Admin" src="http://relentlessdevelopment.wordpress.com/files/2009/08/google-code-admin.jpg" alt="Google Code administration page" width="600" height="408" /><p class="wp-caption-text">Google Code administration page</p></div>
<p>And if you want to get someone fixing your defects for you, all they need is an SVN client and you&#8217;ve got yourself a development team.  If I&#8217;d known it was that easy, I&#8217;d have done it years ago..</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Old Dog, New Tricks]]></title>
<link>http://codeprole.wordpress.com/2009/08/20/old-dog-new-tricks/</link>
<pubDate>Thu, 20 Aug 2009 23:07:57 +0000</pubDate>
<dc:creator>codeprole</dc:creator>
<guid>http://codeprole.wordpress.com/2009/08/20/old-dog-new-tricks/</guid>
<description><![CDATA[In an effort to dust of my long languishing programming skills I&#8217;ve decided to learn Cocoa pro]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>In an effort to dust of my long languishing programming skills I&#8217;ve decided to learn Cocoa programming on the Mac. Sure, my job uses Java primarily but I mostly understand it, even if I don&#8217;t regularly code Java. Ultimately I&#8217;d like to contribute to an open source project, Adium for example. Contributing to a widely used open source project would be acceptance on a grand scale.</p>
<p>The Adium project uses Mercurial for source control, and I&#8217;ve already started learning it. What I really need is an update XCode / Cocoa tutorial or book. I&#8217;ve got a copy of Vermont Recipes, but it was written for the inital XCode release and too many of the underlying tools have dramatically changed for it to be an effective resource. Fortunately my employer has a Safari account and I can access several Cocoa programming resources there.</p>
<p>In addition to learning Mercurial and XCode / Cocoa, I&#8217;ll need to reintroduce myself to programming. It&#8217;s a discipline I&#8217;ve always enjoyed but one I&#8217;ve lost. The concepts are still here, I just need to brush them off and reapply them.</p>
<p>Ideally I&#8217;ll track my progress here. Hopefully this posting won&#8217;t be the only one on this subject.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Update Master Page Gallery in Publishing site]]></title>
<link>http://jajalc.wordpress.com/2009/08/20/update-master-page-gallery-in-publishing-site/</link>
<pubDate>Thu, 20 Aug 2009 00:48:44 +0000</pubDate>
<dc:creator>Chintan Jajal</dc:creator>
<guid>http://jajalc.wordpress.com/2009/08/20/update-master-page-gallery-in-publishing-site/</guid>
<description><![CDATA[There are times when you have a requirement of only selecting &#8220;Custom Page layouts&#8221; when]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>There are times when you have a requirement of <strong>only </strong>selecting &#8220;Custom Page layouts&#8221; when a user wants to create a new page in Sharepoint Portal site.</p>
<p>I won&#8217;t go in details of how to adding and deploying new custom page layouts using feature,  but you can refer here for it :</p>
<p><a href="http://blogs.msdn.com/syedi/archive/2008/08/01/custom-site-definition-for-collaboration-portal-template-sharepoint-2007-wow-moss.aspx">http://blogs.msdn.com/syedi/archive/2008/08/01/custom-site-definition-for-collaboration-portal-template-sharepoint-2007-wow-moss.aspx</a><br />
<a href="http://spreflections.wordpress.com/2008/09/24/deploy-master-page-and-page-layout-as-a-feature/">http://spreflections.wordpress.com/2008/09/24/deploy-master-page-and-page-layout-as-a-feature/</a></p>
<p>Once you have a added a custom page layout, you don&#8217;t want the user to pick from any sharepoint built-in page layouts.</p>
<p>To achieve that functionality you can mark those layout types to be hidden on the feature activation code. As all the page layouts are item in a list which is source controlled via sharepoint you will need to check out the file and then only update the &#8220;Hidden Page&#8221; attribute.</p>
<p>here is how you can ahcieve it.</p>
<p><code><br />
using (SPWeb web = site.OpenWeb())<br />
                {<br />
                    web.AllowUnsafeUpdates = true;<br />
                    SPList list = web.Lists["Master Page Gallery"];<br />
                    foreach (SPListItem item in list.Items)<br />
                    {<br />
                        //Note that if your page layout's content type needs to be different<br />
                        if (item["Associated Content Type"] != null &#38;&#38; (item["Associated Content Type"].ToString().IndexOf("Article Page") != -1<br />
                            &#124;&#124; item["Associated Content Type"].ToString().IndexOf("Welcome") != -1))<br />
                        {<br />
                            item.File.CheckOut();<br />
                            item["Hidden Page"] = "True";<br />
                            item.Update();<br />
                            item.File.CheckIn("");<br />
                        }<br />
                    }<br />
                    list.Update();<br />
                    web.Update();<br />
                }<br />
</code></p>
<p>now when the feature is activated, user will only be able to see custom page layouts.</p>
<p>Good luck!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[of github origins and removal]]></title>
<link>http://currentricity.wordpress.com/2009/08/15/of-github-origins-and-removal/</link>
<pubDate>Sat, 15 Aug 2009 05:31:22 +0000</pubDate>
<dc:creator>currentricity</dc:creator>
<guid>http://currentricity.wordpress.com/2009/08/15/of-github-origins-and-removal/</guid>
<description><![CDATA[As described in this previous post, I was on my way to glory setting up my own source control. This ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>As described in <a title="gitting it right" href="http://currentricity.wordpress.com/2009/08/15/gitting-things-right/" target="_self">this previous post</a>, I was on my way to glory setting up my own source control.</p>
<p>This post is about setting up github.</p>
<p>The account creation is straight forward though one is also required to give the ssh key (not necessary) . Ample details on the site on how to generate on if you dont have already.</p>
<p>So my folly was of a typo. Somehow I typed git@github instead of git@github.com while adding remote source repo. After that when I tried to push the code I got the following error</p>
<p><em>ssh: github: Name or service not known<br />
fatal: The remote end hung up unexpectedly</em></p>
<p>After a couple of permutation combinations i zeroed down on the cause. Now the simple thing was to remove the origin. Which is easy</p>
<p><em>git remote rm origin</em></p>
<p>Thats it. Good to go. Now one can specify another remote origin and continue as happy users.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Tutorial: cvs server on FreeNAS]]></title>
<link>http://ejesconsulting.wordpress.com/2009/08/04/cvs-server-on-freenas/</link>
<pubDate>Tue, 04 Aug 2009 21:44:04 +0000</pubDate>
<dc:creator>ejes</dc:creator>
<guid>http://ejesconsulting.wordpress.com/2009/08/04/cvs-server-on-freenas/</guid>
<description><![CDATA[First, when I started to research if &#8220;cvs&#8221; would work on my FreeNAS I found a whole lot ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>First, when I started to research if &#8220;cvs&#8221; would work on my FreeNAS I found a whole lot of links to cvsd&#8230; but I recall using cvs over ssh for many many projects.  Couldn&#8217;t I run just cvs over ssh?</p>
<p>Yes You Can!!!  And this makes cvs on FreeNAS easier than ever.  Not much modification is required, and I am very happy to report that I&#8217;ve got mine working very well.</p>
<p>So let&#8217;s get into it shall we?</p>
<p>In order to get cvs working, we need the cvs binary.  FreeNAS is a FreeBSD core underneath the covers.  There are many many releases of FreeBSD so we should find out what release we have.  We can do this by running uname on the command prompt of your FreeNAS.</p>
<p>Mine says:</p>
<pre>nas:/mnt/default# uname -a

FreeBSD nas.ejes.gotdns.org 6.4-RELEASE-p3 FreeBSD 6.4-RELEASE-p3 #0: Sat Apr 18 22:17:59 UTC 2009     root@vmbsd64i386:/usr/obj/freenas/usr/src/sys/FREENAS-i386  i386
nas:/mnt/default#</pre>
<p>Now that I have the release number, I can simply browse the FreeBSD repository at ftp://ftp.freebsd.org (the 6.4 release is <a href="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/6.4-RELEASE/6.4-RELEASE/packages/All/">ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/6.4-RELEASE/6.4-RELEASE/packages/All/</a>), and following the directory tree you can find most any other release.</p>
<p>Simply download the &#8220;cvs&#8221; binary cvs+ipv6-1.11.17_1.tbz (ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/6.4-RELEASE/6.4-RELEASE/packages/All/cvs+ipv6-1.11.17_1.tbz)</p>
<p>I used fetch on my system:</p>
<pre>nas:/mnt/default# fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/6.4-RELEASE/6.4-RELEASE/packages/All/cvs+ipv6-1.11.17_1.tbz cvs+ipv6-1.11.17_1.tbz
                        100% of  442 kB  266 kBps</pre>
<p>Then, in the GUI, I added a group called &#8220;cvs&#8221;, I gave it the group id 2401 because port 2401 was the cvs server port (and I may want to use pserver one day).</p>
<div id="attachment_209" class="wp-caption aligncenter" style="width: 710px"><img class="size-full wp-image-209" title="cvs group" src="http://ejesconsulting.wordpress.com/files/2009/08/cvs-group.png" alt="The Group I used for my cvs" width="700" height="411" /><p class="wp-caption-text">The Group I used for my cvs</p></div>
<div><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, 0;"><span style="line-height:19px;white-space:normal;"> </span></span></div>
<div><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, fantasy;line-height:19px;white-space:normal;font-size:13px;">I added a new user _cvs with the userid of 2401 (for the same reason my group is 2401), his home directory will be my cvs root directory.  add user _cvs (id 2401), his <span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, fantasy;">home directory is where my cvs root will be as well i put mine in /mnt/default/cvs.</span></span></div>
<div><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, fantasy;font-size:small;"><span style="line-height:19px;white-space:normal;"><br />
</span></span></div>
<div><span style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, 0;"><span style="line-height:19px;white-space:normal;font-size:small;"></p>
<div id="attachment_210" class="wp-caption aligncenter" style="width: 710px"><img class="size-full wp-image-210" title="_cvs user" src="http://ejesconsulting.wordpress.com/files/2009/08/cvs-user.png" alt="the user _cvs for myself" width="700" height="411" /><p class="wp-caption-text">the user _cvs for myself</p></div>
<p></span></span></div>
<p>Thankfully a tbz file means a tar bzipped file.  So we can use tar to extract the package from freeBSD i want all my cvs stuff in one place so i&#8217;m going to extract it to my /mnt/default/cvs/tmp directory.</p>
<pre>nas:/mnt/default/cvs/tmp# tar -vxzf cvs+ipv6-1.11.17_1.tbz
x +CONTENTS
x +COMMENT
x +DESC
x +MTREE_DIRS
x man/man1/cvs.1.gz
x man/man5/cvs.5.gz
x man/man8/cvsbug.8.gz
x bin/cvs
x bin/cvsbug
x bin/rcs2log
x share/cvs/contrib/README
x share/cvs/contrib/check_cvs
x share/cvs/contrib/clmerge
x share/cvs/contrib/cln_hist
x share/cvs/contrib/commit_prep
x share/cvs/contrib/cvs2vendor
x share/cvs/contrib/cvs_acls
x share/cvs/contrib/cvscheck
x share/cvs/contrib/cvscheck.man
x share/cvs/contrib/debug_check_log
x share/cvs/contrib/intro.doc
x share/cvs/contrib/log
x share/cvs/contrib/log_accum
x share/cvs/contrib/mfpipe
x share/cvs/contrib/pvcs2rcs
x share/cvs/contrib/rcs-to-cvs
x share/cvs/contrib/rcs2log
x share/cvs/contrib/rcslock
x share/cvs/contrib/sccs2rcs
x info/cvs.info
x info/cvs.info-1
x info/cvs.info-10
x info/cvs.info-2
x info/cvs.info-3
x info/cvs.info-4
x info/cvs.info-5
x info/cvs.info-6
x info/cvs.info-7
x info/cvs.info-8
x info/cvs.info-9
x info/cvsclient.info
x info/cvsclient.info-1
x info/cvsclient.info-2
x info/cvsclient.info-3
nas:/mnt/default/cvs/tmp#</pre>
<div>The only binary we really need in that entire mess is the actual &#8220;cvs&#8221; binary.  Let&#8217;s copy it to /mnt/default/cvs/bin.</div>
<div>Once I&#8217;ve done that, I can symbolically link the cvs binary to a better place in your path, i put it in /bin.  /bin/ln -sf /mnt/default/cvs/bin/cvs /bin/cvs</div>
<div>Since I want this to happen each time after boot, I put it in the System&#124;Advanced&#124;Command scripts section of the FreeNAS GUI.</div>
<div><img class="aligncenter size-full wp-image-212" title="symlink cvs to /bin" src="http://ejesconsulting.wordpress.com/files/2009/08/symlink.png" alt="symlink cvs to /bin" width="700" height="411" /></div>
<div>While I&#8217;m there I should fix the permissions of /tmp so that everyone can write in it.  chmod a+rwx /tmp works nicely.</div>
<div><img class="aligncenter size-full wp-image-213" title="repermission /tmp" src="http://ejesconsulting.wordpress.com/files/2009/08/tmp.png" alt="repermission /tmp" width="700" height="411" /></div>
<div>Don&#8217;t forget to run them post-init (and run it too).</div>
<p>Go back and &#8220;Give full shell access to user.&#8221; to the _cvs user and log-in or &#8220;su _cvs&#8221; to become him.</p>
<p>Now we have to initialize the cvs root directory; mine is /mnt/default/cvs/root.  Run cvs init, and we&#8217;re off.</p>
<pre>nas:/mnt/default/cvs/tmp# su _cvs
%cvs -d ~/root init
%exit
nas:/mnt/default# chown -R _cvs:cvs cvs
nas:/mnt/default#</pre>
<p>Everything should be functional, all we need to do now is add anyone we want to be able to access cvs, to the &#8220;cvs&#8221; group.  I added &#8220;user&#8221; as a test.</p>
<p>On my OpenBSD terminal I setup a simple cvs system</p>
<pre>$ CVS_RSH=ssh cvs -d:ext:_cvs@nas:/mnt/default/cvs/root checkout .</pre>
<p>works! GREAT!!  Add my user to the &#8220;cvs&#8221; group, remove &#8220;shell&#8221; access from _cvs done!</p>
<p>My Remote users have to set these settings:</p>
<p>CVS_RSH=ssh</p>
<p>CVSROOT=:ext:user@host:/mnt/default/cvs/root</p>
<p>CVSEDITOR=nano</p>
<p>Now I can import directories using: cvs import -m &#8220;comment&#8221; module_name committer start</p>
<p>Check them out on another machine using: cvs checkout module_name</p>
<p>Add files or directories: cvs add &#8220;file/directory&#8221;</p>
<p>And Commit my changes once they&#8217;re made: cvs commit</p>
<p>For example:</p>
<pre>nas:/mnt/default# ssh user@192.168.0.2
user@192.168.0.2's password:
Last login: Tue Aug  4 16:46:50 2009 from 192.168.0.3
OpenBSD 4.4 (GENERIC) #1021: Tue Aug 12 17:16:55 MDT 2008
Welcome to OpenBSD: The proactively secure Unix-like operating system.
Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code.  With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
$ CVS_RSH=ssh; export CVS_RSH
$ CVSROOT=:ext:user@192.168.0.3:/mnt/default/cvs/root; export CVSROOT
$ CVSEDITOR=nano;export CVSEDITOR=nano
$ mkdir src
$ cd src
$ mkdir testing
$ cd testing
$ touch a file
$ ls
a    file
$ cvs import -m "testing" test ejes start
user@192.168.0.3's password:
N test/a
N test/file
No conflicts created by this import
$ mkdir new
$ cvs add n
$ touch new/more
$ cd ..
$ ls
testing
$ rm -rf testing/
$ cvs checkout test
user@192.168.0.3's password:
cvs checkout: Updating test
U test/a
U test/file
$ cd test
$ mkdir new
$ touch new/more
$ cvs add new
user@192.168.0.3's password:
? new/more
Directory /mnt/default/cvs/root/test/new added to the repository
$ cvs add new/more
user@192.168.0.3's password:
cvs add: scheduling file `new/more' for addition
cvs add: use 'cvs commit' to add this file permanently
$ cvs commit
cvs commit: Examining .
cvs commit: Examining new
user@192.168.0.3's password:
RCS file: /mnt/default/cvs/root/test/new/more,v
done
Checking in new/more;
/mnt/default/cvs/root/test/new/more,v  &#60;--  more
initial revision: 1.1
done
$</pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Cloud Development]]></title>
<link>http://earlystageit.wordpress.com/2009/07/25/the-early-stage-it-manifesto/</link>
<pubDate>Sun, 26 Jul 2009 01:42:24 +0000</pubDate>
<dc:creator>J</dc:creator>
<guid>http://earlystageit.wordpress.com/2009/07/25/the-early-stage-it-manifesto/</guid>
<description><![CDATA[What are some of the hurdles we have encountered with Cloud Development? What mechanisms have we use]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>What are some of the hurdles we have encountered with Cloud Development? What mechanisms have we used to overcome them? The problems posed by the different cloud platforms are different. I will be writing on this topic in a series blog posts. I expect to blog on these topics. If you know of others, please let me know. These list items will get hyperlinked over time.</p>
<ol>
<li>Cloud Development for Google App Engine</li>
<li>Cloud Development for Amazon EC2</li>
<li>Managing software delivery from outsourcers</li>
<li>Managing evolution of database configurations</li>
<li><a href="http://blog.quantitecture.com/2009/02/26/trends-in-load-and-performance-testing/" target="_blank">Performance and Stress Testing</a></li>
<li>Security Testing</li>
</ol>
<p>In this introductory post, I want to cover activities that cross all platforms. The premise of Cloud Development is that the company does not own any hardware. Under these circumstances, how does software development get done?<!--more--></p>
<p><em>Tight control over source code is essential.</em><em> </em>This need does not go away with Cloud Computing. It becomes more important! It used to be that if you lost track of the latest source, you could always look at the working machine. No longer, not consistently anyway. In the<a href="http://groups.google.com/group/google-appengine?hl=en&#38;pli=1" target="_blank"> Google App Engine support forum</a>, there is a predictable weekly request from someone or the other for Google to help them retrieve their latest source code. The answer is always the same (no, can&#8217;t be done).  The team needs to use the source repository frequently to build from.  The source repository should be backed up, versioned and secure. What should be under source control? <em>Everything! </em>That includes<span style="text-decoration:underline;"> source code</span> (duh!), <span style="text-decoration:underline;">install scripts</span> (Rightscale scripts, for example, for creating an environment), <span style="text-decoration:underline;">security settings</span>,  even <span style="text-decoration:underline;">database configurations</span>. This last item will require further discussion; more on it in a subsequent post.</p>
<p><em>The issue tracking database</em> is the team&#8217;s second most important asset, after source code. It too needs to be backed up, versioned and secure<sup>†</sup>.</p>
<hr /><sup>†</sup> Here are a couple of recommendations to &#8220;rent&#8221; source code management and issue tracking software from:  <a href="http://www.dynamsoft.com/index.aspx" target="_blank">DynamSoft</a> and <a href="https://www.projectlocker.com/" target="_blank">ProjectLocker</a>. We use the former in our practice but both come well recommended.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[What&rsquo;s wrong with this sequence? A message to the VSTS guys:]]></title>
<link>http://codingforfunandprofit.uglybugger.org/2009/07/16/whats-wrong-with-this-sequence-a-message-to-the-vsts-guys/</link>
<pubDate>Thu, 16 Jul 2009 08:38:28 +0000</pubDate>
<dc:creator>uglybugger</dc:creator>
<guid>http://codingforfunandprofit.uglybugger.org/2009/07/16/whats-wrong-with-this-sequence-a-message-to-the-vsts-guys/</guid>
<description><![CDATA[Stupid Question #1: What actually constitutes a conflict? Is a conflict when two people have changed]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h4>Stupid Question #1: What actually constitutes a conflict?</h4>
<p>Is a conflict when two people have changed a file, or is it when two people have changed the same <em>part</em> of a file and VSTS needs assistance to resolve it? Every other (sane) version control system in the world interprets a conflict as the latter.</p>
<p><a href="http://codingforfunandprofit.files.wordpress.com/2009/07/image.png"><img style="display:inline;border-width:0;" title="image" src="http://codingforfunandprofit.files.wordpress.com/2009/07/image_thumb.png?w=501&#038;h=309" border="0" alt="image" width="501" height="309" /></a></p>
<h4>Stupid Question #2: How is it “Auto Merge” when I have to <em>tell</em> VSTS to merge?</h4>
<p><a href="http://codingforfunandprofit.files.wordpress.com/2009/07/image1.png"><img style="display:inline;border-width:0;" title="image" src="http://codingforfunandprofit.files.wordpress.com/2009/07/image_thumb1.png?w=508&#038;h=316" border="0" alt="image" width="508" height="316" /></a></p>
<h4>Stupid Question #3: If VSTS could not-quite-auto-but-with-the-press-of-a-button merge, and it managed to resolve everything all by itself, <strong><em>why on earth does it pester me about non-existent conflicts all the time?!?!?</em></strong></h4>
<p><a href="http://codingforfunandprofit.files.wordpress.com/2009/07/image2.png"><img style="display:inline;border-width:0;" title="image" src="http://codingforfunandprofit.files.wordpress.com/2009/07/image_thumb2.png?w=508&#038;h=307" border="0" alt="image" width="508" height="307" /></a></p>
<p>Perhaps these questions are stupid, but I most respectfully submit that the answers are stupider.</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
