Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

AF and Source Code Control

I have noticed that when I create a new class that inherits from Actor and then make a new vi for override (Actor Core.vi, Pre-Launch Init.vi, etc.) that all of those methods in other actor classes get resaved.  This causes all of the same named methods in all other actor classes to appear to be changed in SCC. 

When I make changes on one of my systems and then commit the changes it causes all sorts of conflicts.  Most of these conflicts are not real.

Is there something I can do so that those other VIs don't get flagged as being edited?

Thanks,

Casey

Casey Lamers


Phoenix, LLC


casey.lamers@phoenixwi.com


CLA, LabVIEW Champion


Check Out the Software Engineering Processes, Architecture, and Design track at NIWeek. 2018 I guarantee you will learn things you can use daily! I will be presenting!

0 Kudos
Message 1 of 6
(4,429 Views)

I have the same issue, but found that if you consistently use "separate compiled code", the "being edited" marking is greatly reduced. I recommend SCC (separate compiled code) to everyone using SCC (source code control) - hehe same abbrev. for both

-Benjamin

_________________________
CLA
0 Kudos
Message 2 of 6
(3,263 Views)

Unlikely. As I understand it, the mutation history of a class includes mutations in its ancestry. And since a LV class is just a LV library, a change in any owned VI (method) is interpreted as a change in the class itself (even though the class private data might not have changed).

The only things I've found for preventing recompilation in otherwise unrelated code is either building classes into .lvlibp binaries (yuck) or using a source control provider that has a file lock feature. I'm not sure whether the latter increses the eventual likelihood of a corrupted project.

I've noticed another cause of rippling dirty dots in my AF application: All msg classes created by the Message Maker tool have inlining enabled on the Send VI. That means any change to the Send method requires a recompilation of every diagram that calls that method. I'm sure the intention was to reduce call overhead for sending messages, but it's one thing I changed in my copy of the template class to try and reign in the source control nightmare.

0 Kudos
Message 3 of 6
(3,263 Views)

> a change in any owned VI (method) is interpreted as a change in

> the class itself (even though the class private data might not have changed).

False. Conpane changes to the VI are changes to the class, which participates in validation with ancestors, but internal changes (like rewriting the block diagram or changing comments in the Context Help) have no impact on the class. Plain libraries do not even record the conpanes... the only way a change to a VI affects a .lvlib is changing the VI's name.

CaseyLamers1: Yes, the option you want is the "separate source from compiled code" option.

Message 4 of 6
(3,263 Views)

Thanks for the clarification. So much of this stuff feels like voodoo...

0 Kudos
Message 5 of 6
(3,263 Views)

David_Staab wrote:

Thanks for the clarification. So much of this stuff feels like voodoo...

It is voodoo. LV's voodoo is just more accessible than most computer-related voodoo. 😉

0 Kudos
Message 6 of 6
(3,263 Views)