03-09-2022 12:51 PM
Everyone, please note that the original question was asked in April 2016, so we are nearly 6 years after the fact discussing it. So there really shouldn't be a "To get back to the original question" because it's not something that someone is trying to solve now...
The follow-up question of "Does something like this exist", the answer is clearly "no".
The further discussion of whether something like this could or should exist is potentially legitimate. It might have been better placed in its own thread though.
Something like this clearly could exist if it was attempted, and we know this because the file format for NXG most definitely was done this way. GVI files were XML and you could look in them. However, changes were hard to pry out of the file because it was littered with tons of unhelpful things among the things that were human-readable.
While it should be theoretically possible to write a script that traverses the entire front panel and block diagram of a VI, finds every object on them, and then reads out all of their properties, there are enough "under the hood" things that would make putting a VI together again exactly the same as it was before not realistically possible. NXG was able to do it because it was engineered that way, but I don't think anyone short of a very dedicated team of NI employees working on this for a long time could make it work perfectly.
I think the real answer to the root of the follow-up question here is that there isn't something like that, and probably won't ever be, but if your objective is truly to get a better way to use a source control solution designed for text files to work for LabVIEW files, I don't think it will happen. The two things you can realistically do now are to use the "Separate compiled code from source file" option on your files so that changes to other VIs are much less likely to cause ripple-effect recompiles to create false positives for code change, to be much better about documentation (in the VI itself, in the VI properties, in the VI history log, as well as in comments on source control commits), and to use the LVcompare tool when you still need to know more about what changed.
Traditional text-based comparison tools are basically 1-dimensional, comparing long text strings with each other. LabVIEW has additional dimensions to compare so it will never truly fit in.
03-09-2022 01:27 PM - edited 03-09-2022 01:54 PM
@apchar_ wrote:
By text I meant something readable (like xml.) The native format is unreadable (lots of oddball characters.)
Not only is it not human readable, it is proprietary. The only way to make it human readable is through the LabVIEW IDE and that formats it to a graphical display.
EDIT: I didn't note the thread spent a lot of time in a coma.
I think the SCC tools have been discussed already. They do their job just fine. SCC controlls source code and source code changes. Period! It deals with WHAT, WHERE, WHEN AND WHO. That is all. It makes nearly no provision for WHY (some comments but you might just as well hit Ctrl+Y on your vi)
"Why?" Is a WorkFlow Control question and requires a WFC system. Something that tracks why a change is to be made and what changes are to be made/investigated. JIRA, Bugzilla... are examples . Asking SCC to do WFC is like asking the house you are building to compare changes to architectural drawings. Unreasonable and counterproductive to actually delivering the completed home.