<?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>Thinking in G &#187; Source Code Control</title>
	<atom:link href="http://thinkinging.com/category/source-code-control/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkinging.com</link>
	<description>an unfiltered stream of data flow consciousness</description>
	<lastBuildDate>Fri, 02 Oct 2009 23:51:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>An easier way to use TortoiseSVN with LabVIEW</title>
		<link>http://thinkinging.com/2009/06/05/an-easier-way-to-use-tortoisesvn-with-labview/</link>
		<comments>http://thinkinging.com/2009/06/05/an-easier-way-to-use-tortoisesvn-with-labview/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 19:12:14 +0000</pubDate>
		<dc:creator>Jim Kring</dc:creator>
				<category><![CDATA[JKI]]></category>
		<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Source Code Control]]></category>
		<category><![CDATA[TortoiseSVN]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://thinkinging.com/?p=740</guid>
		<description><![CDATA[I&#8217;m excited to tell everyone that the JKI Team has been hard at work on (and just announced) a tool to make using TortoiseSVN easier to use in your LabVIEW projects.  It&#8217;s called the JKI TortoiseSVN Tool for LabVIEW and allows you to use TortoiseSVN from directly within your LabVIEW projects and VIs, without having [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m excited to tell everyone that the JKI Team has been hard at work on (and <a href="http://blog.jkisoft.com/news/announcing-the-new-jki-tortoisesvn-tool-for-labview/">just announced</a>) a tool to make using TortoiseSVN easier to use in your LabVIEW projects.  It&#8217;s called the <a href="http://jkisoft.com/tortoisesvn-tool/">JKI TortoiseSVN Tool for LabVIEW</a> and allows you to use TortoiseSVN from directly within your LabVIEW projects and VIs, without having to find VIs on disk in Windows Explorer.</p>
<p>For more information, check out the <a href="http://blog.jkisoft.com/news/announcing-the-new-jki-tortoisesvn-tool-for-labview/">official announcement on the JKI Software Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkinging.com/2009/06/05/an-easier-way-to-use-tortoisesvn-with-labview/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>When to commit changed VIs caused by type definition changes</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/</link>
		<comments>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 08:03:40 +0000</pubDate>
		<dc:creator>Jim Kring</dc:creator>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Source Code Control]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://thinkinging.com/?p=696</guid>
		<description><![CDATA[In LabVIEW, whenever you change a TypeDef (type definition) any VIs that use the TypeDef will require recompiling and need to be saved.  This presents a problem for developers working on a large project with other developers who might be working on code that &#8220;feels&#8221; the effects of the changed TypeDef.
So, how do you deal [...]]]></description>
			<content:encoded><![CDATA[<p>In LabVIEW, <strong>whenever you change a TypeDef (type definition) any VIs that use the TypeDef will require recompiling and need to be saved</strong>.  This presents a problem for developers working on a large project with other developers who might be working on code that &#8220;feels&#8221; the effects of the changed TypeDef.</p>
<p>So, <strong>how do you deal with all the unsaved VIs in your project</strong> that are not in an area that you &#8220;own&#8221;?  If you don&#8217;t save them, then LabVIEW will keep bugging you to save the VIs.  And, sometimes your LabVIEW code will even run slower until you save all your VIs.  But, if you do save these VIs, then it&#8217;s hard to tell which VIs that you&#8217;ve saved have &#8220;real&#8221; changes and not just recompile changes.  And, if you commit all the changed VIs, then you might increase the likelihood of creating a conflict with other developers.</p>
<p>Here&#8217;s a good process you can follow to deal with this issue:</p>
<ol>
<li>First, <strong>commit your real changes</strong>, separate from the recompile changes.  This will give you a specific svn revision (changeset) associated with your real changes.</li>
<li>Then, <strong>save all the recompiled VIs and commit them</strong>.  For your commit log message, use &#8220;Recompiled due to typedef changes&#8221; (or similar).  This will indicate to other developers that the changes can be ignored, in the event that this revision conflicts with their own changes.</li>
<li>Finally, <strong>Alert your team</strong> that you have committed a recompile of code (with no real changes).  They can then easily resolve any conflicts, because they know that the commit contains no real changes.</li>
</ol>
<p>Now, if you know that other team members are actively working on the code and you don&#8217;t want to inconvenience them with having to deal with conflicts, you can defer the recompile until a later time or schedule a time for the recompile with your team.</p>
<p>Note: Even if you use a locking system (such as svn locks or a check-in/check-out SCC model) where files for which you don&#8217;t have the lock are read-only, you will still have the slow-down issue and will periodically want to do save all to recompile.</p>
<p>Have you had this issue?  What solution or process do you use?</p>
]]></content:encoded>
			<wfw:commentRss>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Set the revision of your svn:externals (or else!)</title>
		<link>http://thinkinging.com/2008/10/21/set-the-revision-of-your-svnexternals-or-else/</link>
		<comments>http://thinkinging.com/2008/10/21/set-the-revision-of-your-svnexternals-or-else/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 06:39:59 +0000</pubDate>
		<dc:creator>Jim Kring</dc:creator>
				<category><![CDATA[Developer Tools]]></category>
		<category><![CDATA[Source Code Control]]></category>
		<category><![CDATA[TortoiseSVN]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://thinkinging.com/?p=633</guid>
		<description><![CDATA[There is a very cool Subversion feature called svn:externals (or External Definitions), which is a very powerful feature that allows several projects to reuse common code.  However, this can be a very dangerous feature, if you&#8217;re not careful&#8230; but we&#8217;ll get to that.
The svn:externals  feature allows you to create a working copy consisting of [...]]]></description>
			<content:encoded><![CDATA[<p>There is a very cool <a href="http://subversion.tigris.org/">Subversion</a> feature called <strong>svn:externals</strong> (or <a href="http://svnbook.red-bean.com/en/1.4/svn.advanced.externals.html">External Definitions</a>), which is a very powerful feature that allows several projects to reuse common code.  However, <strong>this can be a very dangerous feature, if you&#8217;re not careful</strong>&#8230; but we&#8217;ll get to that.</p>
<p>The svn:externals  feature allows you to create a working copy consisting of multiple working copies from several repositories (or several locations within the same repository).  Basically, it allows you to create something like a &#8220;<a href="http://en.wikipedia.org/wiki/Symbolic_link">symbolic link</a>&#8221; (or &#8220;shortcut&#8221; in Windows).  The end result is that a sub-folder in your working copy is actually in a different repository (or repository location) than it&#8217;s parent folder &#8212; you&#8217;ve effectively &#8220;mounted&#8221; a different repository location as the sub-folder in your working copy.</p>
<p>The way that you do this is to set the &#8220;svn:externals&#8221; property in the parent folder.  This tells the Subversion client (such as <a href="http://tortoisesvn.tigris.org/">TortoiseSVN</a>) to treat the sub-folder as part of the working copy.</p>
<p>This is a very powerful feature that allows several projects to reuse common code.  That sounds great, <strong>but there&#8217;s a big problem</strong>:</p>
<blockquote><p>When you create a tag in subversion (such as when you create a release of your product), you&#8217;re not tagging the svn:externals repository &#8212; you&#8217;re tagging your working copy, which <em>references </em>the svn:externals repository.</p></blockquote>
<p>So, if your svn:externals property does not specify the revision of the svn:externals repository, it will always float to the latest version when you do an update, including when you checkout or do updates on working copies of tags!  In other words:</p>
<blockquote><p>If you do a checkout of a tag, any svn:external sub-folders (without revision information) will update to the latest revision and not the latest revision at the time you created the tag!  This means that <strong>you probably don&#8217;t have an exact copy of the code that you tagged</strong>.</p></blockquote>
<p>The solution is to <strong>explicitly set the revision of the svn:externals property</strong>.  For example, instead of setting the property as the following:</p>
<blockquote><p>toolkit http://svn.red-bean.com/repos/skin-maker</p></blockquote>
<p>We should explicitly set the revision, like the following (note the &#8220;-r 21&#8243; argument):</p>
<blockquote><p>toolkit -r 21 http://svn.red-bean.com/repos/skin-maker</p></blockquote>
<p>Allowing an svn:external to float to the latest revision may be is desirable for working in the trunk (when we&#8217;re working towards a release), however this is certainly not desirable in a tag (when we want a permanent record of what we released).  There is really only one correct way to address this issue (that I can think of):</p>
<blockquote><p>Make sure that your trunk specifies the revision of svn:externals before you create a tag.  You can always unset the svn:externals revision in the trunk, after you create the tag.</p></blockquote>
<p>Now, you might want to let svn:externals float to the latest revision when you&#8217;re doing development on the trunk, but this requires that you are diligent about setting the revision of svn:externals, before you create your tag.  This is manual work (unless you have a script that does it for you) and might not get done by lazy developers (and <strong>we&#8217;re all a little lazy, aren&#8217;t we?</strong>).</p>
<p><strong>How do we fix this problem</strong>, if we&#8217;ve have already created a tag that doesn&#8217;t specify svn:externals revisions?  Easy: you can go into the tag and look at the log to determine the svn:externals revision at the time the tag was created.  Then, set the svn:externals revision in the tag.  However, this is considered &#8220;cheating&#8221;, since you&#8217;re not really supposed to commit changes to tags &#8212; that&#8217;s what branches are for.  However, it&#8217;s a necessary fix for a bad tag.</p>
<p>On a side note, I wonder why TortoiseSVN or the command-line svn client don&#8217;t have a feature to automatically set the revisions of svn:externals during a tag operation &#8212; and, at least they could warn you if you try to create a tag that has svn:externals that don&#8217;t have revisions set.</p>
<div style="border: 1pt solid windowtext; padding: 1pt 4pt; text-align: left">
<p style="border: medium none ; padding: 0in"><strong><em>Using Subversion in LabVIEW?</em></strong> The <a href="http://jkisoft.com/tortoisesvn-tool/">JKI TortoiseSVN Tool for LabVIEW</a> makes it easy by letting you use TortoiseSVN from inside your LabVIEW Projects and VIs.</p>
<p style="border: medium none ; padding: 0in"><strong><em>Subversion and LabVIEW in the Enterprise </em></strong>: If your organization uses LabVIEW and you would like help deploying Subversion in your organization, consider hiring JKI to help get you started.  You can <a title="Contact JKI" href="http://www.jameskring.com/index.php?page=contact">contact us via our website</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://thinkinging.com/2008/10/21/set-the-revision-of-your-svnexternals-or-else/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Removing .svn folders from a working copy with TortoiseSVN</title>
		<link>http://thinkinging.com/2008/09/23/removing-svn-folders-from-a-working-copy-with-tortoisesvn/</link>
		<comments>http://thinkinging.com/2008/09/23/removing-svn-folders-from-a-working-copy-with-tortoisesvn/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 08:00:48 +0000</pubDate>
		<dc:creator>Jim Kring</dc:creator>
				<category><![CDATA[Source Code Control]]></category>
		<category><![CDATA[TortoiseSVN]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://thinkinging.com/?p=559</guid>
		<description><![CDATA[On  Stefan&#8217;s blog on TortoiseSVN, he describes a trick that can be used to &#8220;unversion&#8221; an svn working copy &#8212; basically, how to remove all the .svn folders from a working copy.  This is something that I do, periodically, so it&#8217;s nice to learn a new shortcut &#8212; and, I love shortcuts.
I figured that [...]]]></description>
			<content:encoded><![CDATA[<p>On  <a href="http://tortoisesvn.net/blog/3">Stefan&#8217;s blog</a> on TortoiseSVN, he describes a trick that can be used to <a href="http://tortoisesvn.net/node/343">&#8220;unversion&#8221; an svn working copy</a> &#8212; basically, how to remove all the .svn folders from a working copy.  This is something that I do, periodically, so it&#8217;s nice to learn a new shortcut &#8212; and, <em>I love shortcuts</em>.</p>
<p>I figured that I would re-present the information here, for LabVIEW users, but try to simplify the instructions, a little bit.</p>
<p>To do this trick, you basically <strong>export</strong> the working copy onto itself &#8212; meaning, you <strong>choose the working copy&#8217;s location as your checkout destination</strong> (so that the export source and destination are the same).  TortoiseSVN is smart about this and realizes what your trying to do, and it simply <strong>removes all the .svn folders from your working copy</strong>.</p>
<p>You can do this trick, one of two ways:</p>
<p>Method 1) Right click on your working copy and choose <em>TortoiseSVN&gt;&gt;Export</em>.  In the resulting file dialog, browse to the working copy folder, select it, and choose OK.</p>
<p>Method 2) You can use the <a rel="bookmark" href="../2007/04/03/tortoisesvn-right-click-drag-and-drop/">TortoiseSVN Right-Click Drag and Drop</a> feature, using the technique shown in the screenshot below.  First, make sure to select &#8220;Folders&#8221; to view the explorer tree.  Second, use the File Explorer tree to select the working copy&#8217;s parent folder in the tree (Folders area to the left), so that the working copy folder is visible in tree and in the file list (area on the right).  Third, right-click drag &amp; drop your working copy from the file list (on the right) onto itself in the tree (on the left).  Then, when the pop-up list of choices appears choose &#8220;SVN Export versioned items here&#8221;.</p>
<p><img class="aligncenter size-full wp-image-572" title="export-onto-self" src="http://thinkinging.com/wp-content/uploads/2008/09/export-onto-self.png" alt="" width="500" height="321" /></p>
<p>Method 1 is a little bit harder, IMO, since the file dialog is one of those awful Browse for Folder (explorer) dialogs (which I don&#8217;t like), instead of a standard File Dialog that you can use to paste in a path (which I prefer).  But, Method 2 is trickier to understand, but hopefully the annotated screenshot, above, helps.</p>
<p>Do you know any other useful TortoiseSVN tips?  Please leave a comment and share them.</p>
<div style="border: 1pt solid windowtext; padding: 1pt 4pt; text-align: left">
<p style="border: medium none ; padding: 0in"><strong><em>Using Subversion in LabVIEW?</em></strong> The <a href="http://jkisoft.com/tortoisesvn-tool/">JKI TortoiseSVN Tool for LabVIEW</a> makes it easy by letting you use TortoiseSVN from inside your LabVIEW Projects and VIs.</p>
<p style="border: medium none ; padding: 0in"><strong><em>Subversion and LabVIEW in the Enterprise </em></strong>: If your organization uses LabVIEW and you would like help deploying Subversion in your organization, consider hiring JKI to help get you started.  You can <a title="Contact JKI" href="http://www.jameskring.com/index.php?page=contact">contact us via our website</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://thinkinging.com/2008/09/23/removing-svn-folders-from-a-working-copy-with-tortoisesvn/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>What&#8217;s that .lvlps file next to my LabVIEW 8.6 project?</title>
		<link>http://thinkinging.com/2008/09/09/whats-that-lvlps-file-next-to-my-labview-86-project/</link>
		<comments>http://thinkinging.com/2008/09/09/whats-that-lvlps-file-next-to-my-labview-86-project/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 08:00:39 +0000</pubDate>
		<dc:creator>Jim Kring</dc:creator>
				<category><![CDATA[LabVIEW]]></category>
		<category><![CDATA[LabVIEW Tips]]></category>
		<category><![CDATA[Source Code Control]]></category>

		<guid isPermaLink="false">http://thinkinging.com/?p=380</guid>
		<description><![CDATA[I&#8217;m lucky enough to have a new project that will be developed in LabVIEW 8.6, so I get to use various new features (like Darren&#8217;s awesome Quick Drop tool).
When jumping head first into a new LabVIEW version there are bound to be some unknowns.  In my case, I noticed that, after saving my project (.lvproj) [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m lucky enough to have a new project that will be developed in LabVIEW 8.6, so I get to use various new features (like Darren&#8217;s awesome <a href="http://thinkinging.com/2008/08/26/labview-86-quick-drop-is-awesome-and-an-unfair-advantage/">Quick Drop</a> tool).</p>
<p>When jumping head first into a new LabVIEW version there are bound to be some unknowns.  In my case, I noticed that, after saving my project (.lvproj) file, an .lvlps file showed up in my project folder (right next to the .lvproj file).</p>
<p><div id="attachment_423" class="wp-caption aligncenter" style="width: 113px"><img class="size-medium wp-image-423" title="myproject" src="http://thinkinging.com/wp-content/uploads/2008/08/myproject.png" alt="" width="103" height="38" /><p class="wp-caption-text">What&#39;s that new .lvlps file?</p></div></p>
<p>So, I opened up the .lvlps file in a text editor and saw that it contained the following:</p>
<blockquote><p>[ProjectWindow_Data]<br />
ProjectExplorer.ClassicPosition[String] = &#8220;59,221,459,571&#8243;</p></blockquote>
<p>It appeared to store some window settings for my project.</p>
<p>Figuring there&#8217;s probably something in the LabVIEW help about this file, I search the LabVIEW help for &#8220;lvlps&#8221; and found the <a href="http://zone.ni.com/reference/en-XX/help/371361E-01/lvhowto/lv_file_extensions/">&#8220;LabVIEW File Extensions&#8221; help page</a>.</p>
<blockquote><p><strong>.lvlps</strong></p>
<p>File that stores project settings that are specific to the local machine. You should not check .lvlps files into source control because .lvlps files contain settings specific to the computer you are using; for example, .lvlps files contain the local source code control configuration. LabVIEW saves .lvlps files when you save a project, and correctly renames the file when you rename a project. You can remove or delete .lvlps files without affecting the performance or behavior of a project because .lvlps files only contain project settings specific to the local machine. If you build an application, LabVIEW does not copy the .lvlps file into the built application.</p></blockquote>
<p><strong>Conclusion:</strong> OK, the .lvlps file contains my <strong>L</strong>abVIEW <strong>L</strong>ocal <strong>P</strong>roject <strong>S</strong>ettings.  So, I don&#8217;t want to check it into Source Code Control, because each developer working on the project will probably have different settings and they aren&#8217;t really important enough to do change control.</p>
<p><em>Note: I kind of like how Apple Xcode project files (actually they are &#8220;package&#8221; folders &#8212; they just look like files, in the Finder) work.  Your local Xcode project settings (like window positions) are stored in files that include the user&#8217;s name, so that you can, if you want, save them in source code control without developers overwriting each others&#8217; settings.  But, since Windows doesn&#8217;t really have a feature like &#8220;packages&#8221; (and LabVIEW needs to be multi-platform), I guess we&#8217;ll have to keep doing things the hard way.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://thinkinging.com/2008/09/09/whats-that-lvlps-file-next-to-my-labview-86-project/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Using Beyond Compare as your TortoiseSVN Diff Program for ZIP Archives</title>
		<link>http://thinkinging.com/2007/08/22/using-beyond-compare-as-your-tortoisesvn-diff-program-for-zip-archives/</link>
		<comments>http://thinkinging.com/2007/08/22/using-beyond-compare-as-your-tortoisesvn-diff-program-for-zip-archives/#comments</comments>
		<pubDate>Wed, 22 Aug 2007 07:10:17 +0000</pubDate>
		<dc:creator>Jim Kring</dc:creator>
				<category><![CDATA[Developer Tools]]></category>
		<category><![CDATA[Source Code Control]]></category>
		<category><![CDATA[TortoiseSVN]]></category>

		<guid isPermaLink="false">http://thinkinging.com/2007/08/20/using-beyond-compare-as-your-tortoisesvn-diff-program-for-zip-archives/</guid>
		<description><![CDATA[One of the beautiful things about source code control is having the ability to compare the differences between a file that you&#8217;ve modified and the same file before the modifications.  If you&#8217;re already using TortoiseSVN then you probably know that it has built-in support for comparing the differences of text files.  But, did [...]]]></description>
			<content:encoded><![CDATA[<p>One of the beautiful things about source code control is having the ability to <strong>compare the differences between a file that you&#8217;ve modified and the same file before the modifications</strong>.  If you&#8217;re already using <a title="TortoiseSVN homepage" href="http://tortoisesvn.net/">TortoiseSVN</a> then you probably know that it has built-in support for comparing the differences of text files.  But, did you know that <strong>you can configure TortoiseSVN to use other differencing programs</strong> depending on the file type (extension)?</p>
<p>And, did you know that there is a great tool called <a title="Beyond Compare homepage" href="http://www.scootersoftware.com/">Beyond Compare</a> that (among many other things) can <strong>compare the differences between ZIP files</strong>?  Beyond Compare can look inside of ZIP archives as if they were real folders on your hard disk, allowing you to <strong>see the differences of files <em>inside</em> the ZIP archive</strong>.</p>
<p>To see this in action, let&#8217;s configure TortoiseSVN to use Beyond Compare as the Diff tool for *.zip file types.  It&#8217;s really easy.  First, launch the TortoiseSVN Settings dialog (shown below) by right-clicking on a file or folder and choosing <em>TortoiseSVN&gt;&gt;Settings</em>.  On the <em>Diff Viewer</em> page [1], press the <span style="font-style: italic">Advanced</span> button [2] to open the <span style="font-style: italic">Advanced diff settings</span> dialog.  Then press the <span style="font-style: italic">Add</span> button [3] and enter &#8220;.zip&#8221; as the <span style="font-style: italic">Extension</span> and the path to Beyond Compare (BC2.exe) as the <span style="font-style: italic">External Program</span> [4].</p>
<p><img id="image238" src="http://thinkinging.com/wp-content/uploads/2007/08/Beyond%20Compare%20-%20ZIP.png" alt="Beyond Compare - ZIP.png" /></p>
<p>Now, let&#8217;s show the differences of a modified ZIP archive (&#8220;My Archive.zip&#8221;, in this case) that is in a TortoiseSVN working copy.  Note that Beyond Compare is launched and we can not only see what has changed in our zip file, <strong>we can actually compare the differences of the individual files <em>inside</em> the ZIP file</strong> (as shown below).</p>
<p><img id="image239" src="http://thinkinging.com/wp-content/uploads/2007/08/Archive%20in%20Beyond%20Compare.png" alt="Archive in Beyond Compare.png" /></p>
<p>Note that many other source code control tools (besides TortoiseSVN) allow you to specify external applications for comparing differences of specific file types.  Check with your source code control tool&#8217;s documentation for more details.</p>
<p>And finally, if you&#8217;re not using <a title="Beyond Compare homepage" href="http://www.scootersoftware.com/">Beyond Compare</a>, you should definitely take it for a test drive &#8212; it&#8217;s got a lot of great features <img src='http://thinkinging.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div style="border: 1pt solid windowtext; padding: 1pt 4pt; text-align: left">
<p style="border: medium none ; padding: 0in"><strong><em>Using Subversion in LabVIEW?</em></strong> The <a href="http://jkisoft.com/tortoisesvn-tool/">JKI TortoiseSVN Tool for LabVIEW</a> makes it easy by letting you use TortoiseSVN from inside your LabVIEW Projects and VIs.</p>
<p style="border: medium none ; padding: 0in"><strong><em>Subversion and LabVIEW in the Enterprise </em></strong>: If your organization uses LabVIEW and you would like help deploying Subversion in your organization, consider hiring JKI to help get you started.  You can <a title="Contact JKI" href="http://www.jameskring.com/index.php?page=contact">contact us via our website</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://thinkinging.com/2007/08/22/using-beyond-compare-as-your-tortoisesvn-diff-program-for-zip-archives/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Top 5 bad excuses for not using source code control</title>
		<link>http://thinkinging.com/2007/06/17/top-5-bad-excuses-for-not-using-source-code-control/</link>
		<comments>http://thinkinging.com/2007/06/17/top-5-bad-excuses-for-not-using-source-code-control/#comments</comments>
		<pubDate>Sun, 17 Jun 2007 09:00:07 +0000</pubDate>
		<dc:creator>Jim Kring</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Source Code Control]]></category>
		<category><![CDATA[TortoiseSVN]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://thinkinging.com/2007/06/17/top-5-bad-excuses-for-not-using-source-code-control/</guid>
		<description><![CDATA[Source code control tools are important for anyone working on projects with files stored on computers, especially software developers.  They help you to have a record of every version of every file in your project, and make those files available to multiple developers working in a distributed environment.  Many people have excuses for [...]]]></description>
			<content:encoded><![CDATA[<p><img title="apples and oranges" src="http://farm1.static.flickr.com/110/288925731_b025652e66_t.jpg" alt="apples and oranges" align="right" />Source code control tools are important for anyone working on projects with files stored on computers, especially software developers.  They help you to have a record of every version of every file in your project, and make those files available to multiple developers working in a distributed environment.  Many people have excuses for not using source code control tools, but with so many great and free tools available, these excuses are simply unfounded in reality.</p>
<p>Here is a short list of <strong>the top 5 bad excuses for not using source code control</strong> (and the reality behind why these excuses shouldn&#8217;t be holding you back):</p>
<p><em><strong>1) I&#8217;m just one person, so I don&#8217;t need source code control.</strong></em></p>
<blockquote><p>Reality: Single developers make mistakes all the time.  And, they can easily benefit from being able to restore from any revision of their sources and to see a descriptive log of changes.  Also, source control tools make development on more than one computer easy (consider your office computer, laptop, and those few lab computers).</p></blockquote>
<p><em><strong>2) Source code control tools are expensive and I can&#8217;t afford </strong></em><em><strong>them.</strong></em></p>
<blockquote><p>Reality: There are great free tools.  For example, <a title="subversion" href="http://thinkinging.com/subversion.tigris.org">subversion</a> (and the <a title="TortoiseSVN" href="http://thinkinging.com/tortoisesvn.tigris.org">TortoiseSVN</a> client), <a title="CVS" href="http://thinkinging.com/www.nongnu.org/cvs/">CVS</a> (and the <a title="TortoiseCVS" href="http://thinkinging.com/www.tortoisecvs.org">TortoiseCVS</a> client) are free.  Also, <a title="Perforce" href="http://thinkinging.com/www.perforce.com">Perforce</a>, a commercial product, has a free version that limits the number of user accounts.</p></blockquote>
<p><em><strong>3) I don&#8217;t have a server computer or any IT support (or desire to have them support me).</strong></em></p>
<blockquote><p>Reality: With TortoiseSVN (and others) you can <a title=" Creating a local Subversion repository with TortoiseSVN" href="http://thinkinging.com/2007/04/12/creating-a-local-subversion-repository-with-tortoisesvn/">create a &#8220;local repository&#8221;</a> on your hard drive, so you don&#8217;t even need a server.  Give it a try &#8212; it&#8217;s easy.</p></blockquote>
<p><em><strong>4) I already have a simple folder backup/archiving scheme in place.</strong></em></p>
<blockquote><p>Reality: Once you start using a version control tool you will realize that it basically does exactly what your folder archiving scheme does, but also does a lot more and a better job of it. Your folder backup scheme is prone to human error.  And, trying to figure out differences between versions is pretty complicated, too.  Also, how do you backup your folder backups/archive?  With a source code control system you have a single central repository that can be backed up. <em>(Note: if you are committed to using a folder backup scheme you should definitely take a look at <a title="Beyond Compare" href="http://www.scootersoftware.com">Beyond Compare</a> for comparing folders and files.)</em></p></blockquote>
<p><span style="font-style: italic; font-weight: bold">5) I don&#8217;t understand the concepts of source code control.</span></p>
<blockquote><p>Reality: Learning these concepts is important.  You&#8217;re already doing these activities, you just don&#8217;t realize it and your probably not doing a great job at it.  If you&#8217;d like to learn more about the concepts of source code control, then you should definitely read Eric Sink&#8217;s<a href="http://www.ericsink.com/scm/"> Source Control HOWTO</a>.</p>
<p>Also, TortoiseSVN is easy to use &#8212; it integrates directly into Windows Explorer. You simply right-click on your files/folders to perform operations. And, your files/folders icons change to reflect their state in the source code control system (modified, not under version control, etc.).</p></blockquote>
<p><em><a title="apples and oranges photo" href="http://www.flickr.com/photos/mukluk/288925731/">Apples and oranges photo</a> courtesy of <a title="Dano" href="http://www.flickr.com/photos/mukluk/">Dano</a>.<br />
</em></p>
<div style="border: 1pt solid windowtext; padding: 1pt 4pt; text-align: left">
<p style="border: medium none ; padding: 0in"><strong><em>Using Subversion in LabVIEW?</em></strong> The <a href="http://jkisoft.com/tortoisesvn-tool/">JKI TortoiseSVN Tool for LabVIEW</a> makes it easy by letting you use TortoiseSVN from inside your LabVIEW Projects and VIs.</p>
<p style="border: medium none ; padding: 0in"><strong><em>Subversion and LabVIEW in the Enterprise </em></strong>: If your organization uses LabVIEW and you would like help deploying Subversion in your organization, consider hiring JKI to help get you started.  You can <a title="Contact JKI" href="http://www.jameskring.com/index.php?page=contact">contact us via our website</a>.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://thinkinging.com/2007/06/17/top-5-bad-excuses-for-not-using-source-code-control/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
