<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: When to commit changed VIs caused by type definition changes</title>
	<atom:link href="http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/</link>
	<description>an unfiltered stream of data flow consciousness</description>
	<lastBuildDate>Wed, 11 Aug 2010 09:38:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25339</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Thu, 20 Nov 2008 21:14:19 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25339</guid>
		<description>Rob: Thanks for sharing you perspective and experience on this.  It&#039;s nice to know that we&#039;re all converging on a similar process.  Hopefully NI can help improve LabVIEW to make this sort of workflow easier.</description>
		<content:encoded><![CDATA[<p>Rob: Thanks for sharing you perspective and experience on this.  It&#8217;s nice to know that we&#8217;re all converging on a similar process.  Hopefully NI can help improve LabVIEW to make this sort of workflow easier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob Calhoun</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25338</link>
		<dc:creator>Rob Calhoun</dc:creator>
		<pubDate>Thu, 20 Nov 2008 19:59:07 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25338</guid>
		<description>The recompile only changes are indeed a pain when using source-code control. It would be nice if LabView had better tools for identifying the difference between real &quot;source code&quot; (fp/block diagram) changes and &quot;object code&quot; changes. 

We follow pretty much what Jim suggests: first we start with a clean working copy. Then we edit the typedef, preferably with everything in memory because LabView seems less prone to making substitution errors that way. Save and close it. Then we fix all the broken VIs, saving each as we go. Then we commit all of the saved routines together---these are all real changes and get a real commit message. Then we save everything else that changed with the special phrase &quot;recompile only&quot;. In our case, this phase has to appear verbatim somewhere in the commit message. It is a hint to our merge tool that the changes should be ignored when merging changes from one branch to another.

-Rob Calhoun</description>
		<content:encoded><![CDATA[<p>The recompile only changes are indeed a pain when using source-code control. It would be nice if LabView had better tools for identifying the difference between real &#8220;source code&#8221; (fp/block diagram) changes and &#8220;object code&#8221; changes. </p>
<p>We follow pretty much what Jim suggests: first we start with a clean working copy. Then we edit the typedef, preferably with everything in memory because LabView seems less prone to making substitution errors that way. Save and close it. Then we fix all the broken VIs, saving each as we go. Then we commit all of the saved routines together&#8212;these are all real changes and get a real commit message. Then we save everything else that changed with the special phrase &#8220;recompile only&#8221;. In our case, this phase has to appear verbatim somewhere in the commit message. It is a hint to our merge tool that the changes should be ignored when merging changes from one branch to another.</p>
<p>-Rob Calhoun</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leif Suonvieri</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25322</link>
		<dc:creator>Leif Suonvieri</dc:creator>
		<pubDate>Tue, 11 Nov 2008 12:39:42 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25322</guid>
		<description>Danny:  I&#039;ve made a little utility that uses the Subversion command line client and LVDiff, and I set the compare options to include &quot;VI attributes&quot;, &quot;Front Panel&quot; and &quot;Block Diagram&quot; and the others to false. This is not bullet proof but it has worked for me so far. If someone knows a better way to discover a recompile I&#039;d be happy to hear about it...</description>
		<content:encoded><![CDATA[<p>Danny:  I&#8217;ve made a little utility that uses the Subversion command line client and LVDiff, and I set the compare options to include &#8220;VI attributes&#8221;, &#8220;Front Panel&#8221; and &#8220;Block Diagram&#8221; and the others to false. This is not bullet proof but it has worked for me so far. If someone knows a better way to discover a recompile I&#8217;d be happy to hear about it&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny Thomson</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25321</link>
		<dc:creator>Danny Thomson</dc:creator>
		<pubDate>Tue, 11 Nov 2008 08:52:02 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25321</guid>
		<description>Leif,  that sounds a great little program,  would you mind telling me how you can tell that the only change is a recompile? I tried to do something similar using the VI Modification Bitset but I could not fine any info about what the value&#039;s meant other than the VI had unsaved changes.

Plus I very strongly agree with your comment.

Jim you reply to Dale regarding who should fix a broken VI if not in your area of responsibility is I suspect a whole new blog entry in the making :-)  if you have a Monolithic approach, then anything broken by your change IS  your responsibility, in a  modular approch it is not such a simple question</description>
		<content:encoded><![CDATA[<p>Leif,  that sounds a great little program,  would you mind telling me how you can tell that the only change is a recompile? I tried to do something similar using the VI Modification Bitset but I could not fine any info about what the value&#8217;s meant other than the VI had unsaved changes.</p>
<p>Plus I very strongly agree with your comment.</p>
<p>Jim you reply to Dale regarding who should fix a broken VI if not in your area of responsibility is I suspect a whole new blog entry in the making <img src='http://thinkinging.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  if you have a Monolithic approach, then anything broken by your change IS  your responsibility, in a  modular approch it is not such a simple question</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leif Suonvieri</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25320</link>
		<dc:creator>Leif Suonvieri</dc:creator>
		<pubDate>Tue, 11 Nov 2008 07:30:47 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25320</guid>
		<description>Unfortunately, National Instruments still sticks to the annoying &quot;Code and compiled binary in the same file&quot; - scheme.  
I suggest that everyone who reads this submits a feature request to NI to let them know that this has to be changed.

Anyway, I handle this problem the same way as Jim and in addition I use a little program that recursively shows changed files which only contains recompiles, and let me choose which ones to revert. This makes it easier to handle the result of accidenically clicking the &quot;Save-All&quot;-button.</description>
		<content:encoded><![CDATA[<p>Unfortunately, National Instruments still sticks to the annoying &#8220;Code and compiled binary in the same file&#8221; &#8211; scheme.<br />
I suggest that everyone who reads this submits a feature request to NI to let them know that this has to be changed.</p>
<p>Anyway, I handle this problem the same way as Jim and in addition I use a little program that recursively shows changed files which only contains recompiles, and let me choose which ones to revert. This makes it easier to handle the result of accidenically clicking the &#8220;Save-All&#8221;-button.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25319</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Mon, 10 Nov 2008 21:13:36 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25319</guid>
		<description>Dale: You bring up a good point -- an issue worth careful consideration.  In the case where you &lt;a href=&quot;http://thinkinging.com/2007/06/19/write-your-labview-code-so-that-it-breaks/&quot; rel=&quot;nofollow&quot;&gt;write your LabVIEW code so that it breaks&lt;/a&gt; when you change an enum, then you&#039;ll know that you need to modify the broken case structure.  One question is: if the VI that&#039;s now broken is not within your area of responsibility, should you fix it or notify the owner of the code so that they can fix it?  Another important question is: are the changes to a VI in memory (when the type definition changes) the same as would occur if the VI were loaded into memory after the changes occur.  This will impact the decision of whether to save the changed VIs (right when the typedef is changed) or to wait until later.</description>
		<content:encoded><![CDATA[<p>Dale: You bring up a good point &#8212; an issue worth careful consideration.  In the case where you <a href="http://thinkinging.com/2007/06/19/write-your-labview-code-so-that-it-breaks/" rel="nofollow">write your LabVIEW code so that it breaks</a> when you change an enum, then you&#8217;ll know that you need to modify the broken case structure.  One question is: if the VI that&#8217;s now broken is not within your area of responsibility, should you fix it or notify the owner of the code so that they can fix it?  Another important question is: are the changes to a VI in memory (when the type definition changes) the same as would occur if the VI were loaded into memory after the changes occur.  This will impact the decision of whether to save the changed VIs (right when the typedef is changed) or to wait until later.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dale Tucker</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25318</link>
		<dc:creator>Dale Tucker</dc:creator>
		<pubDate>Mon, 10 Nov 2008 19:56:37 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25318</guid>
		<description>This is a good suggestion for recompiles, but the example (type def changes) may not always be innocent recompiles.  Some type def changes can have &quot;real&quot; changes within the code.  An obvious example is an enum typ def defining states within a state machine.  If the state is redefined, the code within the case structure handling the case will not be updated.  Additionally a vi will break if the case structure handling the case does not declare a default state, (I know never happens) when states are added.  Another example is when your type def is used as an input parameter to a strictly typed Call By Reference Node.   Any changes to the type def will require remapping the call.  Good suggestion for documenting simple rebuilds in your version tracking effort, but type defs may have wider implications.</description>
		<content:encoded><![CDATA[<p>This is a good suggestion for recompiles, but the example (type def changes) may not always be innocent recompiles.  Some type def changes can have &#8220;real&#8221; changes within the code.  An obvious example is an enum typ def defining states within a state machine.  If the state is redefined, the code within the case structure handling the case will not be updated.  Additionally a vi will break if the case structure handling the case does not declare a default state, (I know never happens) when states are added.  Another example is when your type def is used as an input parameter to a strictly typed Call By Reference Node.   Any changes to the type def will require remapping the call.  Good suggestion for documenting simple rebuilds in your version tracking effort, but type defs may have wider implications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25317</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Mon, 10 Nov 2008 17:46:38 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25317</guid>
		<description>Danny: That&#039;s a great point: changing VI connector panes can impact calling VIs in a way that&#039;s identical to how changes in a type definition will affect callers.

Todd: Great, let&#039;s do it!  It&#039;s only Monday, so you&#039;ve got the whole week to work on it ;)</description>
		<content:encoded><![CDATA[<p>Danny: That&#8217;s a great point: changing VI connector panes can impact calling VIs in a way that&#8217;s identical to how changes in a type definition will affect callers.</p>
<p>Todd: Great, let&#8217;s do it!  It&#8217;s only Monday, so you&#8217;ve got the whole week to work on it <img src='http://thinkinging.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todd Sierer</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25316</link>
		<dc:creator>Todd Sierer</dc:creator>
		<pubDate>Mon, 10 Nov 2008 17:27:42 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25316</guid>
		<description>Another great post!  We need to get your blog content on our site like we&#039;ve done with Mike A.</description>
		<content:encoded><![CDATA[<p>Another great post!  We need to get your blog content on our site like we&#8217;ve done with Mike A.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Danny Thomson</title>
		<link>http://thinkinging.com/2008/11/10/when-to-commit-changed-vis-caused-by-type-definition-changes/comment-page-1/#comment-25315</link>
		<dc:creator>Danny Thomson</dc:creator>
		<pubDate>Mon, 10 Nov 2008 10:37:02 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/?p=696#comment-25315</guid>
		<description>I have seen this type of solution talked about in both the NI and Lava forums, and would take it even further than just type def changes. I would propose a similar approach to the situation whereby one or two Vi in the heart of a project are change and cause many file to recompile. To be able to differentiate between the files you have actually edited for something and those that have &quot;auto&quot; change due to LabVIEW being LabVIEW is a very important point for a configuration control point of view.</description>
		<content:encoded><![CDATA[<p>I have seen this type of solution talked about in both the NI and Lava forums, and would take it even further than just type def changes. I would propose a similar approach to the situation whereby one or two Vi in the heart of a project are change and cause many file to recompile. To be able to differentiate between the files you have actually edited for something and those that have &#8220;auto&#8221; change due to LabVIEW being LabVIEW is a very important point for a configuration control point of view.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
