<?xml version="1.0"?>
<rss version="2.0"><channel><title>Source Code Control Latest Topics</title><link>https://lavag.org/forum/29-source-code-control/</link><description>Source Code Control Latest Topics</description><language>en</language><item><title>LVCompare and LVMerge Crashes</title><link>https://lavag.org/topic/59108-lvcompare-and-lvmerge-crashes/</link><description><![CDATA[<p>
	Hello ladies and gentlemen! Prepare yourselves for a massive wall of text. Thank you in advance.
</p>

<p>
	First time poster, long time lurker. Over the last decade I have found answers to a myriad of Labview related questions I've had on these forums, and I'm hoping some of you can help me out with my current conundrum.
</p>

<p>
	I've a solo developer for a large labview based automation project. I have worked with other labview developers in the past, but we've always kept what we were working on very compartmentalized because nobody ever wanted to deal with LVMerge. At the time they all said Labview effectively had zero way to merge VIs.
</p>

<p>
	Since those old days (9 years ago) we've come a long way. Unfortunately like many engineers I am horrible about UI/UX design - I'm trying to fix basic functionality, I don't care that you can't find the button (at least I don't care right then). But because of how solid the software is getting we're finally in a good position to start dedicating time and effort into improving our UI flow and design. 
</p>

<p>
	So in the run up to this, and knowing I had basically zero experience with LVMerge/Compare except that the previous developers considered it "impossible", I did a few tests. My goal was to continue some development in the block diagram of the main top level VI in my own git branch, while another developer worked on UX changes on a second git branch. Then when he was ready we'd merge everything back together. All of his changes were focused on the Front Panel - he never opened the block diagram once. He was moving things, resizing things, changing captions and boolean texts, but never labels, and then adding various decorations as he wanted for clarity and organization.
</p>

<p>
	My initial test merges worked flawlessly. I was surprised how easy my small merges worked. From there he tinkered away when he could over 4ish weeks on the UI and I kept my usual pace on the main top level working on various bugs. I tried to limit what I was doing in the top level - most of the block diagram changes I made were cosmetic. It needed some TLC.
</p>

<p>
	Anyway fast forward and now we're ready to merge everything back together and ... I can't. I cannot get it to work. I've tried so much stuff. At first the errors were almost always during the LVCompare phase, usually about an insane block diagram object on the "base" vi. I'm familiar with heap peak so after a crash I'd comb the error log as well as I could (wish that thing had some documentation) and then try to find the offending object and fix it. More often then not I wouldn't see an issue with the object at all, and lots of the advice online is "just delete and remake the object" but I hate that solution because it means I fundamentally don't understand the actual problem, and when I'm merging three different versions of a big VI that gets tough to do.
</p>

<p>
	I've been experimenting with the tools, and eventually turned off auto resolve. Okay cool that would get me through the compare stage and actually open LVMerge where I could select which versions of things I wanted. From here it became a game of cat and mouse where I go through changes one by one till I get a crash, investigate, fix, change something related to said crash, and then run it again. This has been time (and sanity) consuming.
</p>

<p>
	It never worked, and eventually I got stuck on a merge change that I couldn't even identify what it was changing between the three, but I know that no matter which I select it crashes. I've kept trying various things since then.
</p>

<ul>
	<li>
		Resizing the tab control positions to be exactly the same
	</li>
	<li>
		Deleting a few FP objects on the base and FP update versions that I had removed when making BP changes on my version
	</li>
	<li>
		Adding a few objects I created for the same reason
	</li>
	<li>
		Added all 3 versions of the VI to the main most up to date project, opening and running them all to make sure there are no serious insane objects that are breaking them. They all run.
	</li>
</ul>

<p>
	This is by no means an exhaustive list of everything I've tried, but its what comes to mind right now as the major tries. Currently the state I'm in is that when I run it with all 3 versions with all the changes from above made to them, I can't get through the Compare stage because it crashes with a insane object error about "undo.cpp" which makes zero sense to me. What is it undoing? I tried limiting the number of Undos in <abbr title="LabVIEW"><abbr title="LabVIEW">LV</abbr></abbr> settings, that didnt help, I tried increasing the limit greatly, that also didn't work (maybe didn't increase enough? Trying that now). 
</p>

<p>
	I'm really deep in the weeds on this one now, and I would love some fresh perspectives. What's probably going to happen is that I'm going to write it all off as a lesson, and we'll just have the UI dev make his changes again on my current most up to date version - but I would really love to figure out the compare and merge process, and best practices for using it. The documentation for these is abysmal. There's basically nothing. I could probably pay for <a href="https://www.ni.com/" rel="external nofollow">NI</a>'s annual subscription and maybe get some direct help from them but I had it out pretty big with some <a href="https://www.ni.com/" rel="external nofollow">NI</a> sales guys a few years ago when they transitioned away from perpetual licenses to the subscription model, and I don't want to pay them on principle; but I will if needed.
</p>

<p>
	Ultimately even if we do the changes again, I'd still like some best practices on where we went wrong and how to avoid this in the future. We're growing fast, and I could see having another full time labview developer working with me in the future and would love to come away from this with as many answers as possible on how to work in a team on labview binary files. 
</p>

<p>
	If you've made it this far all I can say is thank you. Now please send help.
</p>

<p>
	PS: some info I should of added
</p>

<ul>
	<li>
		we use Labview 2021. I don't think we're on SP1, I don't remember why not, and I am willing to try updating.
		<ul>
			<li>
				also willing to pay the sub and just upgrade to 2025, but not without good reason like someone tells me all about how they solved so many issues with Compare/Merge in the last 4 years and its going to be so much better
			</li>
		</ul>
	</li>
	<li>
		I'm attaching my most recent error log from the crash I had last night. Its a doozy, reporting a TON of objects on both the FP and BP as insane.
	</li>
</ul>

<p>
	 
</p>
<p>
<a class="ipsAttachLink" href="https://lavag.org/applications/core/interface/file/attachment.php?id=22562&amp;key=60dc75b512b8f4df4f8c30ceca6a4886" data-fileExt='txt' data-fileid='22562' data-filekey='60dc75b512b8f4df4f8c30ceca6a4886'>lvlog2025-08-11-15-32-09.txt</a></p>]]></description><guid isPermaLink="false">59108</guid><pubDate>Mon, 11 Aug 2025 20:43:17 +0000</pubDate></item><item><title>New to source control - Labview 32 bit and 64 bit - how to set up LV Compare/Merge with both?</title><link>https://lavag.org/topic/59087-new-to-source-control-labview-32-bit-and-64-bit-how-to-set-up-lv-comparemerge-with-both/</link><description><![CDATA[<p>
	I am fairly new to source control in general and am trying to get git integrated with LabVIEW and am using TortiseGIT on my machine.  I saw the pinned post about "run this script and things will be set up for ya" regarding <abbr title="LabVIEW">LV</abbr> Compare/merge, but it didn't work for me, so I am manually adding in the file extensions to TortiseGIT and I ran into a bit of a snag that I wanted to get some input on. 
</p>

<p>
	 
</p>

<p>
	I have <abbr title="LabVIEW">LV</abbr> 32 and 64 bit installed on my PC and am unsure how to handle adding in <abbr title="LabVIEW">LV</abbr> Compare/Merge.  I say this because, as far as I am aware, TortiseGIT can only run 1 program per file type.  When talking with ChatGPT about it, ChatGPT recommended making a script that checks the file's "bitness" then running the correct version of <abbr title="LabVIEW">LV</abbr> Compare/Merge and use that script as the "program".  To me, it makes sense, but I also do not know what I do not know. I wanted to see if other people have run into this issue and what their solutions were.  If it's a "google it" thing, can I get some direction regarding what I should be searching for?  I don't mind putting in the legwork to learn, but I also don't know where to start with this issue and I've been flailing around in the dark for a bit and it's getting super frustrating.
</p>

<p>
	 
</p>

<p>
	Thanks.  
</p>
]]></description><guid isPermaLink="false">59087</guid><pubDate>Tue, 15 Jul 2025 11:22:07 +0000</pubDate></item><item><title>Installing LVCompare and LVMerge doesn't get any easier.</title><link>https://lavag.org/topic/22888-installing-lvcompare-and-lvmerge-doesnt-get-any-easier/</link><description><![CDATA[<p>
	Just copy-paste this into Git Bash - that's it!
</p>

<p>
	cd &amp;&amp; git clone <a href="https://gitlab.com/sas-blog/LVCompare-Merge-Setup.git" rel="external nofollow">https://gitlab.com/sas-blog/LVCompare-Merge-Setup.git</a> &amp;&amp; cd LVCompare-Merge-Setup &amp;&amp; ./setupLVTools.sh
</p>

<p>
	For more info checkout the repository here:
</p>

<p>
	<a href="https://gitlab.com/sas-blog/LVCompare-Merge-Setup" rel="external nofollow">https://gitlab.com/sas-blog/LVCompare-Merge-Setup</a>
</p>

<p>
	Demo'd here:
</p>

<div class="ipsEmbeddedVideo">
	<div>
		<iframe allowfullscreen="" frameborder="0" height="113" title="LVCompareMerge" width="200" data-embed-src="https://www.youtube.com/embed/655eiaVXoiA?feature=oembed"></iframe>
	</div>
</div>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">22888</guid><pubDate>Mon, 23 Jan 2023 17:46:53 +0000</pubDate></item><item><title>Configuring SourceTree and git to use LabVIEW Compare and LabVIEW Merge custom tools</title><link>https://lavag.org/topic/22168-configuring-sourcetree-and-git-to-use-labview-compare-and-labview-merge-custom-tools/</link><description><![CDATA[<p>
	<span> </span>There are many links on the Internet to tell you how to configure git to use custom tools for VI. Many are wrong. Yesterday, I and another developer outside NI worked through the sequence and got it working repeatably on both of our machines. Here is the process.
</p>

<ol>
	<li>
		Save both of the attached files someplace permanent on your hard drive that is outside of any particular git repo. We used
		<pre class="ipsCode prettyprint lang-sql prettyprinted"><span class="pln">C</span><span class="pun">:</span><span class="pln">\Users\&lt;</span><span class="str">&lt;username&gt;</span><span class="pun">&gt;</span><span class="pln">\AppData\Local\Programs\GIT\b</span><span class="kwd">in</span></pre>
		<a class="ipsAttachLink" contenteditable="false" data-fileid="16007" href="https://lavag.org/applications/core/interface/file/attachment.php?id=16007&amp;key=75364e018b9729b81ddff21e7c20da63" data-fileext="sh" rel="">_LVCompareWrapper.sh</a><a class="ipsAttachLink" contenteditable="false" data-fileid="16006" href="https://lavag.org/applications/core/interface/file/attachment.php?id=16006&amp;key=8391a4fdb210eaa08db93ac0c6abe5fd" data-fileext="sh" rel="">_LVMergeWrapper.sh</a>
	</li>
	<li>
		Modify your global git config file. It is saved at
		<pre class="ipsCode prettyprint lang-sql prettyprinted"><span class="pln">C</span><span class="pun">:</span><span class="pln">\Users\&lt;</span><span class="str">&lt;username&gt;</span><span class="pun">&gt;</span><span class="pln">\.gitconfig</span></pre>

		<p>
			You need to add the following lines:
		</p>

		<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">[mergetool "sourcetree"]
	cmd = 'C:/Users/smercer/AppData/Local/Programs/GIT/bin/_LVMergeWrapper.sh' \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
	trustExitCode = true
[difftool "sourcetree"]
	cmd = 'C:/Users/smercer/AppData/Local/Programs/GIT/bin/_LVCompareWrapper.sh' \"$REMOTE\" \"$LOCAL\"
[merge]
	tool = sourcetree
[diff]
	tool = sourcetree</span></pre>
	</li>
</ol>

<p>
	That's it. There are lots of ways to edit the .gitconfig from the command line or by using SourceTree's UI... if you know those ways, go ahead and use them.<br />
	 
</p>
]]></description><guid isPermaLink="false">22168</guid><pubDate>Wed, 04 Aug 2021 16:42:37 +0000</pubDate></item><item><title>Separating "installer" development from code development</title><link>https://lavag.org/topic/22190-separating-installer-development-from-code-development/</link><description><![CDATA[<p>
	I'm imagining a collaboration where one developer develops the code and a different developer develops and tests the installer. The only problem I see with this is by default, there's just one lvproj file with both the code and the installer build spec in it so both developers would be working on the same "file". It might be possible to make two lvproj with the build spec in one and the installer in the other. Or maybe the code developer delivers a packed project library to the installer developer?
</p>

<p>
	Has anyone gone down one of these paths?
</p>
]]></description><guid isPermaLink="false">22190</guid><pubDate>Fri, 03 Sep 2021 21:49:54 +0000</pubDate></item><item><title>Continuous Integration</title><link>https://lavag.org/topic/18539-continuous-integration/</link><description><![CDATA[<p>Has anyone here set up CI with Bamboo (or Jenkins?). I am working on this now (with Git) but starting with a blank slate with something you hardly know anything about is tough, especially with LabVIEW that doesn't have really any plugins available for it on this front. I would like to first start with just automating a build, then I can start adding in the more complex stuff like kicking back merges etc if the build fails. But, those things are a task I will tackle later.</p>]]></description><guid isPermaLink="false">18539</guid><pubDate>Fri, 26 Sep 2014 15:54:05 +0000</pubDate></item><item><title>Git detatched head. All of a sudden this makes sense!</title><link>https://lavag.org/topic/22094-git-detatched-head-all-of-a-sudden-this-makes-sense/</link><description><![CDATA[<p>
	This morning I finally realised why I semi-regularly get into a detached head state (I think I know why...).
</p>

<p>
	In git there are several different options for checking out a commit (checkout commit, checkout branch etc) and I never really paid much attention to the subtleties of these. As far as I thought they all did the same thing, that is revert the local code to the state of that commit.  It turns out that my understanding was flawed, and every time you check out a <em>single commit</em> (rather than the actual branch) the current state will not point to any particular branch and you will be in the detached head state.
</p>

<p>
	I find this a bit weird, as I presumed if you checkout a commit in say the middle of a branch somewhere you would still be on that particular branch. Checking out a branch will always checkout <em>the latest commit of that branch</em>.
</p>

<p>
	<a href="https://www.git-tower.com/learn/git/faq/git-checkout-commits/" rel="external nofollow">This </a>article explains it nicely.
</p>

<p>
	I have not been too scared of detached head for a while now as I know it can be easily fixed just by making a new branch, but it is nice to know why this actually happening.
</p>

<p>
	Happy gitting!
</p>

<p>
	(next step in my git mastery is to understand the subtleties of local and remote branches).
</p>
]]></description><guid isPermaLink="false">22094</guid><pubDate>Mon, 05 Jul 2021 06:15:09 +0000</pubDate></item><item><title>TortoiseGit flags changes when LabVIEW diff/compare finds no changes</title><link>https://lavag.org/topic/22040-tortoisegit-flags-changes-when-labview-diffcompare-finds-no-changes/</link><description><![CDATA[<p>
	Hi folks,
</p>

<p>
	I have been using TortoiseGit + Bitbucket for SCC for the past year and I have become rather frustrated with a recurring problem that I simply cannot find evidence of others experiencing.  For that reason I am convinced I am doing something wrong in my workflow but IDK what.
</p>

<p>
	TortoiseGit flags changes to some files but when I use LabVIEW to do the diff/compare it finds no changes at all.  The file sizes of the falsely flagged files are unchanged, but the CRCs are changed. (inspected the binary difference below).  Before committing the changes I do a mass compile as NI suggested to me that might be the cause.  At one time that seemed to help, but not now.  Also I can confirm I have enabled the separation of source and compiled code in each vi and in the project.
</p>

<p>
	<strong>WHY does this happen ?</strong>
</p>

<p>
	Here are examples of file names and sizes that are unchanged (but falsely flagged as changed by TortoiseGit):
</p>

<p>
	 Interpolate Magnitude (3 pts).vi       |  Bin 14665 -&gt; 14665 bytes<br>
	 Order Magnitude from FFT [dB].vi   |  Bin 13741 -&gt; 13741 bytes<br>
	 Peak Find 3 pts.vi                              |  Bin 21587 -&gt; 21587 bytes<br>
	 Vector Sum [linear].vi                        |  Bin 12555 -&gt; 12555 bytes
</p>

<p>
	and one file changed which was truly flagged as a changed (note filesize diff)
</p>

<p>
	Amendments.vi                                  |  Bin 54814 -&gt; 54786 bytes
</p>

<p>
	In one of the above files, below you can see the binary difference of 5 bytes occurs just prior to the first revision history comment, however no changes at all are found in all the history comments nor in the LabVIEW compare.  I spotted a similar kind of change (same location)  in a 2nd file I looked at.
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="15812" data-ratio="30.50" width="931" alt="image.png.f3224a04f822f4fe9075c447b89da61a.png" src="https://lavag.org/applications/core/interface/js/spacer.png" data-src="https://lavag.org/uploads/monthly_2021_05/image.png.f3224a04f822f4fe9075c447b89da61a.png">
</p>
]]></description><guid isPermaLink="false">22040</guid><pubDate>Thu, 06 May 2021 11:33:41 +0000</pubDate></item><item><title>VIPM and separate compiled code</title><link>https://lavag.org/topic/21962-vipm-and-separate-compiled-code/</link><description><![CDATA[<p>
	I’m a big fan of JKI VIPM, and I’ve been usen Source code control with labview for some years (First with mercurial and now with GIT). Following the good practices with SCC and LabVIEW I always check the separate compiled code from vi to avoid unwanted changes on Vis.
</p>

<p>
	In the other hand I’ve read that the performance of labview is better with the compiled code in the VI. Besides that the labview IDE does not allow you clear compiled cache of some of your vis, you have to delete all the compiled cache…When I have some compilation errors and I delete the compiled cache It takes a lot of time to open again the project…
</p>

<p>
	My question is… VIPM allows you to execute some code after the package installation (post-installation-action). Could it be a good idea to unmark the separate compiled code programmatically on each installed file (vi, ctl, class, lvlib… )?.
</p>

<p>
	Maybe I have to make this question in VIPM forums also, to check when is executed that post-installation-action, if it is executed before or after the masscompiling
</p>

<p>
	 
</p>

<p>
	Thanks!!
</p>
]]></description><guid isPermaLink="false">21962</guid><pubDate>Tue, 09 Mar 2021 15:46:36 +0000</pubDate></item><item><title>New to Source Control and looking for easy... safe solution</title><link>https://lavag.org/topic/21949-new-to-source-control-and-looking-for-easy-safe-solution/</link><description><![CDATA[<p>
	So I spent much of the afternoon looking over postings here on Source Control Software and LabVIEW. I must say I came away discouraged.
</p>

<p>
	I've been programming LabVIEW for over 20 years in a single one technician lab and never really needed any stinking source control. Well now that's not the case. But thought I'd just read some posts, determine what everyone else likes and be done!!!!! That didn't work out for me ether... Seems nobody really likes source control after all. Or at least there are issues with just about every option.
</p>

<p>
	So here is my situation. I'm still the single labVIEW developer on a project. But the project requires a more structured source control environment. So I'm looking for source control that works flawlessly within LabVIEW and  is easy to use, I'm Using latest versions of LabVIEW.  
</p>

<p>
	Since most of the posts I read today are from years back, I'm hoping things have really improved in the last couple years and you guys are happy as a lark with your source control environment.
</p>

<p>
	If you could take a minute and tell me:
</p>

<p>
	1. What type of source control software you are using?
</p>

<p>
	2. You love it, or hate it?
</p>

<p>
	3. Are you forced to use this source control because it's the method used in your company, but you would rather use something else
</p>

<p>
	4. Pro's and Con's of the source control you are using?
</p>

<p>
	5. Just how often does your source control software screw up and cause you major pain?
</p>

<p>
	Thank you in advance.
</p>

<p>
	Bob Harmon
</p>
]]></description><guid isPermaLink="false">21949</guid><pubDate>Thu, 25 Feb 2021 01:08:08 +0000</pubDate></item><item><title>Git can't be this terrible, what am I doing wrong?</title><link>https://lavag.org/topic/21651-git-cant-be-this-terrible-what-am-i-doing-wrong/</link><description><![CDATA[<p>
	I've switched to Git from Mercurial recently, and my opinion of it gets worse and worse.  The number of times I've gotten stuck trying to figure out how Git got screwed up and how to fix things is way too high.  Mercurial had similar issues when I first learned it, but it was an order of magnitude less than Git.  Git seems to make the simple unnecessarily complicated and non-intuitive, with any step wrong leaving you in a position of not being able to fix things. with horrible gobbledygook error messages and blank stares on my part. 
</p>

<p>
	So I must be doing something wrong.  What should I read up on to make Git less crap?
</p>
]]></description><guid isPermaLink="false">21651</guid><pubDate>Tue, 07 Jul 2020 11:47:53 +0000</pubDate></item><item><title>Git delete branch after merging Pull Request</title><link>https://lavag.org/topic/21890-git-delete-branch-after-merging-pull-request/</link><description><![CDATA[<p>
	So I am pretty new to GitHub and pull requests (I still am not sure I 100% understand the concept of local and remotes having totally different branches either!)
</p>

<p>
	But what is this all about? I have done a bit of digging and it seems the current best practice is indeed to delete the branch when it is no longer needed. This is also a totally strange concept to me. I presume the branch they are talking about here is the remote branch?
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="15540" data-ratio="14.03" width="955" alt="image.png.6dde34da325374f65f3bc8ccb21dd79e.png" src="https://lavag.org/applications/core/interface/js/spacer.png" data-src="https://lavag.org/uploads/monthly_2021_01/image.png.6dde34da325374f65f3bc8ccb21dd79e.png">
</p>

<p>
	 
</p>

<p>
	Confused...
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">21890</guid><pubDate>Mon, 18 Jan 2021 18:08:02 +0000</pubDate></item><item><title>VCS / Development Toolchains in 2020</title><link>https://lavag.org/topic/21654-vcs-development-toolchains-in-2020/</link><description><![CDATA[<p>
	So let's pretend for a moment that Git hasn't taken over the world. Assuming you had a choice, what is your toolchain of choice these days? This is more about total platform than specific VCS implementation.
</p>

<p>
	I work with a small team with a badly overdue need for SCC. I find myself in a position to change some things, but, unfortunately, I've spent most of my career here and I'm a bit lacking in experience myself, so I've been looking into available options for a few days. The more I research, the deeper down this rabbit hole I go. Maybe a bit of discussion will help solidify the tools and features I'm looking for, and this seemed a good place for it since "works well with LabVIEW" is a factor.
</p>

<p>
	Ramblings from here out...
</p>

<p>
	Current state: Madness and chaos.<span class="ipsEmoji">🤪</span>
</p>

<p>
	Desired state:
</p>

<ul>
	<li>
		VCS repository management including either on-premises or cloud storage.
	</li>
	<li>
		Project management/issue tracking.
	</li>
	<li>
		CI/CD might be worth exploring?
	</li>
	<li>
		Documentation. A wiki or similar that can document the applications would be great.
	</li>
	<li>
		Due to the industry we are in, user management is sort of important. Ideally I'd like to use SSO and enforce dedicated accounts.
	</li>
</ul>

<p>
	Thoughts on possible solutions...
</p>

<ul>
	<li>
		Gitlab
		<ul>
			<li>
				Seems the most likely Git contender. Bonus points for the fact that it can be self-hosted, which mitigates some of the user management concerns.
			</li>
			<li>
				That said, see <a href="https://lavag.org/topic/21651-git-cant-be-this-terrible-what-am-i-doing-wrong/?tab=comments#comment-132696" rel="">drjdpowell's recent thread</a> for the type of discussion that makes me nervous about rolling Git out to an inexperienced team, especially under my not-exactly-expert guidance.
			</li>
		</ul>
	</li>
	<li>
		Perforce + Jira + Jenkins
		<ul>
			<li>
				<span>I believe our software engineering group is using something along these lines. (Not sure what their CI pipeline is.) This loses a some of the appeal of a single application, but I do think I would prefer the idea of a centralized VCS for our situation.</span>
			</li>
		</ul>
	</li>
	<li>
		<span>SVN + ???</span>
		<ul>
			<li>
				Maybe my Google-fu is off, but I<span>'m not turning up a ton of modern guidance on a full tool chain. Helix Teamhub or Assembla along with Jenkins maybe? (Except I just noticed Assembla says their Jenkins plugin only works with Git</span>... Hmm.)
			</li>
		</ul>
	</li>
	<li>
		Azure DevOps
		<ul>
			<li>
				Can anyone share experience with TFVC or Pipelines? I haven't actually tried any of these tools yet and I'm not sure if it's worth pursuing, but the website is looking... surprisingly not bad. (Although <a href="https://docs.microsoft.com/en-us/azure/devops/repos/tfvc/comparison-git-tfvc?view=azure-devops" rel="external nofollow">even they seem to be pushing users toward Git</a>.)
			</li>
		</ul>
	</li>
</ul>

<p>
	Also tried Github and Bitbucket. Found myself leaning towards Gitlab over Github, and prefer not to talk about Bitbucket. <span class="ipsEmoji">🤢</span>
</p>
]]></description><guid isPermaLink="false">21654</guid><pubDate>Thu, 09 Jul 2020 10:14:51 +0000</pubDate></item><item><title>Who uses Git Submodules?</title><link>https://lavag.org/topic/21735-who-uses-git-submodules/</link><description><![CDATA[<p>
	Who uses Git Submodules?  I know <a href="https://labvolution.com/using-git-submodules/" rel="external nofollow">Greg Payne does</a> and have watched <a href="https://youtu.be/iv7WwDgyb0U" rel="external nofollow">his talk</a>, but does anyone else have experience.   I'm especially interested in experience with projects with multiple developers and multiple products (that might need to use different versions of the subprojects).  
</p>
]]></description><guid isPermaLink="false">21735</guid><pubDate>Wed, 26 Aug 2020 10:32:19 +0000</pubDate></item><item><title>Norton AV removes PPLs</title><link>https://lavag.org/topic/21595-norton-av-removes-ppls/</link><description><![CDATA[<p>
	Norton antivirus decided to remove all of my lvlibp files that I copied from our self-hosted gitlab repo.
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="14932" data-ratio="66.20" width="781" alt="image.png.aa023fb4e504698169b0a01ce38e94e9.png" src="https://lavag.org/applications/core/interface/js/spacer.png" data-src="https://lavag.org/uploads/monthly_2020_05/image.png.aa023fb4e504698169b0a01ce38e94e9.png">
</p>

<p>
	It seems that it takes issue with the URL of the repo and the newness of the files.
</p>

<p>
	Here is a post about WS.Reputation.1: <a href="https://community.norton.com/en/forums/clarification-wsreputation1-detection" rel="external nofollow">https://community.norton.com/en/forums/clarification-wsreputation1-detection</a>
</p>

<p>
	They suggest that developers set up auto-protect exclusions for their project directories.
</p>
]]></description><guid isPermaLink="false">21595</guid><pubDate>Tue, 26 May 2020 16:43:57 +0000</pubDate></item><item><title>Excluding Files from LabVIEW Project Auto-Populate</title><link>https://lavag.org/topic/9060-excluding-files-from-labview-project-auto-populate/</link><description><![CDATA[<p>Is there a way to exclude certain files from showing up in an auto-populate folder like say SCC files.  Many SCC applications put an extra file in every directory to link to repository.  These files show up in your auto-populate folders even though you don't need or want them there.</p>
<p>Thanks.</p>
]]></description><guid isPermaLink="false">9060</guid><pubDate>Thu, 18 Dec 2008 17:50:24 +0000</pubDate></item><item><title>Bitbucket sunsetting support for Mercurial</title><link>https://lavag.org/topic/21251-bitbucket-sunsetting-support-for-mercurial/</link><description><![CDATA[<p>
	As I've reported in the UI Tools support page, I've started migrating the open source code I still have on bitbucket (Mercurial-based repos) to Github.<br>
	I didn't think that it might be worth a specific topic until <a contenteditable="false" data-ipshover="" data-ipshover-target="https://lavag.org/profile/17453-logman/?do=hovercard" data-mentionid="17453" href="https://lavag.org/profile/17453-logman/" rel="">@LogMAN</a> mentioned it. Personally, I'm moving my code to Github in the process. I know there are some reports of Hg-to-Git transitions not going so well when using sub-repositories, so please share your migration experience if you've had to jump into some hoops to get it done!
</p>

<p>
	For all of you who still use Mercurial and host your open source and/or enterprise repos on Bitbucket, this blog post is worth reading:
</p>

<blockquote class="ipsQuote" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="129540" data-ipsquote-contentid="11045" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1572092385" data-ipsquote-userid="17453" data-ipsquote-username="LogMAN">
	<div class="ipsQuote_citation">
		3 hours ago, LogMAN said:
	</div>

	<div class="ipsQuote_contents">
		<p>
			Thanks for the heads up, this completely went by me.
		</p>

		<p>
			Here is the official blog post from Bitbucket if anyone is interested: <a href="https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket" rel="external nofollow">https://bitbucket.org/blog/sunsetting-mercurial-support-in-bitbucket</a>
		</p>
	</div>
</blockquote>
]]></description><guid isPermaLink="false">21251</guid><pubDate>Sat, 26 Oct 2019 15:44:29 +0000</pubDate></item><item><title>Managing large files within GIT repo size limitations.</title><link>https://lavag.org/topic/20758-managing-large-files-within-git-repo-size-limitations/</link><description><![CDATA[<p>
	I'm currently using Bitbucket, but I've used other cloud services and have used GitHub as well. The ones I've used have limitations and typically cap your repo size at 2 Gb. Recently I hit this limit on a large project. Mainly because of all the support files. However if you've worked on any large LabVIEW project that has constant development for a decade, then you can probably hit this limit considering the binary nature of LabVIEW source.
</p>

<p>
	So this question is mostly to get community feedback on what approach you use to handle this, if at all. I went down a rabbit hole recently on one big project. I decided to keep ONLY source code in GIT and move all support files to dropbox. I also tried putting the build output and other transitory files to dropbox as well. However I found an issue because dropbox would interfere with the build process (any insight to this from others is welcome).
</p>

<p>
	Thanks for your help.
</p>
]]></description><guid isPermaLink="false">20758</guid><pubDate>Tue, 22 Jan 2019 09:38:15 +0000</pubDate></item><item><title>Using Git for Configuration Data revision control</title><link>https://lavag.org/topic/20446-using-git-for-configuration-data-revision-control/</link><description><![CDATA[<p>
	We have a large LabVIEW project that is structured in multiple Git repos using Git submodules.
</p>

<p>
	Within each Project we have our source organized into folders like this:
</p>

<pre class="ipsCode">
Project Folder
	Configuration Data Folder
	Source Code Folder</pre>

<p>
	We typically do development on our development machines where the Configuration Data Folder contains configuration files that are in simulation mode and using atypical configurations.
</p>

<p>
	We also deploy our development system onto tools during development and testing by cloning the repo onto the hardware supported platforms.  On these machines, the configuration data is modified to remove the simulation flag and is further configured for the specific project being developed.
</p>

<p>
	When we do a pull onto the deployed systems, we definitely want all the Source Code Folder changes but we generally do not want the Configuration Data.  However, we want the Configuration Data to be tracked, so we do want it to be in the/a repo.  Does anyone know what the best method to do this is?
</p>

<p>
	What we don't want to happen is for the deployed system configuration data (which might include some machine specific constants, etc) to get over-written by some developer setting that was used for testing, but we still want to pull/merge changes onto the tool.  Note that we have the tool on a separate branch from the development branch but when whenever we merge we can potentially get into trouble if we pull configuration data as part of the sync.  Since the configuration data is text based, Git typically auto-merges these changes and so it can be difficult to tell that the merge affected the configuration data.  I am curious if anyone has had this issue already and come up with a good solution/strategy.
</p>
]]></description><guid isPermaLink="false">20446</guid><pubDate>Thu, 01 Mar 2018 23:43:36 +0000</pubDate></item><item><title>Questions Regarding SVN and Project File Organization</title><link>https://lavag.org/topic/20396-questions-regarding-svn-and-project-file-organization/</link><description><![CDATA[<p>
	Hi all,
</p>

<p>
	I am fairly new to Labview development.  I want to implement revision control software (SVN in particular) to my workplace.  Before I can do this, I need to prove the concept and usefulness of the SVN application for us.  I have used SVN in some degree in the past, and noticed tortoiseSVN integration with Labview via the TSVN Toolkit.  I have a few questions regarding SVN and how I should organize my project files, in particular when using SVN.
</p>

<p>
	File organization has been a particular gray area for me in Labview, unlike linking my libraries and specifying their locations I don't seem to quite have that control in Labview.  This issue is somewhat more exacerbated (or at least so I think) when I began using SVN.  Let me explain: Using the TSVN toolkit it sees that my entire class (which was developed in a separate directory - then linked in) is not sourced and revisioned.  This is also the case for several other libraries which I have borrowed or developed myself.  I have two primary questions regarding this.
</p>

<p>
	The first - How does SVN add/commit these project files when they are not present within the project directory itself?  In fact I have created a separate repo for the class which I use to maintain that code.
</p>

<p>
	The second - Is my file organizational design fundamentally flawed? Especially in the context of SVN?  What are some good organizational tips/ schemes (when using SVN) which would help me for future projects in avoiding issues such as this? 
</p>

<p>
	 
</p>

<p>
	A  less pressing question:
</p>

<p>
	How well does the "merge" functioning work with the Labview VIs?  Remember I am do not have the most experience with SVN - it is my understanding that merge basically would merge changes I have made back with changes by other devs to the file along the main trunk(?).  
</p>

<p>
	 
</p>

<p>
	Thanks in advance.
</p>

<p>
	MrShawn
</p>
]]></description><guid isPermaLink="false">20396</guid><pubDate>Mon, 08 Jan 2018 14:24:31 +0000</pubDate></item><item><title>GNU GPL and Source Control</title><link>https://lavag.org/topic/20280-gnu-gpl-and-source-control/</link><description><![CDATA[<p>
	The IT department instructed me not to use SVN anymore since it is GPL and that means that I would have to share MY OWN source code which is for commercial use. 
</p>

<p>
	They referred me to the following links:
</p>

<p>
	<span dir="rtl" lang="he" style="font-size:11pt;font-family:Arial, sans-serif;" xml:lang="he"><a href="http://www.gnu.org/licenses/gpl-2.0.html#SEC1" rel="external nofollow"><span dir="ltr" lang="en-us" style="font-family:Calibri, sans-serif;" xml:lang="en-us">http://www.gnu.org/licenses/gpl-2.0.html#SEC1</span></a></span>
</p>

<p>
	<a href="https://softwareengineering.stackexchange.com/questions/47032/can-i-use-gpl-software-in-a-commercial-application" rel="external nofollow">https://softwareengineering.stackexchange.com/questions/47032/can-i-use-gpl-software-in-a-commercial-application</a>
</p>

<p>
	Is this correct? they want me to use TFS and if I understand correctly it is GIT based and not working as good as SVN with LabVIEW.
</p>

<p>
	If they are correct, the second I use a tool from VIPM which is GNU GPL I need to open MY OWN CODE!
</p>

<p>
	Is that correct?
</p>
]]></description><guid isPermaLink="false">20280</guid><pubDate>Tue, 05 Sep 2017 15:42:44 +0000</pubDate></item><item><title>Using LV with SVN</title><link>https://lavag.org/topic/19342-using-lv-with-svn/</link><description><![CDATA[<p>Hello,</p>
<p>sorry to start a new thread on this, but my searches turned out posts that are mostly outdated or relate to SCC tools other than SVN.</p>
<p> </p>
<p>So, we have decided to use SVN as our SCC platform. I have setup a VisualSVN server on our Windows 2012 Server and Tortoise SVN client on the developer machines. This is working quite nicely at the file level, but I wonder if we can get more functionality, especially VI comparison.</p>
<p> </p>
<p>We are using the latest <abbr title="LabVIEW">LV</abbr> 2015 Full Development System (not Professional Development system). So I understand that I cannot use the lvdiff tool. I have however setup LVcompare as a tool for .vi files in the SVN Advanced Setup.</p>
<p> </p>
<p>I found two SVN tools for <abbr title="LabVIEW">LV</abbr>:</p>
<p>1. JKI TortoiseSVN Tool. This has a somewhat steep price at $200 per developer (10% discount from 5 seats)</p>
<p>2. TSVN Toolkit from Viewpoint Systems. This is free. However, it states that the latest version supported is <abbr title="LabVIEW">LV</abbr> 2014.</p>
<p> </p>
<p>I am interested in the experience from other users regarding:</p>
<p>Q1. Which of the two tools, if any, do you find useful and why?</p>
<p>Q2. Does TSVN Toolkit work with <abbr title="LabVIEW">LV</abbr> 2015?</p>
<p>Q3. Any other tips/suggestions for effectively using <abbr title="LabVIEW">LV</abbr> with SVN?</p>
<p> </p>
<p>Your opinion and help is much appreciated.</p>
<p> </p>
<p>Thanks in advance.</p>
<p>--germ</p>
]]></description><guid isPermaLink="false">19342</guid><pubDate>Thu, 19 Nov 2015 00:32:54 +0000</pubDate></item><item><title>VIPM Alternative?</title><link>https://lavag.org/topic/19557-vipm-alternative/</link><description><![CDATA[<p>This maybe has been ask/answered/discuss before but here it is.</p>
<p> </p>
<p> </p>
<p>Is there any VIPM alternative out there?</p>
<p> </p>
<p>If not, It will be very interesting to start a discussion whether an open source version is feasible and how many members in the community are willing to work on it.</p>
<p> </p>
<p>I know JKI has a great product already but seems like development has come to halt wrt VIPM.</p>
<p> </p>
<p>Any comments?</p>
<p> </p>
<p> </p>
]]></description><guid isPermaLink="false">19557</guid><pubDate>Tue, 12 Apr 2016 15:09:59 +0000</pubDate></item><item><title>Find orphan VIs in project hierarchy (on disk)</title><link>https://lavag.org/topic/19603-find-orphan-vis-in-project-hierarchy-on-disk/</link><description><![CDATA[<p>
	Hello everyone, I want to share a VI that I recently created to search for orphan files in a (very! <img alt=":angry:" data-emoticon="" src="https://lavag.org/uploads/emoticons/default_angry.png" title=":angry:">) messy project. As it turned out it's actually very easy to do that (if you find super-secret stuff on the net):
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="11225" src="https://lavag.org/uploads/monthly_2016_05/572a389909cc9_FindOrphanVIsInHierarchy.png.ef6f7667a4e15ad07831272dbd680be8.png" alt="Find Orphan VIs In Hierarchy.png"></p>

<p>
	This VI will find files (VIs, Controls, Classes, etc...) in your project folder that are not linked by a given top-level VI. This is done by comparing the call-chain of the top-level VI with the files on disk. It assumes your files are in folders relative to the specified root directory. This also means that files outside the hierarchy will be ignored (vi.lib and such).
</p>

<p>
	Be aware of (at least) two things:
</p>

<ol><li>
		This VI will return false friends if you happen to have any "Open VI Reference" call with constant VI names or paths connected to it (not a problem if you use static VI references).
	</li>
	<li>
		VIs in diagram disable structures are not listed in the call-chain. So if you use conditional (or regular) disable structures this VI will return false friends.
	</li>
</ol><p>
	Does anyone know a solution to number 2. actually? <img alt=":frusty:" data-emoticon="" src="https://lavag.org/uploads/emoticons/default_frusty.gif" title=":frusty:"></p>

<p>
	Hope this proves useful to you too.
</p>
]]></description><guid isPermaLink="false">19603</guid><pubDate>Wed, 04 May 2016 18:16:28 +0000</pubDate></item><item><title>Version Dog</title><link>https://lavag.org/topic/19597-version-dog/</link><description><![CDATA[<p>
	Our IT department is rolling out a SCC package called <a href="http://www.versiondog.com/" rel="external nofollow">Version Dog</a> to our site. Looking a the website, it looks to be geared for PLCs but down in the documentation it mentions LabVIEW. Has anyone heard of this before? Used it? Have opinions on it? Not impressed by the amount of openly available non-fluff information on the website.
</p>

<p>
	We do have a SVN server running, however the network changes from when the current owners took over have FUBAR our ability to connect to SVN from our desk. This appears to be a much needed effort to version control the PLC programs (long overdue) and an attempt to close out IT work tickets that are many years old.
</p>

<p>
	Thanks in advance for any replies.
</p>
]]></description><guid isPermaLink="false">19597</guid><pubDate>Mon, 02 May 2016 17:09:14 +0000</pubDate></item><item><title><![CDATA[SCC &#38; Libraries]]></title><link>https://lavag.org/topic/19276-scc-libraries/</link><description><![CDATA[<p>I'm wondering how people handle dependent custom libraries with source control please. In each case I'm assuming that each library has its own repository (in my case Git) for the development of the library itself, and each project then has it's own separate repo.</p>
<p> </p>
<p>Here are a couple of options;</p>
<p>1.  Take a copy of each library the project depends on and check it in to the project repository. Causes duplication but all the custom libraries needed for the build are then in one repo, with the right version.</p>
<p>2.  Install the custom libraries to vi.lib/user.lib. There is less duplication but if someone checks out a project they now need to know to check out the dependent libraries. Plus, if different projects on the same machine depend on differnent revisions of the library it becomes more fiddly.</p>
<p> </p>
<p>Martin</p>
<p> </p>
]]></description><guid isPermaLink="false">19276</guid><pubDate>Tue, 20 Oct 2015 08:38:55 +0000</pubDate></item><item><title>Configuring Git to work with LVCompare and LVMerge</title><link>https://lavag.org/topic/17934-configuring-git-to-work-with-lvcompare-and-lvmerge/</link><description><![CDATA[<p>Has anyone actually configured Git to work with LVCompare or LVMerge?  (I've seen some threads on various boards saying it "should be something like" &lt;x&gt;, but it isn't quite &lt;x&gt; and I haven't found anywhere that someone has actually described it successfully.)</p>
<p> </p>
<p>Notes:</p>
<p>I know how to configure TortoiseSVN to work with LVCompare and LVMerge.  My new employer is moving to Git (some good, some bad in that, in my opinion, but that is another topic).</p>
<p> </p>
<p>I have been using Git for a few months now with reasonable success and decided I should try to set up graphical differencing.  [OK, in practice I've rarely used graphical differencing for any practical purpose, and graphical merging probably never for any actual code.]  Anyway, I think I've learned some things trying to figure out how to get this to work--but I don't have it working yet.</p>
<p> </p>
<p>I use the Atlassian SourceTree client at present (and sometimes the shell).  For the purposes of this discussion it might be more helpful to share the relevant text in the .gitconfig file (and any associated scripts, if necessary).</p>
<p>As others have mentioned, Git itself (SourceTree similarly) does not distinguish which diff tool to call according to the file extension.  This seems like it could be a significant drawback.</p>
<p> </p>
<p>What I have tried:</p>
<p>I added this (and variants of it) to my .gitconfig file:</p>
<p> </p>
<pre class="ipsCode prettyprint">[difftool "LVCompare"]     path = C:Program Files (x86)National InstrumentsSharedLabVIEW CompareLVCompare.exe     keepBackup = false     trustExitCode = false[difftool "LVCompare"]     cmd = "C:Program Files (x86)National InstrumentsSharedLabVIEW CompareLVCompare.exe"  "$LOCAL" "$REMOTE"[diff]    tool = LVCompare</pre>
<p>SourceTree reports errors on start-up, so don't use this!  Lol!</p>
<p> </p>
<p>Maybe I need to add a script, too.  I'm not sure that I'm really all that close, honestly.</p>
<p> </p>
<p>[bigger question: Why is this difficult in the first place?]</p>
]]></description><guid isPermaLink="false">17934</guid><pubDate>Thu, 23 Jan 2014 00:28:39 +0000</pubDate></item><item><title>XML Data file versioning</title><link>https://lavag.org/topic/19181-xml-data-file-versioning/</link><description><![CDATA[<p>I'm building an application (which I am intending to share at a local user group soon), but am having issues with XML file data versioning.</p>
<p> </p>
<p>My intent is to have a data type which has a version string, and a variant for the data which will be read according to the version number in the version string.  The issue is that if you flatten the data type to an XML string with any data in the variant, then try to unflatten the data, you get an error (1106: "LabVIEW:  The XML tag describing the type of data does not match the wired type.")</p>
<p> </p>
<p>How have you done versioning for data files which you are pretty sure will change over time?</p>
<p> </p>
<p>And can anyone tell me why this attempt doesn't work?</p>
<p> </p>
<p>Thanks,</p>
<p> </p>
<p>-Chris Collier</p>
<p> </p>
<p>P.S. The attached files are in <abbr title="LabVIEW">LV</abbr> 2014</p>
<p><a href="https://lavag.org/applications/core/interface/file/attachment.php?id=10606" data-fileid="10606" rel="">Test XML.zip</a></p>
]]></description><guid isPermaLink="false">19181</guid><pubDate>Thu, 20 Aug 2015 15:30:43 +0000</pubDate></item><item><title>.lvproj mutates on platform migration</title><link>https://lavag.org/topic/18976-lvproj-mutates-on-platform-migration/</link><description><![CDATA[<p>These days I'm ping-ponging my ongoing project source tree between a development linux system and a test window system, and there is a minor issue which buggers me. The lvproj file is transmutated in a few respects every time it is read by the other platform, and this may generate unnecessary diffs. Usually negligible, as at each commit I typically anyway induce many other changes, though. Looking into, I see:</p>
<ul><li>a whole group of items within "Dependencies" is replaced by another one. Where linux has<br><pre class="ipsCode prettyprint lang-auto">
&lt;Item Name="System Exec.vi" Type="VI" URL="/&lt;vilib&gt;/Platform/system.llb/System Exec.vi"/&gt;
&lt;Item Name="Get Web Browser Path.vi" Type="VI" URL="/&lt;vilib&gt;/Platform/browser.llb/Get Web Browser Path.vi"/&gt;
&lt;Item Name="Get System Web Browser.vi" Type="VI" URL="/&lt;vilib&gt;/Platform/browser.llb/Get System Web Browser.vi"/&gt;
&lt;Item Name="Prompt Web Browser Path.vi" Type="VI" URL="/&lt;vilib&gt;/Platform/browser.llb/Prompt Web Browser Path.vi"/&gt;
&lt;Item Name="Dflt Data Dir.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/file.llb/Dflt Data Dir.vi"/&gt;
&lt;Item Name="Create Directory Recursive.vi" Type="VI" URL="/&lt;vilib&gt;/Utility/libraryn.llb/Create Directory Recursive.vi"/&gt;</pre>windows puts a longer block, which includes Registry VIs, ActiveX VIs, BMP VIs and more. I presume that at least some of these deps are due to a little use I make of Report VIs specifically.</li>
<li>the entry line for item <span style="font-family:'courier new', courier, monospace;">lvanlys.so</span> is replaced by lines for <span style="font-family:'courier new', courier, monospace;">lvanlys.dll,</span> <span style="font-family:'courier new', courier, monospace;">Advapi32.dll</span>, <span style="font-family:'courier new', courier, monospace;">kernel32.dll</span>
</li>
<li>the three lines in the Build Specifications block<br><pre class="ipsCode prettyprint lang-auto">
&lt;Property Name="Bld_supportedLanguageCount" Type="Int"&gt;1&lt;/Property&gt;
&lt;Property Name="DestinationCount" Type="Int"&gt;2&lt;/Property&gt;
&lt;Property Name="SourceCount" Type="Int"&gt;2&lt;/Property&gt;</pre>are moved around at different points within the block.</li>
</ul><p>Don't know if I'm going to make a big fuss about, just remarking...</p>
]]></description><guid isPermaLink="false">18976</guid><pubDate>Thu, 07 May 2015 15:10:53 +0000</pubDate></item><item><title>Git submodules (or Svn externals), the fork-pull model, and LV versioning</title><link>https://lavag.org/topic/18925-git-submodules-or-svn-externals-the-fork-pull-model-and-lv-versioning/</link><description><![CDATA[<p>A sage <abbr title="LabVIEW">LV</abbr> developer recommended that I stop building my internal <abbr title="LabVIEW">LV</abbr> reuse libraries into VI packages and just link to them from my project repos as git submodules. Sounds interesting, especially given how much work I put into creating, testing, distributing, and documenting VIP and VIPC files. I poked around with svn externals a little bit years ago and thought they were neat. So I went snooping around the blogosphere for awhile to see what git submodules are all about.</p>
<p> </p>
<p>Submodules in git are pointers to a specific commit in a repository at a specific URL. This is evidently different than externals in svn, but both are intended to solve the same set of issues.</p>
<p> </p>
<p><a href="http://somethingsinistral.net/blog/git-submodules-are-probably-not-the-answer" rel="external nofollow">http://somethingsinistral.net/blog/git-submodules-are-probably-not-the-answer</a></p>
<blockquote data-ipsquote="" class="ipsQuote"><div>[T]here are a number of use cases for [submodules], and they all center around nested git modules that are much more static in nature and use.<br><br>One - you have a component or subproject where the project is undergoing extremely rapid change or is unstable, so you actually want to be locked to a specific commit for your own safety. Or, perhaps a project is breaking backwards compatibility of their API and you donâ€™t want to have to deal with that till they stabilize their code. In this case, git submodules, being reasonably static, are protecting you because of that static nature. You donâ€™t have to clone the outside component and switch to a specific branch or go to any of that hassle - things just work.<br><br>Two - you have a subproject or component that youâ€™re either vendoring or isnâ€™t being updated too often, and you just want an easy copy on hand. To provide an example, in my dot files, if thereâ€™s a vim plugin I want I can just add it as a git submodule, and itâ€™s done. I donâ€™t care about the history. I donâ€™t need to be at the latest version. I donâ€™t plan on doing a lot of work on that code myself. Since this entire workflow is static, things work fine.<br><br>Three - Thereâ€™s a part of your repository that youâ€™re delegating to another party. Letâ€™s say youâ€™re paying someone to write a plugin for a project youâ€™re using, and you need to develop on the main codebase. In this case, the plugin repository is chiefly developed by the plugin developers, so they own the repo and periodically theyâ€™ll tell you when to update submodule commits. Submodules are great for dividing responsibilities like this, assuming that thereâ€™s not frequent updating.<p> </p>
</div></blockquote>
<p>Right on! #2 seems right up my alley.</p>
<p> </p>
<p>However, everyone in the git universe abandoned them over the last couple of years because of several issues with brittleness and complex git workflows.</p>
<p> </p>
<p><a href="https://github.com/cristibalan/braid" rel="external nofollow">https://github.com/cristibalan/braid</a></p>
<blockquote data-ipsquote="" class="ipsQuote"><div>Vendoring allows you take the source code of an external library and ensure it's version controlled along with the main project. This is in contrast to including a reference to a packaged version of an external library that is available in a binary artifact repository such as Maven Central, RubyGems or NPM <strong>[ed: or VI Package Network]</strong>.<br><br>Vendoring is useful when you need to patch or customize the external libraries or the external library is expected to co-evolve with the main project. The developer can make changes to the main project and patch the library in a single commit.<br><br>The problem arises when the external library makes changes that you want to integrate into your local vendored version or the developer makes changes to the local version that they want integrated into the external library.</div></blockquote>
<p> </p>
<p>Still, I can't help but wonder if these complaints would be minimized in my use case. Then a really important, LabVIEW-specific issue hit me:</p>
<p> </p>
<p><abbr title="LabVIEW">LV</abbr> code is compiled to its version, and it can't be opened by an older version of the <abbr title="LabVIEW">LV</abbr> dev environment. I wouldn't be able to push changes made in a local submodule back to the remote library repo unless my code were back-saved to the remote's version of <abbr title="LabVIEW">LV</abbr>. (For example, I made a <a href="https://github.com/NISystemsEngineering/STMMessaging/pull/8" rel="external nofollow">pull request against NI's STM repository</a> recently but had to leave my code in a later version than theirs.)</p>
<p> </p>
<p>How the heck do we use tools like submodules/externals and the fork-pull workflow without being forced to upgrade all our <abbr title="LabVIEW">LV</abbr> code to the latest version (and re-test it, often against RT or FPGA hardware) every year when NI releases a new runtime? That's a dealbreaker for me because of the risk involved in upgrading existing projects to new drivers, runtimes, etc. (I've seen bugs introduced with a new version of <abbr title="LabVIEW">LV</abbr> that broke previously working code.)</p>
<p> </p>
]]></description><guid isPermaLink="false">18925</guid><pubDate>Tue, 07 Apr 2015 03:46:15 +0000</pubDate></item><item><title>automatic builds with GitLab</title><link>https://lavag.org/topic/18898-automatic-builds-with-gitlab/</link><description><![CDATA[<p>Anyone using, are there recommendations or tips to share? Following to my whines for a serious internal SCC, I got my IT to install Gitlab CE on an internal server, and I'm happily tucking with it so far. I see that Gitlab should have a product called Gitlab CI (continuous integration) as well as the option of webhooks to external services, I wonder what else it would take to have the functionality working, with private availability of the build. E.g. which build script, where sits <abbr title="LabVIEW">LV</abbr>, cross-platform builds if relevant, periodicity of the build (every commit? nightly? tagged? only last?) etc.</p>
<p> </p>
<p>General pointers to how automated builds (specifically <abbr title="LabVIEW">LV</abbr>) are handled by other SCC also appreciated, for my education.</p>
]]></description><guid isPermaLink="false">18898</guid><pubDate>Tue, 24 Mar 2015 12:26:40 +0000</pubDate></item><item><title><![CDATA[Y&#39;all see this yet?]]></title><link>https://lavag.org/topic/18856-yall-see-this-yet/</link><description><![CDATA[<p><a href="http://bitquabit.com/post/unorthodocs-abandon-your-dvcs-and-return-to-sanity/#" rel="external nofollow">http://bitquabit.com/post/unorthodocs-abandon-your-dvcs-and-return-to-sanity/#</a></p>
<p> </p>
<p>He calls forward lots of niggling doubts that I've deliberately squelched over the last few years, but I can easily recall a time when trying to learn gitflow that I paused and asked myself, "Is SVN really so bad that I'm spending my evenings trying to do this instead?"</p>
]]></description><guid isPermaLink="false">18856</guid><pubDate>Wed, 04 Mar 2015 05:08:43 +0000</pubDate></item><item><title>Labview project file binding to Perforce depot location</title><link>https://lavag.org/topic/18864-labview-project-file-binding-to-perforce-depot-location/</link><description><![CDATA[<p>Hi, folks.  I've successfully integrated my Labview code with my corporate Perforce source code control server.  I got some help from a PDF document posted on NI.com titled Using Perforce With Labview (2009).  However I have a question on whether I need to repeatedly point Labview SCC configuration to a different location every time I open a different Labview project file.  The PDF document says: <br> </p>
<blockquote data-ipsquote="" class="ipsQuote"><div>You now have a Perforce workspace with revision #0 of each file checked in. The convention from here on out, is to add files to the LabVIEW project file. Each time you do this, LabVIEW will automatically prompt you to add the file to Source Code Control. Before you can do this, however, you still need to configure LabVIEW's Source Control. In the LabVIEW "Tools" menu, select Source Control -&gt; Configure Source Control.<br><br>Select "Perforce SCM" for the Source Control Provider Name. Click the "Change" button next to Source Control Project to configure the project. Navigate to the LabVIEW .lvproj project file that you wish to bind to.<br><br>*NOTE* - you will need to change this for each unique customer or project that you are binding to. Since you can have multiple workspaces and multiple projects, you must make sure this is configured properly for the Perforce workspace that you are bound to.<p> </p>
</div></blockquote>
<p> </p>
<p>Is the author saying that I need to click Change and then navigate to a different SCC depot location for each different Labview project file I work on?  And then does that project remember that depot location for next time it's opened, or is only one location remembered as the global Labview SCC configuration option?</p>
<p> </p>
<p>Thanks.   -Joe Czapski</p>
]]></description><guid isPermaLink="false">18864</guid><pubDate>Fri, 06 Mar 2015 19:27:59 +0000</pubDate></item><item><title>SCC, binary LV files, granularity, specific tools</title><link>https://lavag.org/topic/18781-scc-binary-lv-files-granularity-specific-tools/</link><description><![CDATA[<p>Maybe a blurb of noob faqs, so apologies if I'm asking the obvious.</p>
<p> </p>
<p>I have used different SCCs for various text-based projects in the past, like cvs, svn, git, and I'm familiar with the idea.</p>
<p>Now I decided to adopt git (namely hosting at gitlab.com this time, for convenience) for a big <abbr title="LabVIEW">LV</abbr> project which screamed for it since its beginning, and I'm tucking fine with that.</p>
<p>.</p>
<p>However, git itself is agnostic in treating all my vis, llbs and so on like binary files. That means to me that my repository grows in time at a quite fast rate, and that diffs are completely obscure.  I am not able to tell for instance if an llb changed because a single vi was recompiled or because of more extensive changes. That may ultimately constrain my strategy of committing, for example avoiding llbs at all in favor of subdirectories in order to gain in granularity, or reducing the frequency of updates to limit size blowup.</p>
<p> </p>
<p>I'm also missing specific tools for, say diffing and blaming files in a <abbr title="LabVIEW">LV</abbr> meaningful way. This in contrast to text-based languages. In the present project my only text files are .lvproj, .lvlib, some xml configuration files and lyx documentation, not the core code, so that doesn't bring me very far. To compare two snapshots of the project I presume that I would have to create two copies of it on disk, rename some relevant VIs, load both copies in <abbr title="LabVIEW">LV</abbr> and compare them... not inspiring as a workflow. Is it all one can get, or am missing the obvious?</p>
<p> </p>
<p>I mean, after all what is this Tools/Options/Source Control/Provider name thing, and why does it display "&lt;None&gt;" in the pulldown? Oh, help: "<em>On non-Windows platforms, LabVIEW runs a query to determine if Perforce is installed</em>". So what, I can do SCC only if I depend on a single commercial service provider? Can't believe...</p>
]]></description><guid isPermaLink="false">18781</guid><pubDate>Fri, 30 Jan 2015 13:55:29 +0000</pubDate></item><item><title>Renaming files with Mercurial</title><link>https://lavag.org/topic/17665-renaming-files-with-mercurial/</link><description><![CDATA[<p>Hi there,</p>
<p> </p>
<p>I've been experimenting with using Mercurial for my SCC.  I've come up against this problem and I'm wondering if anyone else has found a good way of dealing with it...</p>
<p>If I want to rename a file that is in the repository then I would use the Mercurial Rename function so that all the history is kept.  However, if I do this then the LabVIEW project doesn't know the file has been renamed and gets upset that it can no longer find it.</p>
<p>If I do it the other way round and rename the file within the LabVIEW project and commit the changes, then Mercurial things I've jsut removed the old file and added the new and the history is lost.</p>
<p>Can anyone help with this please?</p>
<p> </p>
<p>Thanks,</p>
<p> </p>
<p> </p>
<p>Martin</p>
<p>LabVIEW 2013 | CLA</p>
]]></description><guid isPermaLink="false">17665</guid><pubDate>Wed, 23 Oct 2013 14:30:59 +0000</pubDate></item><item><title><![CDATA[Can I download a &#34;config file&#34; from Git at run-time?]]></title><link>https://lavag.org/topic/18546-can-i-download-a-config-file-from-git-at-run-time/</link><description><![CDATA[<p>Hello <abbr title="LabVIEW">LV</abbr> gurus,</p>
<p> </p>
<p>I'm getting ready to write a utility that will allow me to "download a file from Git" at run-time. Disclaimer: I have not used Git much.. anyhow, I'm hoping I can leverage from any work done on this front.</p>
<p> </p>
<p>By the way, when I say "I'll write a utility" I'm thinking of C# or Python as the programming languages I would use. If in C# I can easily output a DLL and such would have a LabVIEW wrapper. If in Python, I'll try to create an executable with parameters, then I'll put a LabVIEW wrapper around it. I have written several utilities this way, therefore, I am certain this approach will work.... Someone could ask though: "is your approach the right one"? let's just assume it is :-) but, I'm open to ideas if you feel like sharing.</p>
<p> </p>
<p>Details:</p>
<p>My test program -written in LabVIEW- uses two types of configuration files (.ini, .csv). </p>
<p>The CSV files I use have a version hardcoded in it   e.g.   version, 14.9.29.01    (year.month.day.rev)</p>
<p>Additionally, I have a table (SQL database) that keeps the "RELEASED file version-repository version relationship". E.g.   14.9.30.01, 123</p>
<p>At run time, my <abbr title="LabVIEW">LV</abbr> program gets the local file version (LocalFileVer = 14.9.29.01) and also retrieves both, the file version, and the repository version    ReleasedFileVer=14.9.30.01, RepoVer=123 from the database.</p>
<p>IF my "LocalFileVer"  DOES not match the "ReleasedFileVer" I would like to download file ver "123" from Git.</p>
<p> </p>
<p>Has anyone done something similar to what I have tried to describe here? if yes, would you mind sharing? I'm looking specifically to download files from Git though, and not other version control apps.</p>
<p> </p>
<p>By the way, I have been able to do what is described above for SVN. Unfortunately I don't have access to the source code... At the time I was doing contract work on a machine that was not "mine". Anyhow, at the time I used C# to write the utility. </p>
<p> </p>
<p>I look forward to any comments.</p>
<p>Cheers!</p>
<p> </p>
]]></description><guid isPermaLink="false">18546</guid><pubDate>Tue, 30 Sep 2014 21:41:36 +0000</pubDate></item><item><title>Issues with TFS and LabVIEW</title><link>https://lavag.org/topic/18315-issues-with-tfs-and-labview/</link><description><![CDATA[<p>I am getting started with using TFS for source code control with LabVIEW.  I am using TFS 2013 and LabVIEW 2013.</p>
<p> </p>
<p>I have a few questions:</p>
<p> </p>
<p>What is the best way to move files from one project folder to another?  The "move on disk" doesn't appear to be a good option.  I want to be able to make file moves if needed and don't want my project to end up blowing up with conflicts.</p>
<p> </p>
<p>It appears that once source control is set up in LabVIEW that all check in/check out operations need to happen in LabVIEW and not TFS or windows explorer.  Correct?</p>
<p> </p>
<p>I just noticed the "Include callers when checking out files" option.  I am assuming that is probably a good option to select so that they callers will be modified and saved as needed.</p>
<p> </p>
<p>Does having files set up as auto populating have any negative effects on how source control is done?</p>
<p> </p>
<p> </p>
<p>Unfortunately it appears that we are stuck using TFS for source control since the firmware developers are using it and it is a company application now.</p>
<p> </p>
<p>Any help or guidance you can provide would be appreciated.</p>
<p> </p>
<p>Thanks.</p>
<p> </p>
<p>Joe</p>
<p> </p>
<p> </p>
<p> </p>
]]></description><guid isPermaLink="false">18315</guid><pubDate>Wed, 25 Jun 2014 22:27:01 +0000</pubDate></item><item><title>Labview Tortoise Git Integration [LV_TortoiseGit v0.8.1.1]</title><link>https://lavag.org/topic/18332-labview-tortoise-git-integration-lv_tortoisegit-v0811/</link><description><![CDATA[<p>All,</p>
<p> </p>
<p>Recently I moved from SVN to GIT as my source control and revision manager.  I'm still getting used to everything so i don't consider myself an expert yet, but i really missed the Project Provider options that I used for SVN source control within the project window.  </p>
<p> </p>
<p>I'm releasing an open source beta project provider for TortoiseGit Integration.  This addon is very similar to the current SVN options but was developed entirely from scratch.  Currently this provider requires TortoiseGit to perform most of the Source Control Actions.  I know a lot of you on here have recently switched to sourcetree, however, unlike TortoiseGit they do not currently offer a command line interface yet for windows that i could find.  I've tried to make this project flexibile and if they offer a command line for windows eventually it should be fairly quick to re-factor for that.  </p>
<p> </p>
<p><strong>The project can be found here: <a href="https://bitbucket.org/jed_d/lv_tortoisegit" rel="external nofollow">https://bitbucket.org/jed_d/lv_tortoisegit</a></strong></p>
<p> </p>
<p>Addon Features</p>
<ul><li>Tortoise Git Icon Overlays within Labview IDE
</li>
<li>Tortoise Git Commands from within Labview IDE
</li>
<li>Ability to directly reload a project from within the Project Window, as well as prompts to reload the project when performing actions that require a reload.
</li>
<li>Open Git Bash from project window<br></li>
</ul><p></p>
<p> </p>
<p>I'm hoping some of you will have a chance to try this out and let me know of any issues.  I would like to track issues on bitbucket if possible so that they are all in one place, but i will also be checking these post for issues as well.  </p>
<p> </p>
<p>Feel free to fork the project and hack on it yourself.  If you come up with something decent and don't mind sharing, send a pull request.  </p>
<p> </p>
<p> </p>
<p>One initial issues i'm hoping the community can help with is building the package for older versions of <abbr title="LabVIEW">LV</abbr>.  Currently i only have access to 2013 so i am only able to build the package for this version.  If anyone has a change to pull down the repo and build it for older versions please do.</p>
<p> </p>
<p>Another question i have for the community is the license i currently have on the project.  This is my first open source project of any kind so i wasn't sure what license to put on it.  I did not want to be too restrictive so i went with a BSD license.  If any of you see an issue with this please let me know as I'm open to suggestions.</p>
]]></description><guid isPermaLink="false">18332</guid><pubDate>Fri, 04 Jul 2014 22:19:45 +0000</pubDate></item><item><title>How should I set up Git for LabVIEW?</title><link>https://lavag.org/topic/16300-how-should-i-set-up-git-for-labview/</link><description><![CDATA[<p>I've search the internet, but it seems difficult.</p>
<p>Can anybody refer me to a proper URL?</p>
]]></description><guid isPermaLink="false">16300</guid><pubDate>Thu, 01 Nov 2012 02:44:59 +0000</pubDate></item><item><title>Help define canonical LabVIEW.gitignore template for GitHub</title><link>https://lavag.org/topic/16598-help-define-canonical-labviewgitignore-template-for-github/</link><description><![CDATA[<p>While creating a new a new repo in GitHub, I noticed there is not a template .gitignore for LabVIEW -- let's make one!</p>
<p> </p>
<p>After contacting GitHub support asking the proper channel for submitting a .gitignore to their set of templates, i received the following response: <em>"We have an open source repository, <a href="https://github.com/github/gitignore" rel="external nofollow">https://github.com/github/gitignore</a> that we use to accept contributions for the gitignore templates. The way we accept new contributions is through pull requests"</em> From the readme.md on that repo, <em>"Since this repo includes a large and diverse number of programming languages, frameworks, editors, and ecosystems, it's <strong>very helpful</strong> if you can provide a link to information supporting your pull request"</em> -- we will use this thread and public discussion as documentation and justification for <span style="font-family:courier, monospace;">LabVIEW.gitignore</span>.</p>
<p> </p>
<p>So, I went ahead and forked the repo and created a new <span style="font-family:courier, monospace;">LabVIEW.gitignore</span>, found here: <a href="https://github.com/wirebirdlabs/gitignore/blob/master/LabVIEW.gitignore" rel="external nofollow">https://github.com/wirebirdlabs/gitignore/blob/master/LabVIEW.gitignore</a></p>
<p> </p>
<p>Please, feel free to contribute to this thread, and once we've come to a consensus, hopefully GitHub will accept the Pull Request.</p>
<p> </p>
<p>Here's the contents of the file right now:</p>
<p> </p>
<div><pre class="ipsCode prettyprint"># <a href="http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/lv_file_extensions/*.aliases*.lvlps" rel="external nofollow">http://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/lv_file_extensions/*.aliases*.lvlps</a></pre></div>
<div>How can this be improved?</div>
]]></description><guid isPermaLink="false">16598</guid><pubDate>Sun, 24 Feb 2013 02:06:10 +0000</pubDate></item><item><title>Mercurial Central Repository Server Structure</title><link>https://lavag.org/topic/17994-mercurial-central-repository-server-structure/</link><description><![CDATA[<p>Hello,</p>
<p> </p>
<p>I'm in the process of setting up a server to serve all of our yet-to-be-created Mercurial repositories from.  Given in Hg that each project will have its own repository it seems to me that a flat folder structure is the way to go ie:</p>
<p> </p>
<p>CodeBigApplication1</p>
<p>CodeBigApplicationN</p>
<p>CodeSmallApplication1</p>
<p>CodeUsefulLibrary1</p>
<p>CodeUsefulLibaryN</p>
<p> </p>
<p>Although with all the applications and libraries that get created this will mean there are lots/hundreds of repositories with no sub-folder structure, I can't see the benefit of organising the repositories into sub-folders.  In fact I can only see a benefit of not having them, ie simpler relative paths when an application uses a library, no funny grey areas on whether a library should fit into sub folder a or b etc.</p>
<p> </p>
<p>Any thoughts on this please? Am I missing something?</p>
<p> </p>
<p>Thanks,</p>
<p> </p>
<p> </p>
<p>Martin</p>
<p> </p>
<p> </p>
]]></description><guid isPermaLink="false">17994</guid><pubDate>Mon, 10 Feb 2014 08:44:09 +0000</pubDate></item><item><title>Distributed Version Controls Systems (DVCS) .... and SVN</title><link>https://lavag.org/topic/17827-distributed-version-controls-systems-dvcs-and-svn/</link><description><![CDATA[<p>We have a multi-site, multi-developer project.  The code uses LVOOP with LV2012 SP1.</p>
<p> </p>
<p>I am looking for suggestions, tools, etc to simplify checking in code (committing for SVN).  At the moment, we have to use SVN and it is unlikely to change. </p>
<p> </p>
<p>A quote from Jim K in February 2011:   "Jim Kring demo the <a href="http://jki.net/tortoisesvn-tool" rel="external nofollow">JKI TortoiseSVN Tool for LabVIEW</a> and talk about the next big thing: <a href="http://en.wikipedia.org/wiki/Distributed_revision_control" rel="external nofollow">Distributed Version Controls Systems</a> (DVCS) and the benefits they will bring to software engineering in LabVIEW."</p>
<p> </p>
<p>Did anything evolve from this?  Does the JKI Tool support multi-user in the sense that it facilitates commiting code with SVN without having to resolve any conflicts.  I am mostly concerned with mis-matches with the lvproj, but SVN should be able to handle that with Merge or Compare functions. </p>
<p> </p>
<p>Any comments on this topic?  Euh... yes, I am aware that there are other Source Control than SVN, but that is way beyond the realm of my influence.  <img src="https://lavag.org/uploads/emoticons/default_sad.png" alt=":("></p>
<p> </p>
<p>Thanks,</p>
<p> </p>
<p>RayR</p>
]]></description><guid isPermaLink="false">17827</guid><pubDate>Tue, 10 Dec 2013 16:45:36 +0000</pubDate></item><item><title>Git (DVCS) Workflows for LabVIEW</title><link>https://lavag.org/topic/17749-git-dvcs-workflows-for-labview/</link><description><![CDATA[<p>Hey everyone, I was just curious how many of you are using Git and what workflows you have found to work well with git and LabVIEW? Do you use the same workflow no matter the project, or the stage in the project? What about depending on the number of developers. I'm just looking for what others have found to be successful so I can avoid reinventing the wheel. This doesn't have to be only with relation to Git, but I'm assuming a workflow with regards to Mercurial will still translate relatively nicely. So, more generally, I suppose this question has to do with DVCS workflows.  I know there are lists of them out there but I want to know what <em>you</em>, the LabVIEW developer, finds to work best. Feel free to add into the workflow github and bitbucket tidbits, since I am playing around with both of these to host the repositories as well.</p>]]></description><guid isPermaLink="false">17749</guid><pubDate>Thu, 21 Nov 2013 21:49:36 +0000</pubDate></item><item><title>IBM Rational Team Concert</title><link>https://lavag.org/topic/16998-ibm-rational-team-concert/</link><description><![CDATA[<p>Anyone out there using IBM Rational Team Concert for SCC?  I have to explore this as an option since it conforms to my company's software policy.  My team's current tool is subversion which has been working fine for the last several years.  I'd prefer to not have to manage our own servers at this point which means we may have to migrate to something our IT group is more comfortable with.</p>
<p> </p>
<p><a href="https://jazz.net/products/rational-team-concert/" rel="external nofollow">https://jazz.net/products/rational-team-concert/</a></p>
]]></description><guid isPermaLink="false">16998</guid><pubDate>Mon, 29 Jul 2013 19:16:22 +0000</pubDate></item><item><title>which Subversion client for MacOS X?</title><link>https://lavag.org/topic/12897-which-subversion-client-for-macos-x/</link><description><![CDATA[<p>Hi all,</p>
<p>I'm about to pick a Subversion client for MacOS X to use with LabVIEW, I read a couple of reviews (mostly from <a href="http://stackoverflow.com/questions/899/best-subversion-client-for-mac-os" rel="external nofollow">here on stackoverflow</a>) but before choosing I'd like to have some feedback from LabVIEW users.</p>
<p>Anyone can recommend one?</p>
<p>Thanks in advance.</p>
]]></description><guid isPermaLink="false">12897</guid><pubDate>Tue, 17 Aug 2010 15:01:11 +0000</pubDate></item><item><title>Remote repository hosting</title><link>https://lavag.org/topic/15618-remote-repository-hosting/</link><description><![CDATA[<p>I'm look for recomendations, suggestions, experiences, etc. folks have had using remote repository hosting with places such as bitbucket or sourceforge, etc.  I'm thinking of switching to remote hosting and I would like to hear how this has worked out for others.  I'll probably be using Mercurial for my source code control.  Are there any useful advantages to using places like Bitbucket as opposed to just having a remote directory out there in the 'cloud' somewhere for repository hosting?</p>]]></description><guid isPermaLink="false">15618</guid><pubDate>Thu, 29 Mar 2012 19:41:03 +0000</pubDate></item><item><title>Mercurial Advice</title><link>https://lavag.org/topic/16237-mercurial-advice/</link><description><![CDATA[<p>Hi,</p>
<p>I'm looking for some advice from anyone who has been using mercurial with LabVIEW.</p>
<p>Firstly I have just been trying some branching and merging. After a merge, having been configured for merge using <a href="https://bitbucket.org/AndreasS/mercurial-labview-integration" rel="external nofollow">https://bitbucket.or...iew-integration</a> I see some .orig files getting left in the repository. Is this a failing on LabVIEWmerge.exe to clean it up or is it the way mercurial works?</p>
<p>I am interested in the DVCS camps because of merging. I currently use SVN, primarily as a lone developer. I like not having to maintain a separate central repo and the improved merging, primarily from the point of having sandbox branches. I like that in Git, if I have an experimental branch that doesn't work out I can delete it. Is there a similar workflow with bookmarks that can be achieved or am I going to end up with a load of bookmarks littered around the place?</p>
<p>I liked that Mercurial integrates better with Windows and is a simpler way to learn DVCS than Git, but I do also like the look of branching in Git and think the extra flexibility may be a killer feature. That said my general opinion when you get these 'holy wars' is that there is probably no real difference between them, else people wouldn't be arguing so much over minor details!</p>
<p>Cheers,</p>
<p>James</p>
]]></description><guid isPermaLink="false">16237</guid><pubDate>Fri, 12 Oct 2012 12:32:20 +0000</pubDate></item><item><title>TSVN Toolbar for LabVIEW from ViewPoint Systems</title><link>https://lavag.org/topic/14855-tsvn-toolbar-for-labview-from-viewpoint-systems/</link><description><![CDATA[<p>Has anyone got experience with the <a href="http://www.viewpointusa.com/prod_tsvn.php" rel="external nofollow">TSVN Toolbar for LabVIEW</a> from ViewPoint Systems?  The features seem pretty neat (user manual <a href="http://www.viewpointusa.com/tsvn/VSI%20TSVN%20Toolbar%20Manual%20-%2027July010.pdf" rel="external nofollow">here</a>), but I'm wondering why I hadn't heard of it before now...</p>]]></description><guid isPermaLink="false">14855</guid><pubDate>Thu, 01 Sep 2011 12:47:18 +0000</pubDate></item><item><title>SCC scenarios to handle EXE + plugins</title><link>https://lavag.org/topic/16243-scc-scenarios-to-handle-exe-plugins/</link><description><![CDATA[<p>Hi all,</p>
<p>I've recently started using Subverion + TortoiseSVN to manage the source code of LabVIEW projects and I'm now getting to the point where I don't really know what I should do ; untill I had no banches and just revisions and a couple of tags for shipped versions I could handle it.</p>
<p>Now I need to go further than that and manage a large project that consist in an EXE and 3 plugins. The EXE will be shipped to many customers and each customer will have different "flavours" of the plugins.</p>
<p>I'm not feeling confortable enough with SCC usage to decide how to manage this scenario. Multiple repos? Sub-repos (does it exist?), one repo and 1 branch per customer?</p>
<p>The whole source code sums up to about 2000 VIs.</p>
<p>The EXE and the plugins have subVIs in common (some that are user.lib and some that are part of the project).</p>
<p>Any advice greatly appriciated.</p>
]]></description><guid isPermaLink="false">16243</guid><pubDate>Mon, 15 Oct 2012 07:58:25 +0000</pubDate></item><item><title>Anyone using Mercurial for source code control in LabVIEW?</title><link>https://lavag.org/topic/11916-anyone-using-mercurial-for-source-code-control-in-labview/</link><description><![CDATA[<p>Has anyone used <a href="http://mercurial.selenic.com/" rel="external nofollow">Mercurial</a> for source code control in LabVIEW? It looks like it might be the next step in the evolution: CVS ==&gt; SVN ==&gt; <em>something that can merge/branch worth a damn</em>.</p>
<p>Cheers,</p>
]]></description><guid isPermaLink="false">11916</guid><pubDate>Fri, 12 Feb 2010 05:32:52 +0000</pubDate></item><item><title>Which SCC software between Git and Hg should I use?</title><link>https://lavag.org/topic/16083-which-scc-software-between-git-and-hg-should-i-use/</link><description><![CDATA[<p>Tortoise SVN seems to be the most stable, but I prefer to use a distributed SCC system.</p>
<p>Since my boss is impatient and impetuous(probably ADHD because his son has ADHD), I think I can't afford to fiddle with SCC for more than a week.</p>
<p>I read all those threads about Tortoise HG in this forum, but I'd like to give TortoiseGit a shot.</p>
<p>The choice doesn't entirely depend on my preference but would have to be the more stable one.</p>
<p>Which one is more stable?</p>
<p>Should I just stick to Tortoise SVN for stability?</p>
]]></description><guid isPermaLink="false">16083</guid><pubDate>Thu, 23 Aug 2012 01:55:28 +0000</pubDate></item><item><title>Free Version of Perforce now Supports 20 Users</title><link>https://lavag.org/topic/16061-free-version-of-perforce-now-supports-20-users/</link><description><![CDATA[<p>If you have considered using Perforce (the SCC NI uses), but put off by the price, or the 2 user limit for the free version, you may be interested in the following. The free version now allows up to 20 users and 20 workspaces with unlimited files. More information here:</p>
<p><a href="http://www.perforce.com/downloads/try" rel="external nofollow">http://www.perforce.com/downloads/try</a></p>
]]></description><guid isPermaLink="false">16061</guid><pubDate>Fri, 17 Aug 2012 04:40:03 +0000</pubDate></item><item><title>LabVIEW Source Control Provider</title><link>https://lavag.org/topic/12482-labview-source-control-provider/</link><description><![CDATA[<p>I am thinking about creating a mercurial Source Control Provider client.</p>
<p>I have created a new provider based on the existing Perforce.</p>
<p>If I copy this in the Provider folder of LabVIEW I get an extra provider in the SCC options dialog.</p>
<p>However selecting the new provider causes an error.</p>
<p>Does anyone have some pointers about the setup of this provider feature?</p>
<p>Ton</p>
]]></description><guid isPermaLink="false">12482</guid><pubDate>Wed, 02 Jun 2010 06:16:58 +0000</pubDate></item><item><title>Merging with Mercurial</title><link>https://lavag.org/topic/15659-merging-with-mercurial/</link><description><![CDATA[<p>Has anyone using Mecurial been able to get merging working with Labview 2011?  If so could you please walk me through how you did it?  I've been trying to switch from SVN to Mercurial and getting merging working is my last hurdle.</p>
<p>I've installed LVMergeHG and I have it specified as the tool to use for 3-way merging in the Hg global settings. When I open the TortoiseHg Workbench window I can see that I have a branch that I want to merge back into the main trunk. If I select the 'Diff to local..." option, LVDiff runs and I can see the to VI's I want to merge together. If I select the 'Merge with local" option I get a popup window, Prepare to merge, that shows info on the two VI's I want to merge. When I continue by clicking the 'Next' button I get the following:</p>
<p>% hg --repository C:\Documents and Settings\D\Desktop\ZZ merge --verbose --tool=internal:fail 6</p>
<p>resolving manifests</p>
<p>0 files updated, 0 files merged, 0 files removed, 1 files unresolved</p>
<p>use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon</p>
<p>[command returned code 1 Mon Apr 09 16:33:47 2012]</p>
<p>I can't see anything that looks like LVMerge is trying to run. I'm sure I'm probably doing some wrong or don't have something setup correctly. Any ideas?</p>
]]></description><guid isPermaLink="false">15659</guid><pubDate>Thu, 12 Apr 2012 14:22:17 +0000</pubDate></item><item><title>Source Code Control Basics</title><link>https://lavag.org/topic/15436-source-code-control-basics/</link><description><![CDATA[<p>Most of our projects in the past have been single developer based.  We are now trying to get a common code base on new projects and there will be multiple developers.  The development is almost all LVOOP, but I am not sure that really matters.  Also, it is likely we will be using TFS but I don't think this matters for my initial questions at least.</p>
<p>I played around with Tortoise/SVN and the file based repository and had one other developer along for the ride, so if you want to respond with that as a reference, that is OK too.</p>
<p>This first question is a very basic one.  Sometimes a small change in a VI has an incredible echo in other VIs.  I am not talking about changing an API for a method.  Clearly that would require callers to be updated.  I am remembering a change to say the icon of a VI and all of a sudden here is a huge impact.  There may be other things. I guess my question is LabVIEW retains the interdependencies, how do you get a handle on these changes as they might impact another developer of a 'somehow' related module?</p>
]]></description><guid isPermaLink="false">15436</guid><pubDate>Thu, 02 Feb 2012 15:38:46 +0000</pubDate></item><item><title>SVN keyword substitution on FP</title><link>https://lavag.org/topic/9391-svn-keyword-substitution-on-fp/</link><description><![CDATA[<p>Hello All,</p>
<p>What is the most efficient way to get some SVN properties like Revision and Author on the VI front panel (e.g. OpenG VIs)? For text files the SVN keyword substitution works very well, for binary files (like VIs) I'm not sure how to handle this without writing some automation code.</p>
<p>I remember that there has been an article about CVS and keyword substitution in LTR once and was looking for something similar for SVN. To my surprise I did not found a clear article yet.</p>
<p>Thanks for any tips?</p>
<p>Donald</p>
]]></description><guid isPermaLink="false">9391</guid><pubDate>Sat, 07 Feb 2009 10:54:24 +0000</pubDate></item><item><title>SCC software</title><link>https://lavag.org/topic/8204-scc-software/</link><description><![CDATA[<p>I'm contemplating the idea of using SCC for my (rather small) development projects and would like to know which SCC software people are using out there. There's a list of supported SCC programs on NI website but I have no clue which ones are better suited for LabVIEW projects.</p>
<p>Corrolary question: Are there any good open-source SCCs?</p>
]]></description><guid isPermaLink="false">8204</guid><pubDate>Wed, 13 Aug 2008 14:23:24 +0000</pubDate></item><item><title>TortoiseSVN setup question</title><link>https://lavag.org/topic/12491-tortoisesvn-setup-question/</link><description><![CDATA[<p><span style="font-family:Arial;"><span style="font-size:10px;"><span style="color:#0000ff;">We're a relatively small development group. There will probably be at most 3 people (but usually just me) accessing the code. Do you know if it's necessary to have a special server or could we just have the repository on a network drive? If we do set it up that way at first would it be hard to migrate to a server later if necessary? </span></span></span></p>
<p><span style="font-family:Arial;"><span style="font-size:10px;"><span style="color:#0000ff;">George</span></span></span></p>
<p><span style="font-family:Arial;"><span style="font-size:10px;"><span style="color:#0000ff;"> </span></span></span></p>
]]></description><guid isPermaLink="false">12491</guid><pubDate>Thu, 03 Jun 2010 13:27:31 +0000</pubDate></item><item><title>TSVN Log export</title><link>https://lavag.org/topic/15178-tsvn-log-export/</link><description><![CDATA[<p>I have been using TSVN for a while and have found it very helpful.  Currently I need to do an export of the repo log and that export needs to take the form of an ASCII dump of rev num, date, author, comment such that I can do some re-formatting and send it off as a report.  I can't find any good references about how to actually do this.  Anyone have any good suggestions? Time is of the essence here.</p>
<p>Thanks in advance,</p>
<p>val</p>
]]></description><guid isPermaLink="false">15178</guid><pubDate>Tue, 08 Nov 2011 10:39:20 +0000</pubDate></item><item><title>Recompiled VIs + SCC</title><link>https://lavag.org/topic/11995-recompiled-vis-scc/</link><description><![CDATA[<p>I ran into a nasty issue where a build for Real_Time was returning incorrect data!</p>
<p>The solution was to recompile the top level VI and save all callers (have to save as its RT).</p>
<p>The problem arose as most VIs were read-only as they were in SCM.</p>
<p><strong>What is the standard protocol for this from SCC point-of-view?</strong></p>
<p>Should I check out the VIs, compile/build/archive-build, then check them back in and tag them as "recompiled" or similar?</p>
<p>Or should I check out the VIs, compile/build/archive-build, then get last revision to overwrite the new local copies?</p>
<p>What do you guys do?</p>
<p>Cheers</p>
<p>JG</p>
]]></description><guid isPermaLink="false">11995</guid><pubDate>Fri, 26 Feb 2010 04:26:28 +0000</pubDate></item><item><title>revision control and 3rd party add ons</title><link>https://lavag.org/topic/15054-revision-control-and-3rd-party-add-ons/</link><description><![CDATA[<p>Recently I was tangentially involved in a software management mess where the fact that a 3rd party LabVIEW add on was not in our source control (SVN) made it very difficult to build a new binary of a previous revision.</p>
<p>This particular add on has many revisions. It is a work in progress as we and the 3rd party do R&amp;D on the application. In addition they are primarily PhD's in something other the Software Engineering. The code shows this and noteably the pinouts to the applications VIs change from revision to revision.</p>
<p>I think the OO jargon for this is Highly Coupled, meaning certain revision of our code work only with certain revisions of thier code.</p>
<p>We have a situation where instead of any developer being able to do a build at any time, only one or two machine can succesfully build this project.</p>
<p>I was reading other threads on this forum, specifically <a href="http://lavag.org/topic/13492-reuse-packages-and-scc/" rel="">http://lavag.org/topic/13492-reuse-packages-and-scc/</a> and it looks like VIPM might be an answer. But I have specific questions about how it would work.</p>
<p>Apparently there is a VIPC file that would be committed to SVN or any SCC. When exporting, a developer would use this file in some way to verify that the right version of the packages are installed. Is this correct? What is the "some way"?</p>
<p>Will this process downgrade the 3rd party add on as needed?</p>
<p>Presumably also the VIPM would in some way make sure there were not two version of the packages in the VIPC, or do something else to prevent cross-linking?</p>
<p>So the way I imagine the use would be:</p>
<p>Checkout the code from a previous revision.</p>
<p>Update the 3rd party add ons to the correct version based on the VIPC file.</p>
<p>Build the binary and installer.</p>
<p>Delete working folder.</p>
<p>Or if a we needed a branch of a previous revision say 5.1 from 5.</p>
<p>Checkout version 5.</p>
<p>Update the 3rd party add ons to the correct version based on the VIPC file.</p>
<p>Make the required 5.1 revisions.</p>
<p>Check the VIPC for new dependencies.</p>
<p>Build/Test/Validate etc...</p>
<p>Commit changes including VIPC.</p>
<p>Is that right and does VIPM handle the package updates and dependency checks?</p>
<p>Thanks!</p>
]]></description><guid isPermaLink="false">15054</guid><pubDate>Tue, 11 Oct 2011 18:29:01 +0000</pubDate></item><item><title>TSVN integration with LV and Hackystat</title><link>https://lavag.org/topic/14761-tsvn-integration-with-lv-and-hackystat/</link><description><![CDATA[<p>Hi,</p>
<p>At the moment I'm running TSVN on the server and commit/update/checkout every day manually through windows explorer.</p>
<p>My goals are to make my work more efficient by:</p>
<p>1. Making TSVN accessible from the tools menu like JKI TSVN is.</p>
<p>2. Adding Hackystat telemetries into TSVN.</p>
<p>3. Adding TSVN to LabVIEW's source control providers.</p>
<p>4. Making TSVN work with LabVIEW blocks from the pallet Connectivity-&gt;Source Control like SCC Open SCC Project vi.</p>
<p>5. Adding a Bug Tracking capability to TSVN.</p>
<p>The way I thought to implement it is:</p>
<p>1. Since I can run TSVN from the command prompt and since I can add vis into <abbr title="LabVIEW">LV</abbr> tools menu I thought I can add update/commit to the current vi/project I'm using.</p>
<p>2. Hackystat <a href="http://en.wikipedia.org/wiki/Hackystat" rel="external nofollow">http://en.wikipedia.org/wiki/Hackystat</a> is supposed to integrate with TSVN. I don't yet know how. Did anyone here try it before? Do you guys use any kind of a metric system both to collect data about the work being done and for the way users are using your code like time efficiency parameters and so on?</p>
<p>3. I have no clue. Help someone?</p>
<p>4. I guess it would be possible only after I complete stage 3 since I got an error trying to detect with those block if I'm using TSVN. Am I right?</p>
<p>5. I created a structure that allows me to handle bugs by each user to each project with permissions and all. Now I only have to write a GUI that allows users to report a bug that will save not only the description but also the programs state and a video by Jing. Then, I would like to load the report folder that contains LVM file of the configuration and the video to TSVN. Once I update the bug folder I will run Data Finder on it to display the list and apply blocks like Merge Queries to find whatever I like. However, I don't know if it is the smart way to do it mainly because I didn't do such things in the past and I wonder what will happen if two people commit with conflicts.</p>
<p>I'd love to hear any comments and advice.</p>
<p>Thanks in advance,</p>
<p>Dror.</p>
]]></description><guid isPermaLink="false">14761</guid><pubDate>Wed, 17 Aug 2011 13:19:58 +0000</pubDate></item><item><title>Tortoise-SVN, tagging [only] top-level VI dependencies</title><link>https://lavag.org/topic/14746-tortoise-svn-tagging-only-top-level-vi-dependencies/</link><description><![CDATA[<p>Greetings!,</p>
<p>  	A quick search didn't reveal any titles appearing to address this specific question...</p>
<p>My application's source-code is organized under two directories - a project-specific directory where all the sub-VIs and directories are part of the application, and a "utility" directory which contains a hierarchy of generic functions used by many projects.</p>
<p>When releasing an application revision, (i think) it's necessary to create a tag in order to obtain a snapshot of applicable VIs, however, if the tag is applied to the "generic" folder, it will be applied to many VIs, the majority of which are not applicable to the release.</p>
<p>I'm relatively new to SVN and wondering if SVN and LabVIEW can be integrated in a way that would allow a tag to be applied to [only] the dependencies of a top-level VI.</p>
<p>Any ideas, including alternative approaches, are welcomed!</p>
]]></description><guid isPermaLink="false">14746</guid><pubDate>Sun, 14 Aug 2011 18:48:31 +0000</pubDate></item><item><title><![CDATA[TSVN &#38; SVN  vs ClearCase]]></title><link>https://lavag.org/topic/13597-tsvn-svn-vs-clearcase/</link><description><![CDATA[<p>Hi,</p>
<p>I am looking for any and all comments on this topic from the LAVA community  :</p>
<p>I am a LabVIEW programmer who has been "forced" to use Clearcase for several years now by the text based coders in the dept.  It seems that there are now more LabVIEW programmers that use TSVN and SVN than any other SCC tool out there in industry (my perception), and I am sure for good reason and not just due to cost savings !!!</p>
<p>I would like to present a functionality / ease of use comparison case between ClearCase &amp; TSVN / SVN to justify the potential migration to TSVN &amp; SVN.  </p>
<p>Thank You in advance !!!</p>
]]></description><guid isPermaLink="false">13597</guid><pubDate>Mon, 03 Jan 2011 22:48:36 +0000</pubDate></item><item><title>Using LabVIEW with Git</title><link>https://lavag.org/topic/11697-using-labview-with-git/</link><description><![CDATA[<p>Hi all,</p>
<p>I'm in the FIRST robotics community, and next year we're getting a copy of LabVIEW 8.6 Pro which has the a few programs included for use in source control.</p>
<p>Anywho, we're interested in using some sort of source control to keep track of our code and allow simultaneous development with several programmers. A quick Google search shows little or few relevant results of using LabVIEW with Git.</p>
<p>I'm wondering if any of ya'll, LabView users, have ever used Git for tracking your code? If so, how have you accomplished it? If not, what have you used that is free to use?</p>
<p>Any information would be helpful.</p>
<p>Thanks</p>
<p>-Tanner</p>
]]></description><guid isPermaLink="false">11697</guid><pubDate>Mon, 04 Jan 2010 17:00:10 +0000</pubDate></item><item><title><![CDATA[An intresting article on GIT&#39;s growth]]></title><link>https://lavag.org/topic/14629-an-intresting-article-on-gits-growth/</link><description><![CDATA[<p>HI,</p>
<p>I was reading this <a href="http://www.infoworld.com/d/application-development/torvaldss-git-the-it-technology-software-version-control-167799?page=0,1" rel="external nofollow">article</a> today about the growth of GIT and I found the figure below quite interesting, plus there were a few comparison comments that were informative. </p>
<blockquote data-ipsquote="" class="ipsQuote" data-ipsquote-contentapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentid="14629" data-ipsquote-contentclass="forums_Topic"><div>
<p>but Eclipse's 2011 survey of 704 developers still has Subversion as the  source code management system of choice, with 51.3 percent of  respondents using it. CVS, also a centralized system, comes in second at  13.3 percent. Git follows with 12.8 percent, while Mercurial was used  by 4.6 percent  </p>
<p></p>
</div></blockquote>
<p>It placed the user base of GIT as much greater than Mercurial and yet I have noticed in the LabVIEW world a general settling on Mercurial &amp; SubVersion</p>
<p>cheers </p>
<p>Danny</p>
]]></description><guid isPermaLink="false">14629</guid><pubDate>Wed, 27 Jul 2011 08:46:47 +0000</pubDate></item><item><title>Perforce and Labview, A new Frontier</title><link>https://lavag.org/topic/14563-perforce-and-labview-a-new-frontier/</link><description><![CDATA[<p>Just thought I should add my trials an tribulations to future users of perforce and labview.</p>
<p>First i found <a href="http://betterexplained.com/articles/a-visual-guide-to-version-control/" rel="external nofollow">Visual Guide to source control</a> to be a great resource to explain source control to my colleges.</p>
<p>2nd:</p>
<p><span style="text-decoration:underline;"><strong>Requirements Analysis.</strong></span></p>
<p>I have multiple users on multiple branches in multiple sites.</p>
<p>This functionality Ruled out SVN as a choice</p>
<p>I am a former user of clearcase, which has spoiled me for features, but not price nor speed.</p>
<p>Perforce, on paper a good balance between cost and features. If i was working in a text based language I would be over the moon.</p>
<p>So where to Start:</p>
<p><a href="https://giawerx.com/news/52-using-perforce-with-labview" rel="external nofollow">John's essential Guide</a></p>
<p>Without this I would have been lost in the weeds for days, Give it a read, Special Thanks to John at Giawerx.</p>
<p>Here is the extra information:</p>
<p>Install the P4 SCC IDE plugin to enable Labview to see Perforce through the advanced interface (The command line implementation is poor).  John has done this but doesn't explicitly say so in his guide.</p>
<p>When creating a new, empty Depot, you will need to check the view path, the default settings don't work.</p>
<p><span style="text-decoration:underline;"><strong>Drive Substitution</strong></span></p>
<p>My last unresolved challenge (Jump in here if anyone can help):</p>
<p>To combat Laview's(and other compilers)  incessant need to crosslink all files with absolute paths, I have got into the practice of substituting the project root to another drive (A: and B: tend to be unused now days).</p>
<p>This works seamlessly with clearcase. I haven't yet figured out how to do it with perforce.</p>
<p>Perforce tech help recommend adding your substituted drive path to "alt  root" but I have been unsuccessful in applying it to my setup.</p>
<p>Stay tuned for a solution, or better still provide one, I will be much appreciative.</p>
<p>Tim L.</p>
]]></description><guid isPermaLink="false">14563</guid><pubDate>Mon, 18 Jul 2011 07:26:05 +0000</pubDate></item><item><title>Project Hosting</title><link>https://lavag.org/topic/14397-project-hosting/</link><description><![CDATA[<p>Hello,</p>
<p>I recently stumbled across this</p>
<p><a href="http://code.google.com/hosting/" rel="external nofollow">http://code.google.com/hosting/</a></p>
<p>It is a tool for project hosting.  I think this would be a really cool tool to collaborate with customers and other developers.</p>
<p>Does anybody have any experience with Project Hosting?  Any recommendations?</p>
<p>Thanks</p>
<p>Dan</p>
]]></description><guid isPermaLink="false">14397</guid><pubDate>Thu, 09 Jun 2011 19:06:50 +0000</pubDate></item><item><title>Guide to using LVcompare with ClearCase</title><link>https://lavag.org/topic/13521-guide-to-using-lvcompare-with-clearcase/</link><description><![CDATA[<p>Hi all,</p>
<p>I have got the LabVIEW LVCompare.exe working with ClearCase on windows.  </p>
<p>This means that you can do <abbr title="LabVIEW">LV</abbr> differencing using the source control integration with LabVIEW or from the ClearCase explore or the tree view.  </p>
<p>Would anybody be interested in a step by step guide on how to do this ?</p>
<p>For those in the know you just need to edit the ClearCase map file ( C:\Program Files\Rational\<a href="http://cartman/main_wiki/ClearCase" rel="external nofollow">ClearCase</a>\lib\mgrs\map   ) and change the compare &amp; xcompare type managers for the correct  file type. </p>
<p></p>
<pre class="ipsCode">z_whole_copy		compare				..\..\bin\cleardiff.exez_whole_copy		xcompare			..\..\bin\cleardiffmrg.exechange to z_whole_copy            compare                     	..\..\..\..\NATION~1\Shared\LABVIE~4\LVCompare.exe z_whole_copy            xcompare                        ..\..\..\..\NATION~1\Shared\LABVIE~4\LVCompare.exe </pre>
<div></div>
<p></p>
<p>but as I said if anybody was interested I could do a step by step guide.</p>
<p>Danny</p>
]]></description><guid isPermaLink="false">13521</guid><pubDate>Wed, 15 Dec 2010 14:34:42 +0000</pubDate></item><item><title>Some help streamlining my new tool</title><link>https://lavag.org/topic/14033-some-help-streamlining-my-new-tool/</link><description><![CDATA[<p>I need some help figuring out how to streamline a new tool.</p>
<p>I wrote a tool that is invoked by my SCC server; when a change is submitted, the server scans any submitted VIs and controls for revision changes and records them into the SCC's change spec.  This allows me to track changes at a very atomic level.</p>
<p>But here's the trouble...  the code for reading the history WITHOUT opening up VI dependencies only runs in the development environment.  So the original EXE script that I wrote to do this doesn't work.</p>
<p>OK. I'll just invoke Labview with a command line argument to launch the VI I want and pass in the relevant SCC info.  No dice.  If <abbr title="LabVIEW">LV</abbr> is already running, the command line arguments are the ORIGINAL ones, not the ones used to call it the second time.</p>
<p>So what I have is a <abbr title="LabVIEW">LV</abbr> EXE that is invoked by the SCC.  It calls my revision tool via VI server.  This works, as long as <abbr title="LabVIEW">LV</abbr> is running.  (I suppose I could start and stop <abbr title="LabVIEW">LV</abbr>, but I don't want to deal with that latency every time I submit- which can be often).</p>
<p>So now I have <abbr title="LabVIEW">LV</abbr> running 24/7 on my windows machine (windows 7 pro, no server).  Is there a way to run the Dev environment as a service so that it's not running in the UI?</p>
<p>Any other ideas?</p>
<p>Thanks!</p>
]]></description><guid isPermaLink="false">14033</guid><pubDate>Thu, 24 Mar 2011 19:53:06 +0000</pubDate></item><item><title>Perforce Workspace</title><link>https://lavag.org/topic/13822-perforce-workspace/</link><description><![CDATA[<p>I am starting up LabVIEW development at a client's site that uses Perforce SCC.  </p>
<p>I have been debating on how to setup the workspace for a development machine and finally <strong>decided on having my workspace be the entire C:\</strong>.</p>
<p>This seemed to be the only solution to include &lt;instr&gt; and &lt;vi&gt; directory dependencies in the SCC.</p>
<p> I am struggling to understand how to include all my dependencies without moving files in and out of a smaller-scope workspace.</p>
<p>My gut feeling is that having my C:\ as a workspace will come back to bite me.  Has anyone else done this?</p>
<p>I have used SVN in the past, so my hesitation comes from my SVN experience and now using a new SCC (Perforce).</p>
<p>Thanks!</p>
<p>Pete</p>
]]></description><guid isPermaLink="false">13822</guid><pubDate>Tue, 15 Feb 2011 21:09:07 +0000</pubDate></item><item><title><![CDATA[Set &#34;treat read-only VIs as locked&#34; to true as default]]></title><link>https://lavag.org/topic/13793-set-treat-read-only-vis-as-locked-to-true-as-default/</link><description><![CDATA[<p>I posted an idea over on the <a href="http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Set-quot-tread-read-only-VIs-as-locked-quot-to-true-as-default/idi-p/1048968" rel="external nofollow">LabVIEW Idea Exchange</a> titled "Set "tread read-only VIs as locked" to true as default" - reminding us not to edit a VI if it's read-only (you can, of course, still change to edit mode with a ctrl+m, but that's explicit).  This is especially important when using the needs-lock property with non-integrated SCC products (like SVN).  This also discourages the bad habit of only getting an SCC lock on a file when you're done editing and are saving it (I've seen ppl do this from the "Save" dialog <img src="https://lavag.org/uploads/emoticons/default_angry.png" alt=":angry:"> ).  I'd appreciate a few extra votes <a href="http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Set-quot-tread-read-only-VIs-as-locked-quot-to-true-as-default/idi-p/1048968" rel="external nofollow">over there</a>.</p>]]></description><guid isPermaLink="false">13793</guid><pubDate>Thu, 10 Feb 2011 14:09:19 +0000</pubDate></item><item><title>Starting out with TortoiseSVN/SVN</title><link>https://lavag.org/topic/13674-starting-out-with-tortoisesvnsvn/</link><description><![CDATA[<p>I have for some time been running without a source code control tool. I do realise the benefits having used one at my previous company and so I’m keen to get back to using a tool. Having read around on the forums I’ve decided that Subversion is the way to go with <abbr title="LabVIEW">LV</abbr>. I’m unsure of how to go about setting it up and would like to gain a bit more knowledge before I start. These are the steps I intend to take:</p>
<p>1) I intend to download and install TortoiseSVN on my PC from <a href="http://tortoisesvn.tigris.org/" rel="external nofollow">http://tortoisesvn.tigris.org/</a></p>
<p>It’s described as “A <a href="http://subversion.apache.org/" rel="external nofollow">SubVersion</a> client, implemented as a windows shell extension.”</p>
<p>2) I presume that TortoiseSVN requires a SubVersion server set up. So, I nintend to doswnload the SubVersion server from <a href="http://subversion.apache.org/" rel="external nofollow">http://subversion.apache.org/</a> Having taken a quick look at the FAQ it says “If you want to <strong>host</strong> a networked repository, then you need to set up either Apache2 or an "svnserve" server.”.  So I intend to do that on a server PC that our development group can all access.<em> Has anybody done this?</em></p>
<p>3) For the time being I intend not to use a plugin so that the repository can be accessed via <abbr title="LabVIEW">LV</abbr> project. Perhaps I may try out the demo of the JKI plugin as it seems to have much better reports than the PushOK one.</p>
<p>4) I realise there is a lot to set up after this and a lot to learn in the <em>way</em> that the tool is used but for the moment I’d like to get to point where it can be tried out.</p>
<p><em><strong>Does that look like a sensible start?  </strong></em></p>
]]></description><guid isPermaLink="false">13674</guid><pubDate>Tue, 18 Jan 2011 14:14:51 +0000</pubDate></item><item><title>Reuse, Packages and SCC</title><link>https://lavag.org/topic/13492-reuse-packages-and-scc/</link><description><![CDATA[<p>I'm planning to put a process in place for managing reusable code using mercurial for SCC.</p>
<p>My old approach (using SVN) was to have the user.lib under SVN. This was ok as I was the only developer accessing this reusable library. Now I would like to share it with others in my team (using OGPB and VIPM community). Also this became a bit difficult as I started using other locations as well (instr.lib, plugins, tools...).</p>
<p>So I was thinking about having the code-base seperate. Primary code would reside in a dedicated reuse-project folder (managed by Hg). Then I'd create packages using OGPB. These packages can now go onto a server for team-sharing. I as well as others would then install the packages in the user.lib and other places using VIPM community.</p>
<p>So here would be the first question:</p>
<p>? How to track the version on a project basis ?</p>
<p>I've been playing with the subrepositories feature in mercurial (this is suggested as analog to SVN-externals). But that would only allow the files to stay in the project folder, not in user.lib.</p>
<p>The same issue with this use-case:</p>
<p>? How to get reusable checked out on the USB thumbdrive ?</p>
<p>I found that Hg makes life easy there, as I can clone my repository for field-testing on customers side. If I install mercurial on the machine, I even can get the changes committed and back in the home-base, I just push what I've done to my developement machine.</p>
<p>But I not really want to install VIPM (and LV2009RT) on the customer machine and have my reuse code deployed there. It's more effort than I save by having all nice palettes.</p>
<p>This is also a problem with my current SVN approach. But here I did use source distributions with OGB and had a tool to check them back in the project folder.</p>
<p>For both issues, I was thinking of a tool that would just pack all VIs that do not reside in the project folder and maintain a flat copy (e.g. zip archive) in the project folder. But this of course leads to relinking problems (which is generating a lot of changesets in the SCC).</p>
<p>Another idea would be some kind of dynamically linking of the <abbr title="LabVIEW">LV</abbr>-IDE locations (user.lib and palette; instr.lib) to the project dir's, if possible. That would allow for subrepositories (and in this case I'd distribute via Hg instead of VIPM).</p>
<p>Felix</p>
]]></description><guid isPermaLink="false">13492</guid><pubDate>Thu, 09 Dec 2010 13:57:03 +0000</pubDate></item><item><title>LVcompare and LV FDS</title><link>https://lavag.org/topic/13458-lvcompare-and-lv-fds/</link><description><![CDATA[<p>Is there a way to use LVcompare with Labview Full Developement System ? </p>
<p>I have try to use it with tortoise , but get below error (sorry in french).</p>
<p>"Une erreur est survenue lors de l'exécution de LVCompare.</p>
<p>Nœud de méthode dans LVCompare.vi</p>
<p>&lt;APPEND&gt;</p>
<p>Nom de la méthode : &lt;b&gt;User Interaction:Compare VIs&lt;/b&gt;"</p>
<p>Eric</p>
]]></description><guid isPermaLink="false">13458</guid><pubDate>Fri, 03 Dec 2010 09:51:30 +0000</pubDate></item><item><title>Skip SubVersion folders during mass compile</title><link>https://lavag.org/topic/11277-skip-subversion-folders-during-mass-compile/</link><description><![CDATA[<p>I don't know if this had been discussed yet, but I just found out about it yesterday and I hadn't seen it here...In LabVIEW 2009 there is a new ini key:</p>
<p>skipSVNFolders=true</p>
<p>This will cause LabVIEW to skip over your .svn folders when doing a mass compile. <img src="https://lavag.org/uploads/emoticons/default_thumbup1.gif" alt=":thumbup1:"></p>
]]></description><guid isPermaLink="false">11277</guid><pubDate>Wed, 21 Oct 2009 14:20:33 +0000</pubDate></item><item><title>Repository for LabVIEW Project</title><link>https://lavag.org/topic/13174-repository-for-labview-project/</link><description><![CDATA[<p>I'm working on a team of 5 to develop a relatively  large software project spread across a PC, FPGA (R-Series card), cRIO, and an ARM board. Our last attempt this problem lead to a source control nightmare. We managed an svn repository using tortoisesvn. This became problematic because we couldn't edit any of the FPGA files without checking out the entire project. This lead to parallel projects being worked on and the eventual merging problems. I know that <abbr title="LabVIEW">LV</abbr> has a source control manager, but to my knowledge it requires you to have a relatively expensive source control manager. Does anyone have good ideas about how to manage a large, multi-fabric project without buying perforce?</p>]]></description><guid isPermaLink="false">13174</guid><pubDate>Wed, 29 Sep 2010 18:07:50 +0000</pubDate></item><item><title>Handling multiple versions of Reusable Library</title><link>https://lavag.org/topic/12804-handling-multiple-versions-of-reusable-library/</link><description><![CDATA[<p>I have different customers using different version of labVIEW, I have all my reusable library stored in SCC (Perforce), Now I am having to manage my reusable components for multiple version of LabVIEW.  What do you think is the best way to manage the code, I can do a branch of the code but it duplicates the code and every Issue I find, I will have to go and fix all the supported versions of LabVIEW. I am sure many developers would have gone through this, Can anybody suggest the best ways to do it. It will be also useful for many new engineers like me. Is there already a thread where we have discussed this ?</p>
<p>With Regards</p>
<p>Rajkumar</p>
]]></description><guid isPermaLink="false">12804</guid><pubDate>Fri, 30 Jul 2010 03:18:13 +0000</pubDate></item><item><title>Separating Compiled Code from VIs</title><link>https://lavag.org/topic/12812-separating-compiled-code-from-vis/</link><description><![CDATA[<p>Juchuh,</p>
<p>this will solve a lot of Problems using svn (or other scc systems):</p>
<p><a href="http://zone.ni.com/reference/en-XX/help/371361G-01/lvconcepts/saving_vis_compiled_code/" rel="external nofollow">http://zone.ni.com/r..._compiled_code/</a></p>
<p>Greeting,</p>
<p>Dan</p>
]]></description><guid isPermaLink="false">12812</guid><pubDate>Mon, 02 Aug 2010 12:16:29 +0000</pubDate></item><item><title>Controlling Instrument Drivers</title><link>https://lavag.org/topic/12770-controlling-instrument-drivers/</link><description><![CDATA[<p>I have a situation where instrument drivers are being fixed/modified on the test systems and this is effecting deployment of new code as often 'vanilla' versions of these drivers are used in future developments (I know stupid right). My real problem here is that I am unsure how to have the drivers in source code control and also have them be available in the functions palette as well so everyone has the modified versions. </p>
<p>This may be an obvious/dumb question, but, I am trying to implement some  <strong>integrated</strong> source code control using LabVIEW proffessional. Code control has been separated up until now and causing a night mare.</p>
<p>Any advice, direction and help much appreciated.</p>
<p>Thanks,</p>
<p>Neil.</p>
]]></description><guid isPermaLink="false">12770</guid><pubDate>Fri, 23 Jul 2010 09:11:09 +0000</pubDate></item><item><title>TortoiseSVN - Diff with TestStand sequences</title><link>https://lavag.org/topic/12386-tortoisesvn-diff-with-teststand-sequences/</link><description><![CDATA[<p>I started writing this post as a question, but found the answer by the time I was done, so I thought I'd make it informative.</p>
<p>TortoiseSVN (and probably most other SCC software) will allow you to override the default diff-viewer per file extension or MIME-type, so I was looking for a way to do this is TestStand sequences. I found this snippet in the TestStand help file:</p>
<blockquote data-ipsquote="" class="ipsQuote" data-ipsquote-contentapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentid="12386" data-ipsquote-contentclass="forums_Topic"><div>You can also specify which two sequence files to compare using the command-line arguments for the application. You typically use the Differ application to compare TestStand sequence files in source code control. For example:<p>SeqFileDifferApp.exe "C:\My Documents\File1.seq" "C:\My Documents\File2.seq"</p>
</div></blockquote>
<p>So I plugged in a custom viewer for <span style="font-family:'Courier New';">.seq</span> using the path <span style="font-family:'Courier New';">"C:\Program Files\National Instruments\TestStand 4.2\Bin\SequenceFileDiffer.exe" %base %mine</span>. You'll notice this is a little different than prescribed by the help file - first' date=' the executable name is different and second, there are no quotes around the parameters. For whatever reason, putting quotes around the params broke the paths. Even without quotes, though, it works with fairly long paths (135+ characters) which has spaces in it.</p>
<p>Another plus, IMO, is the diff that pops up isn't the whole sequence editor - just the pane that shows the diff results.  <img src="https://lavag.org/uploads/emoticons/default_thumbup1.gif" alt=":thumbup1:"></p>
<p>P.S. If you didn't know, TSVN ships with support for diff'ing a whole bunch of MSOffice formats - really handy for comparing documentation revisions!</p>
<p>For the truly lazy, here's a registry file to add the diff for you. Take note, I'm using TestStand 4.2! You'll have to rename it to .reg to merge it.</p>
<p><a href="https://lavag.org/applications/core/interface/file/attachment.php?id=2229" data-fileid="2229" rel="">TortoiseSVN Diff - seq.txt</a></p>
]]></description><guid isPermaLink="false">12386</guid><pubDate>Mon, 10 May 2010 20:54:46 +0000</pubDate></item><item><title>Bug Tracking with SCC</title><link>https://lavag.org/topic/12328-bug-tracking-with-scc/</link><description><![CDATA[<p>Seeing the post below about SVN and Trac perked my curiosity about bug tracking and linking it to source code control. I would like to know what others are using (or wish they were using) for bug tracking and if it is linked to your SCC. Does anyone else use SVN and Trac or SVN with some other bug tracking tool?</p>]]></description><guid isPermaLink="false">12328</guid><pubDate>Mon, 26 Apr 2010 16:56:52 +0000</pubDate></item><item><title>User Library Management</title><link>https://lavag.org/topic/12213-user-library-management/</link><description><![CDATA[<p>I was recently tasked with setting up a system for managing our LabVIEW User Library. The library hasn't been created yet, but it is coming. I want to use <a href="http://jkisoft.com/vipm/" rel="external nofollow">VIPM</a>, but my company is very hesitant about spending money on software. What other options has anybody tried? I'm looking for wide array of opinions supporting and criticizing any option.</p>]]></description><guid isPermaLink="false">12213</guid><pubDate>Fri, 09 Apr 2010 16:42:51 +0000</pubDate></item><item><title>Which files to ignore using SCC</title><link>https://lavag.org/topic/12096-which-files-to-ignore-using-scc/</link><description><![CDATA[<p>I'm about to move to a new SCC system and want to do it right from the start, one of the things I am always a bit fuzzy about is which files to ignore when using SCC.</p>
<p>I have the opinion that compiled code should not be inside an SCC, so I think about ignoring the following files:</p>
<p></p>
<ul><li>built*\<br></li>
<li>*.ogp<br></li>
</ul><p></p>
<p>Apart from that I think the followin LabVIEW specific files should be ignored:</p>
<p></p>
<ul><li>*.lvlps<br></li>
<li>*.aliases<br></li>
</ul><p></p>
<p>Any other opinions/ideas?</p>
<p>Ton</p>
]]></description><guid isPermaLink="false">12096</guid><pubDate>Sat, 20 Mar 2010 10:06:13 +0000</pubDate></item><item><title>Merge Vs Locking in LabVIEW</title><link>https://lavag.org/topic/11843-merge-vs-locking-in-labview/</link><description><![CDATA[<p>We are thinking of switching from a Locking oriented SCC to a Merge oriented SCC. </p>
<p>Does the NI_Merge program function appropriately for large labVIEW files?</p>
<p>Does anyone have horror or success stories?</p>
<p>Any advice or experiences would be a great help.</p>
<p>Thanks.</p>
]]></description><guid isPermaLink="false">11843</guid><pubDate>Thu, 28 Jan 2010 19:10:33 +0000</pubDate></item><item><title>Locking issues.</title><link>https://lavag.org/topic/11842-locking-issues/</link><description><![CDATA[<p>We have a fairly large software package, so to manage it we are implementing TortoiseSVN.</p>
<p>However, currently  we are using the locking functionality only.</p>
<p>When trying to implement the merge function, IE accessing files without locking, we cannot save even to local copies.</p>
<p>Does anyone know why this is? </p>
<p>Even if I have a local copy of a folder, I cannot save to that local copy. </p>
<p>It must have something to do with locking settings, but I can't find any kind of menu to alter these settings.</p>
]]></description><guid isPermaLink="false">11842</guid><pubDate>Thu, 28 Jan 2010 19:08:54 +0000</pubDate></item><item><title>Trac with Subversion</title><link>https://lavag.org/topic/11758-trac-with-subversion/</link><description><![CDATA[<p>I am looking at using Trac and Subversion together for project management and wanted to see if anyone else is doing the same. For more info on Trac see here: <a href="http://trac.edgewall.org/" rel="external nofollow">http://trac.edgewall.org/</a></p>]]></description><guid isPermaLink="false">11758</guid><pubDate>Tue, 12 Jan 2010 16:42:28 +0000</pubDate></item><item><title>svn:needs-lock properties</title><link>https://lavag.org/topic/11749-svnneeds-lock-properties/</link><description><![CDATA[<p>I have tried to search for this but have found many broken links.<img src="https://lavag.org/uploads/emoticons/default_frusty.gif" alt=":frusty:"></p>
<p>How do you set the svn:needs-lock properties for use in a Lock/Unlock model in TortoiseSVN?</p>
<p>Thanks</p>
<p>Dan</p>
]]></description><guid isPermaLink="false">11749</guid><pubDate>Mon, 11 Jan 2010 19:15:35 +0000</pubDate></item><item><title>What is the Source Control Project for?</title><link>https://lavag.org/topic/11307-what-is-the-source-control-project-for/</link><description><![CDATA[<p>Does anyone know what the Source Control Project field in the SCC configuration dialog is for?  I am using the Perforce SCM provider.  I have read the help, goggled the internets and called NI support but know one seems to know.</p>
<p>When I setup SCC, I have to choose something for this field.  The dialog that appears has a disabled OK button until I choose a sub folder of my Perforce Depot.  If I select a folder, I get error -2915.  If instead I continue to expand the tree until I see a file and then select that, it is happy.</p>
<p>I just wish I understood what was going on here.</p>
<p>Thanks for any help!</p>
<p>-John</p>
<p>(using LabVIEW 8.6.1 and the latest version of Perforce P4V on Windows XP)</p>
]]></description><guid isPermaLink="false">11307</guid><pubDate>Tue, 27 Oct 2009 17:49:22 +0000</pubDate></item><item><title>Subversion repository with different LabVIEW versions</title><link>https://lavag.org/topic/11279-subversion-repository-with-different-labview-versions/</link><description><![CDATA[<p>Hi,</p>
<p>I wondering how everyone organizes their Subversion repository with regard to LabVIEW upgrades (e.g. 7.1, 8,2 8.6, 2009, etc).  Is it better to create a new repository for each version of LabVIEW (so you don't accidentally recompile a previous version), or have one repository and create new folders for each version.</p>
<p>Example 1: A single repository</p>
<blockquote data-ipsquote="" class="ipsQuote" data-ipsquote-contentapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentid="11279" data-ipsquote-contentclass="forums_Topic"><div>
<p>Main Repository</p>
<p></p>
<ul><li>LV7.1<br><ul><li>app1<br>app2<br>app3<br></li></ul></li></ul><p></p>
<p></p>
<p></p>
<ul><li>LV8.6<br><ul><li>app1<br>app2<br>app3<br></li></ul></li></ul><p></p>
<p></p>
<p></p>
<ul><li>LV9.0<br><ul><li>app1<br>app2<br>app3<br></li></ul></li></ul><p></p>
<p></p>
<p></p>
<p></p>
</div></blockquote>
<p>Example 2: Multiple repositories for each LabVIEW version</p>
<blockquote data-ipsquote="" class="ipsQuote" data-ipsquote-contentapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentid="11279" data-ipsquote-contentclass="forums_Topic"><div>
<p></p>
<ul><li>LV7.1 Repository<br><ul><li>app1<br>app2<br>app3<br></li></ul></li></ul><p></p>
<p></p>
<p></p>
<p></p>
<ul><li>LV8.6 Repository<br><ul><li>app1<br>app2<br>app3<br></li></ul></li></ul><p></p>
<p></p>
<p></p>
<p></p>
<ul><li>LV9.0 Repository<br><ul><li>app1<br>app2<br>app3<br></li></ul></li></ul><p></p>
<p></p>
<p></p>
<p></p>
</div></blockquote>
<p>This is just a simplified representation, of coarse there are other organizational details such as branch/tag/trunk.</p>
<p>Thanks for the feed back</p>
]]></description><guid isPermaLink="false">11279</guid><pubDate>Wed, 21 Oct 2009 15:58:40 +0000</pubDate></item><item><title><![CDATA[Find the changed files in Perforce&#33;]]></title><link>https://lavag.org/topic/11370-find-the-changed-files-in-perforce/</link><description><![CDATA[<p>This is not directly a LabVIEW question, but since the files I am dealing with are VIs and since the reason I do it this way is because of how LabVIEW works, I figured this is a fair question for LAVA.</p>
<p>I just upgraded from P4Win to P4V and I can’t seem to figure out how to perform a large submit operation.</p>
<p>For example:</p>
<p>If I have 100 files checked out, but I have only changed 17 of them, I need to know which ones those are so I can submit the changes.</p>
<p>In P4Win, I could setup a submit that would only select the 17 files out of the 100 in the checklist that were different from the depot.  I could also have it re-checkout the files after submitting and <span style="text-decoration:underline;">leave the other unchanged files alone</span>.</p>
<p>I could also choose to submit a subset of the 17 changes files if I wanted to have different comments attached to different groups of files.</p>
<p>In P4V I cannot find a way to have it show me which files have been changed.  It select every file that is checked out when I choose to submit.  It can be set to not submit unchanged files and to re-checkout after submit, but I still need to know what the changed files are before submitting so I can enter the appropriate comments.</p>
<p>I don't to want to revert the unchanged files.  Due to how LabVIEW seems to like to recompile VIs at will, I tend to keep everything checked out all the time so I don't have to keep checking things out continuously as I make edits.</p>
<p>Any ideas or help would be greatly appreciated.</p>
<p>-John</p>
]]></description><guid isPermaLink="false">11370</guid><pubDate>Thu, 05 Nov 2009 00:24:06 +0000</pubDate></item><item><title>Moving an SVN repository/server</title><link>https://lavag.org/topic/11071-moving-an-svn-repositoryserver/</link><description><![CDATA[<p>Hi All,</p>
<p>We set up an SVN repository on our server a while back and have been using it fine. We use SVNserve on the server so that to access the repository we use svn:\\SERVER\repository\blah. My problem is that we have just installed a new server and want to move the repository onto that. </p>
<p>My initial plan had been to get all users (actually there are only 2 of us) to fully commit all changes, then use hotcopy to move the repository to the new server and setup svnserve on that. The problem is that I've been away and we can no longer access the old server (due to network issues). So I can no longer get to the repository to commit the changes which currently exist "in the wild". </p>
<p>My new plan then was to move the repository anyway (using hotcopy), and then somehow update the local clients to look to the new repository location when updating and committing. But I can't see how to update where the repository is on the local machines. So any attempt to "update" simply fails as is says the repository is no longer there.</p>
<p>Anyone know how best to deal with this?</p>
<p>Cheers</p>
<p>Paul</p>
]]></description><guid isPermaLink="false">11071</guid><pubDate>Thu, 24 Sep 2009 08:59:01 +0000</pubDate></item><item><title>Using LVCompare.exe with svn diff</title><link>https://lavag.org/topic/10908-using-lvcompareexe-with-svn-diff/</link><description><![CDATA[<p>I wrote a quick tutorial over at LabVIEW wiki about setting up subversion's svn diff to work with the new LVCompare.exe using the --diff-cmd switch.  Hope it is helpful to others!</p>
<p><a href="http://labviewwiki.org/Set_up_differencing_capabilities" rel="external nofollow">http://labviewwiki.o...ng_capabilities</a></p>
]]></description><guid isPermaLink="false">10908</guid><pubDate>Fri, 28 Aug 2009 17:55:15 +0000</pubDate></item><item><title>Using the branch, modify, merge paradigm</title><link>https://lavag.org/topic/10953-using-the-branch-modify-merge-paradigm/</link><description><![CDATA[<p>At work we are using TFS and follow the branch, modify, merge pattern for code development.  This can cause all sorts of problems when code collisions occur in classes or project libraries, such as what might happen when multiple developers change the class .ctl or library VIs are added or removed.  What process steps do you go through when resolving conflicts like this to avoid broken projects?</p>]]></description><guid isPermaLink="false">10953</guid><pubDate>Sun, 06 Sep 2009 19:37:40 +0000</pubDate></item><item><title><![CDATA[How to best handle .dll&#39;s in source control?]]></title><link>https://lavag.org/topic/10934-how-to-best-handle-dlls-in-source-control/</link><description><![CDATA[<p>We have a multi-developer project that currently depends on several DLLs, some of which are kept in windows/system32 and some which are kept in a directory near the code that depends on them.  Our developers have the source code tree mapped to different locations on their computer so every time we check out a version another developer has checked in we end up with whole libraries that need to be recompiled and resaved simply because the absolute path changed.  As a result, whenever we merge a branch back into the trunk (or forward integrate the trunk into a branch) we have dozens of VIs that have to be manually compared before the merge can be checked in.  This overhead is getting cumbersome; it's getting to the point where I will postpone merges simply because I don't want to deal with that.</p>
<p>Is there a good way to handle project DLLs in a source control environment?</p>
]]></description><guid isPermaLink="false">10934</guid><pubDate>Wed, 02 Sep 2009 14:00:19 +0000</pubDate></item><item><title>Microsoft Team Foundation Server</title><link>https://lavag.org/topic/10398-microsoft-team-foundation-server/</link><description><![CDATA[<p>We were using VSS but have since moved to TFS now.  Is there a way to use TFS in LabVIEW like I did with VSS.  I was able to connect to VSS and check-in/out code inside of VSS, however with TFS I have to use the client in Visual Studio 2008 to check in/out code.</p>
<p>Thanks,</p>
<p>Matt K.</p>
]]></description><guid isPermaLink="false">10398</guid><pubDate>Wed, 08 Jul 2009 15:34:16 +0000</pubDate></item><item><title>Perforce Users - A call for some open source SCC tools</title><link>https://lavag.org/topic/10240-perforce-users-a-call-for-some-open-source-scc-tools/</link><description><![CDATA[<p>Hi All,</p>
<p>I have been using P4 with <abbr title="LabVIEW">LV</abbr> since 2000.  I have never liked the NI P4 SCC plugin, and so a few years ago I created a few tools that ran via menuLaunchVI that did the simple things (login, open, add, etc) but then a couple others that were more advanced...</p>
<p>-Open all callers (Mostly for updating typedefs)</p>
<p>-Add heirarchy</p>
<p>-Rename in P4 and <abbr title="LabVIEW">LV</abbr></p>
<p>I updated them for the 8.x environment, but I lost some funtionality that I have been too busy to fix.  (At one point, they ran great on all Win/Mac/Linux)</p>
<p>However, today I coded up a utility that grabs all the VIs in a changelist, reads their revision histories (since their last submission) and tabulates that back into the P4 Changelist...</p>
<p><cite>QUOTE </cite></p>
<blockquote data-ipsquote="" class="ipsQuote" data-ipsquote-contentapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentid="10240" data-ipsquote-contentclass="forums_Topic"><div>--&gt;zjp4_MergeRevisionChangesIntoChangelistDesc.vi<p>Perforce Action: edit</p>
<p>Rev 17 2009/06/05 13:06:34; Added std out and std err from the p4 change call as outputs</p>
<p>--&gt;zjp4_appendDescriptionToChangelist.vi</p>
<p>Perforce Action: add</p>
<p>Rev 6 2009/06/05 13:06:00; Added std out and std err as outputs</p>
<p>Rev 5 2009/06/05 12:36:33; Working!</p>
</div></blockquote>
<p>Although it annoys most people, I keep the "prompt for comment when saved" option on, and I find it easy to keep much finer notes there, and now they are propagated up to the CL description.  I should have done this years ago, as now my CLs (especially for deep, wide changes) will be more accurate.</p>
<p>However, my tools are a bit clunky. seeing as how I keep patching them with every p4 and <abbr title="LabVIEW">LV</abbr> release.</p>
<p>So...</p>
<p>-Does anyone else have their own tools that they would be interested in sharing?</p>
<p>-Would anyone be interested in creating an openG project?  I would like to plug them into the JKI right click framework (although they don't have scripting, their program could connect right-clicks and hotkeys to them)</p>
<p>Let me know!</p>
<p>Jed</p>
]]></description><guid isPermaLink="false">10240</guid><pubDate>Sat, 06 Jun 2009 21:55:24 +0000</pubDate></item><item><title>Source code control...</title><link>https://lavag.org/topic/10215-source-code-control/</link><description><![CDATA[<p>Hi All,</p>
<p>We're a small company doing a mixture of things, and we use labview to write control software for various automated systems that we supply to our customers. I'm actually relatively new to the company (but have labview experience from my PhD), but I know that source code control has often been mentioned, but never implemented (and, from the stories of my colleagues, it probably should have been!). One of the reasons for this is that, prior to my joining, there has only been one "major" labview application and it was maintained by only two staff members. Now I've joined the team there are 3 of us able to use labview, and we're about to embark on a complete overhaul of that one major application (a complete bottom up re-write of the architecture and a major cleanup of most of the processing algorithms and things that went with it). So, again the topic of source code control has come up. None of us has used it before (at least with labview) although we're familiar with the basic concept, and we don't know where to start - particularly in terms of what software we need. Bearing in mind we're a small team (and from within a small company), we don't want to be spending thousands on licensing of some super dooper massively complex system. What we need is something that prevents "code collisions", probably through checking in and out of code etc and maintains a decent backup of the projects code repository and revision history etc.</p>
<p>Can anyone point me in the direction of where to start? Or recommend a suitable piece of software and how to go about starting it up? If we're going to implement source control, ideally I want it in there from the get go on this project, but we do have a pretty tight timeline so I can't spend months learning a whole new thing just to get this implemented...</p>
<p>Anyway, as I say, if anyone can point me in a useful direction to get us going I'd really appreciate it!</p>
<p>Thanks in advance for any help!</p>
<p>Paul</p>
]]></description><guid isPermaLink="false">10215</guid><pubDate>Wed, 03 Jun 2009 16:11:24 +0000</pubDate></item><item><title>SVN and LabVIEW</title><link>https://lavag.org/topic/10123-svn-and-labview/</link><description><![CDATA[<p>I got a few minutes downtime, so I figure now is as a good time as any to look as SCC integration in LabVIEW.  We use SVN (we use the needs-lock model, so we checkout/checkin everything - and no, I'm not looking to debate that model <img src="https://lavag.org/uploads/emoticons/default_smile.png" alt=":)"> ), so I'm looking at PushOK (at $27 a license, who can argue?) - so far so good.  Anything I should look out for using PushOK?</p>
<p></p>
]]></description><guid isPermaLink="false">10123</guid><pubDate>Sat, 16 May 2009 18:45:24 +0000</pubDate></item><item><title>Subversion svn checkout vs. update</title><link>https://lavag.org/topic/10124-subversion-svn-checkout-vs-update/</link><description><![CDATA[<p>In the little bit of testing that I have done, it seems that when <em>svn checkout</em> is run on a pre-existing working copy it acts just like <em>svn update</em>.  I can't find any "official" reference to this in the manual or googling.</p>
<p>Can anyone confirm or dispute this claim? The only difference I see is that <em>svn</em> <em>checkout</em> requires an explicit URL?</p>
<p>I am in a situation where I would like TestStand to pull the latest files from a subversion repository before each test begins. If calling <em>svn checkout</em> will not cause any problems then it greatly reduces the code I have to write. I can do one simple "checkout" which will either checkout or update depending on the state of the build tree (I don't have to try to figure out if a working copy already exists).</p>
<p>Thanks,</p>
<p>Toby</p>
<p></p>
]]></description><guid isPermaLink="false">10124</guid><pubDate>Sat, 16 May 2009 18:47:24 +0000</pubDate></item></channel></rss>
