LabVIEW Development Best Practices Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Question about the use of Source Control Project when using ClearCase

Hi


I though I would post this question here there seems to be a reasonable amount of source control interest and knowledge.


I have never quite understood what the  "source control project" part of the Configure source control panel really does in the situation where ClearCase is your source control provider. What does LabVIEW think it is really doing with it, I suspect it is not really needed and is just there due to a lack of understand on how ClearCase works.

It has to be set to something or else you cannot use ClearCase as your provider, also you have to set it to a mapped ClearCase dynamic view for it to work and should you remove / delete that ClearCase view or map that view to another drive letter, LabVIEW hangs badly when you next start up LabVIEW.  

However once setup you can happily work using the LabVIEW ClearCase integration on any ClearCase view mapped to any drive letter.

For example


Project A    ClearCase view A mounted to drive S:\

Project B    ClearCase view B mounted to drive T:\ 

Project C    ClearCase view C mounted to drive V:\ 

This it a typical setting, I will switch from Project to Project throughout the day and all the source control integration works as I want it to.

However I have never changed my "source control provider" details which happen to point to a unused ClearCase view on drive Z:

Now the reason I have the un-used view on drive Z: is that typically I use a new view for each bug /feature and when I have finished with that bug or feature and have merged the change back to "main" i create a new view for the next change and if I did that with the view LabVIEW thinks is the "source control provider" one LabVIEW will crash.

So it looks to me like LabVIEW needs a valid ClearCase view just to say to itself, ah OK this is a ClearCase client on this machine so I will let things go ahead a nothing more than that as you do not have to change this setting to work on any particular project.

This make sense to me, knowing how ClearCase work's

cheers

Dannyt

Danny Thomson AshVire Ltd
0 Kudos
Message 1 of 7
(7,977 Views)

I've never used ClearCase, so I won't be able to provide a lot of insight, but I can tell you this: the LabVIEW interface subscribes to an API for source code control that was originally written by Microsoft.  The idea is that any tool that supports this API can be integrated with LabVIEW (or any development environment that has support for that API).  That being said, it seems that some tools have better support for the interface and sometimes it doesn't make perfect sense for the tool, as in the case you've described with ClearCase.

Despite this unnecessary field, does everything with the integration appear to be working?

Elijah Kerry
NI Director, Software Community
0 Kudos
Message 2 of 7
(3,432 Views)

Yes, your comment about the Microsoft API makes sense I can see how how would work.

All the integration works OK and as expected when you have sorted out this "Project" idea, I just wondered if there was a way you could avoid setting this at all.

I suspect that for people who are not power users of ClearCase they could well be confused on how to set it up for best use, I can imagine people changeing this setting needlessly each time they work on a new view.

The Microsoft API thought workable does provides a very limited subset of what can be done with ClearCase.

I have a number of my own VI's to increase this functionallity, creating Labels, setting and reading configuration specifications etc.

If I had more confidence in my LabVIEW I would look at writting my own interface for ClearCase using either command exe and ClearCase Command line instructions or the CAL (ClearCase automation libray) dll.

Looking at your Perforce use, I assume should an interface placed in C:\Program Files\National Instruments\LabVIEW 8.2\vi.lib\SourceControl\Providers\ClearCase would override the Microsoft API functions.

cheers

for your reply

Danny

Danny Thomson AshVire Ltd
0 Kudos
Message 3 of 7
(3,432 Views)

The way I see the SCC API in LabVIEW, such a directory would not overwrite the MS SCC API but add an extra implementation of an SCC API to the LabVIEW SCC system. LabVIEW seems to do the same for Perforce which is integrated using its command line API.

That said the LabVIEW SCC API seems still fairly much build around the MS SCC API paradigma, and that poses some trouble to integrate other SCC systems such as SubVersion and quite likely also Clear Case that work normally in quite a different paradigma really.

Rolf Kalbermatter
My Blog
0 Kudos
Message 4 of 7
(3,432 Views)

You are correct - the API for the integration with LabVIEW is public, and right now you'll find two libraries that it connects with: the Microsoft API and a command-line interface for Perforce.  LabVIEW will automatically detect and communicate with additional libraries if they're put in that directory and implement the correct interface, so you could write a command-line interface for ClearCase that provided much more robust support.

If this is something you're interested in doing, please let me know.  While we don't plan to do this ourselves, we do have R&D resources that can support you in understanding the LabVIEW API and how to communicate with it - plus, we can probably pass along additional documentation.

Elijah Kerry
NI Director, Software Community
0 Kudos
Message 5 of 7
(3,432 Views)

I would be interested to get some information to make a SubVersion plugin. Having looked in the directory and looking at the VIs I got an idea how it should be done, but having some documentation that actually explains everything would be a lot easier than having to figure it out all by myself.

Rolf Kalbermatter
My Blog
0 Kudos
Message 6 of 7
(3,432 Views)

Yes I would be interested, I have sent you a PM about this

cheers

Dannyt

Danny Thomson AshVire Ltd
0 Kudos
Message 7 of 7
(3,432 Views)