Another option (which is probably what Dataact's LabVIEW version chooser does) - write an application which will register the VI extensions - when it is called, it will open the VI in the current working LV version through VI server and throw a popup if it was saved in an earlier version. Personally, I probably couldn't stand it.
If you want something faster than that, how about writing a simple VI which will go into the tools menu and just return a popup with the version of the VI it's called from?
Another option is that while you don't have that subVI in memory now, you did have it at a previous time and the wrong subVI got linked to the calling VI. When you saved it, it remembered the wrong VI (as it should).
What you might want to do is one of two things -
In most cases I absolutely agree with you. In fact I have been thinking about using somekind of code checkout system, just havn't wanted to get into it yet.
here's what I did...
Labview is closed. I have a directory containing my vi's. I make a copy of it. I then open the top most vi from that new copy directory. I expect that Labview will look in all the sub directories of this new copy directory. And for the majority of the vi's it does exactly that. But for a few cases it tries to pull them from the original directory, even though the files exist (are in fact exact duplicates) in the new directory.
And am I the only one who thinks it might be useful sometimes to over-ride what Labview is automatically trying to load?