NI Home > Community > NI Discussion Forums
Reply
Active Participant
gmart
Posts: 333

LabVIEW Project level Source Code Control

With LabVIEW 8.0, we improved the integration of source code control (SCC) with the LabVIEW environment. Currently, you configure SCC on a global level for the entire LabVIEW environment. All LabVIEW projects (as well as the main application instance) use this configuration information. The biggest request to enhance this feature has been to support per project SCC configuration. I would like feedback on how you envision per project SCC configuration working. Here are some questions to ponder:

  1. If SCC is not enabled globally in LabVIEW, can you still have a LabVIEW project configured for SCC?
  2. If SCC is not configured at a project level, does it use the LabVIEW environment settings (which would be identical behavior to 8.x)?
  3. If SCC is enabled globally, can you have a project NOT use SCC?
  4. If the SCC provider configured for a project does not match the LabVIEW environment setting, what should happen?
  5. How should the project level configuration be stored? Should it be part of the project file itself?
Project level SCC should allow you to change configuration settings for one provider only. In other words, you can change the VSS project you use for different LabVIEW projects, but can't have one project talk to VSS and another talk to Clearcase. The main application instance (non-project development) will always use the LabVIEW environment setting.
George M
National Instruments
Member
Jaegen
Posts: 191
0 Kudos

Re: LabVIEW Project level Source Code Control


 


gmart wrote:

With LabVIEW 8.0, we improved the integration of source code control (SCC) with the LabVIEW environment. Currently, you configure SCC on a global level for the entire LabVIEW environment. All LabVIEW projects (as well as the main application instance) use this configuration information. The biggest request to enhance this feature has been to support per project SCC configuration. I would like feedback on how you envision per project SCC configuration working. Here are some questions to ponder:

  1. If SCC is not enabled globally in LabVIEW, can you still have a LabVIEW project configured for SCC?
  2. If SCC is not configured at a project level, does it use the LabVIEW environment settings (which would be identical behavior to 8.x)?
  3. If SCC is enabled globally, can you have a project NOT use SCC?
  4. If the SCC provider configured for a project does not match the LabVIEW environment setting, what should happen?
  5. How should the project level configuration be stored? Should it be part of the project file itself?
Project level SCC should allow you to change configuration settings for one provider only. In other words, you can change the VSS project you use for different LabVIEW projects, but can't have one project talk to VSS and another talk to Clearcase. The main application instance (non-project development) will always use the LabVIEW environment setting.



To answer your questions first:

1. Yes

2. I guess so (but see below)

3. Yes (but see below)

4. Use the project's provider.

5. I'm not sure ... I am sure I don't want to have a separate file which needs to be controlled (imagine having to SCC the SCC configuration file )

"Below":

Does there need to be a global configuration at all?  Can't SCC be purely a project-level configuration only (i.e. stored with the project file), with no "global" settings?  If you need SCC for a project, you configure it for that project, otherwise, you just don't.  You could provide a means of copying the SCC config from one project to another, or of storing a configuration for use on multiple projects, but other than that I don't really understand the need for a global configuration at all.

Just my $0.02 CDN

Jaegen

-----------------------------------------------------------------------------------------------------------------------------------
"Duck was a neutral party, so he brought the ultimatum to the cows." -- Click, Clack, Moo: Cows That Type
Active Participant
gmart
Posts: 333
0 Kudos

Re: LabVIEW Project level Source Code Control

Jaegen,

We had the project only SCC discussion internally during the 8.0 development cycle. We ultimately decided that since the 7.x user experience was that you could do SCC operations on a VI by VI basis, we decided to keep that behavior. Also, having a environment setting could be useful as a way to handle projects that don't have any SCC settings.

How would you see this feature working with your SCC process? Thanks for your feedback.

George M
National Instruments
Active Participant
Jim_Kring
Posts: 1,742
0 Kudos

Re: LabVIEW Project level Source Code Control

I don't think that I would use the global SCC option, ever -- I only need SCC settings for projects.  Unless... if there was a way to configure multiple named settings (a.k.a. projects) that I could easy switch between, outside of the project environment.  And, if there were an interface exposed in VI Server that allowed programmatically switching between the different settings, I could integrate this into my own LV "project" tools.  That would mean I wouldn't have to use the project environment, but I could still have multiple SCC settings, with one for each of my projects.
Thinking in G
Trusted Enthusiast
TCPlomp
Posts: 3,097
0 Kudos

Re: LabVIEW Project level Source Code Control

There is one (or more :smileyhappy:) odd thing about the current SCC behaviour. If i disconnect my laptop from the network before launching labview doesn't mention missing the SCC. But when I open a project labview will give for each individual VI an erro message about the imposibility to connect to the database. I think LV should mention it on loading of the project and give only ONE warning! And only check again if 'refresh status' is selected.

Then a per project setting would be nice, maybe with some development envirenment variables %project% or something similar. I like the new project explorer and think a lot more can be done with it

Ton
Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas

LabVIEW, programming like it should be!
Member
Imaginatics
Posts: 24
0 Kudos

Re: LabVIEW Project level Source Code Control

On your questions:
1 & 3 (Two sides of the same issue) Yes to both. A default global SCC should not interfer with a per project mode.
2 & 4  Simply prompt for operator choice on opening the project or code.
5 & later: Your quote:  "Project level SCC should allow you to change configuration settings for one provider only. In other words, you can change the VSS project you use for different LabVIEW projects, but can't have one project talk to VSS and another talk to Clearcase."

I currently wish that last one were available now.  My current client is using Serena for one project and VSS for another, while I would like a default of Subversion.
Active Participant
becktho
Posts: 1,576
0 Kudos

Re: LabVIEW Project level Source Code Control

SCC configuration on project level is something I'm waiting for since I used LV the first time.
 
In general I can double what jaegen wrote. If it is possible, why not get rid of a global configuration?
 
I hope this feature will be available soon.
Using LV8.0
--------------------------------------------------------------------
Don't be afraid to rate a good answer... :smileywink:
--------------------------------------------------------------------
Member
PalamarTM
Posts: 23
0 Kudos

Re: LabVIEW Project level Source Code Control

I have been using source control on my C, apps since PVCS used to have a penguin as a mascot and it ran on DOS 3.0. Since then I have migrated most of my new work to CVS running either on Linux or Server 2003. This week I muddled through the task of making LabVIEW 8.2.1, CVS, PushOK CVS SCC and LVDiff work together. So today I was searching for how to get project level control of my SCC only to find this thread which clearly states that is not an option in LabVIEW 8.2.1. So here are my comments on  the questions...

From what I have seen, Microsoft Visual Studio 6 allows you to setup the SCC provider on a global basis and then gives you additional capabilities on a project-by-project basis. For years I would have thought this all you would need until I did a consulting project. I wanted to SCC the project, but the company I was working for used VisualSourceSafe. I ended up using and SSH tunnel across the Internet to check source in and out on my servers and then gave them a copy of the source at each release so they could check it into SourceSafe.

As a minimum I would like Project level control of the "Source Control Project" so that all of my LabVIEW code does not have to go into a single CVS module. At this point I think you will need to be backward compatible and support some kind of global setting since I will probably have a large code base already checked in to a single CVS module. In this case if I do not override the SCC settings on a project I would want it to at least default to the global settings. This would keep me from having to go back and change all my existing projects. There are, of course, test apps and sandboxes of LabVIEW code that I would not need SCC for so I should also be able to disable the feature on a project basis as well. If you want to go the extra mile, then allowing specification of both the SCC provider and module at the project level would probably be of aid to the consultants which might need to check in source code at their customer sites, or for those of us that have two different systems running at the same company to support legacy repositories. Frankly I do not care where you store the project level configuration - you at NI probably know the best place for it based on your project settings layout.

 

Active Participant
gmart
Posts: 333
0 Kudos

Re: LabVIEW Project level Source Code Control

Project level SCC configuration was released in LabVIEW 8.5. If you have access to the latest LabVIEW, I'd recommend giving the functionality a try.
 
I'd also be interested in your experience (successes, problems, caveats, etc.) with Push OK CVS. There are developers who use Subversion and are adherents to Tortoise SVN. They don't seem to take interest in the plugins for SVN or CVS. I'm not sure whether it's the effort (and possible aggravation) they feel would be needed to get up and running or something else.
George M
National Instruments
Member
plessnick
Posts: 66
0 Kudos

Re: LabVIEW Project level Source Code Control

Hello,

 

There is one missing feature in LabVIEW Project Source Code Control.  Renaming a file in a project that is already added to SCC should rename the file under the SCC also.

 

Best,

 

Patrick