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.
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…
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… )?.
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
So I spent much of the afternoon looking over postings here on Source Control Software and LabVIEW. I must say I came away discouraged.
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.
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.
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.
If you could take a minute and tell me:
1. What type of source control software you are using?
2. You love it, or hate it?
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
4. Pro's and Con's of the source control you are using?
5. Just how often does your source control software screw up and cause you major pain?
Thank you in advance.
Who uses Git Submodules? I know Greg Payne does and have watched his talk, 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).
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.
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.
The project can be found here: https://bitbucket.org/jed_d/lv_tortoisegit
Tortoise Git Icon Overlays within Labview IDE Tortoise Git Commands from within Labview IDE 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. Open Git Bash from project window
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.
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.
One initial issues i'm hoping the community can help with is building the package for older versions of LV. 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.
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.
Here is the set-up:
I have a component project library (StepperMotor.lvlib) that I have moved to the userlib in order to facilitate reuse over multiple projects. Within the library I have
1) a strict typedef (StepperMotor.ctl) cluster that contains a numeric control for expressing the maximum output step rate.
2) the StepperMotor.lvclass, an abstract class that contains effectively virtual methods (they do nothing but wire inputs to outputs) and LabVIEW-generated accessor methods for the two items in the class private data.
This is LabVIEW 2013 SP1 on Windows 8.1.
OK, so I start with everything clean (git status reports clean, LabVIEW opens and closes the library without prompting for changes).
1) Then I open the StepperMotor.ctl directly from Windows Explorer (hence not opening the library), change the range of the numeric from 2 kHz to 4 kHz, and save it.
2) Then I open the library, make no further changes, and attempt to close the library. LabVIEW correctly prompts me to save changes. I opt to close the project without saving changes, however.
3) Next I discard the change to StepperMotor.ctl using git. (I have been using Discard in SourceTree, or a git reset --hard command.) Then git status returns a clean status.
4) I open the project and attempt to close it. Since I have reverted all changes, LabVIEW does not prompt to save changes.
So far, so good. This is expected behavior.
Now, I repeat the steps, except that in step
1) I open the library first, open the typedef control from the project, make the same change, save the control (without applying the changes), and close the project (without saving).
2) is the same as above (OK).
3) is the same as above. Again, git status shows me everything is clean.
4) I perform the same action as above, but this time LabVIEW prompts me to save all the accessor methods on the class, citing a changed typedef (even though if I open the typedef the range is indeed back to its original value). This is unexpected behavior.
Worse yet, even if I perform a git reset --hard and verify with a git status that everything is clean, if I open and immediately attempt to close the project, LabVIEW still prompts to save, citing "Type Definition modified". This is indeed problematic.
(Further note: If I let LabVIEW save the changes, git status still shows clean, and LabVIEW opens and closes the project without prompts.)