06-22-2022 02:23 PM
@crossrulz wrote:
If there are already SCC hooks, I don't see a reason it couldn't be opened up for somebody to make a plugin.
I haven't used it, but I was under the impression that this is the plugin that you're describing: https://www.ni.com/en-us/shop/software/products/git4g.html
06-27-2022 09:43 AM
@Christina_R wrote:
I haven't used it, but I was under the impression that this is the plugin that you're describing: https://www.ni.com/en-us/shop/software/products/git4g.html
And Windows only..... 😞
Cross platform git is weird with LV. Line endings for the XML files change unnecessarily. The "my computer" keeps changing back and forth from "localhost" (good, transportable) to a specific IP address that may mutate in a DHCP environment causing unnecessary updates. These are LV platform specific inconsistencies that are annoying.
06-27-2022 10:36 AM
@Hooovahh wrote:
SCC in LabVIEW is one of those features I see that lots of work was put into, and then no one uses. In my 18 years of LabVIEW I saw one company use it for one project. Often I'll teach LabVIEW and someone will find that menu only for me to say how no one uses it. It either needs to be modular and open for extension, or it shouldn't exist. Coding practices and tools mature all the time. Adding support for SCC and then only hard coding a couple tools will result in the IDE feeling dated in a few short years. Or in this case a couple decades of stagnation. I was surprised to hear that any SCC worked in Mac. If NI used Perforce, I guess it is expected that it is the only one. I get why NI doesn't remove the feature, but maybe they should disable the menu item by default or something.
We use Perforce and I still don't use that feature.
Maybe next time I get into a project I will turn it back on so I can remember what the struggles I had with it were, but I did try it for a while and ended up going back to just doing everything through P4V. IIRC, I think it didn't really keep track of the state of each file very well. (i.e.; often didn't properly recognize if a file was checked out or not.)
Is it hard coded though? How do the existing SVN/Git plugins work then? Or do they not actually use those configuration settings? (As you can tell, I've never actually used them.)
06-27-2022 10:47 AM
@JimB. wrote:Is it hard coded though? How do the existing SVN/Git plugins work then? Or do they not actually use those configuration settings? (As you can tell, I've never actually used them.)
I know the Viewpoint TSVN plugin uses the Project Provider and has nothing to do with the built-in SCC configuration.
06-27-2022 01:18 PM
@JimB. wrote:Is it hard coded though?
The Perforce SCC in LabVIEW uses a plugin-based system, so no, it is not hard-coded. There are two plugins that ship with LabVIEW... Perforce Command Line and Perforce SCM. The SCM has all sorts of issues and I've never used it. The command line works well.
I don't know that anyone other than NI has ever written a plugin for the built-in SCC system, but it is possible.
06-27-2022 03:50 PM
@Darren wrote:The Perforce SCC in LabVIEW uses a plugin-based system, so no, it is not hard-coded. There are two plugins that ship with LabVIEW... Perforce Command Line and Perforce SCM. The SCM has all sorts of issues and I've never used it. The command line works well.
I assume it must have been the P4CMD version I was using since, for some reason, it is the only one that shows in the drop down for me.
Probably not worth looking into if the SCM one has "all sorts of issues", but I think their MSSCCI plugin isn't really a thing anymore. I'm guessing not having that is probably why I don't see it available.
@Darren wrote:
I don't know that anyone other than NI has ever written a plugin for the built-in SCC system, but it is possible.
Hmmm... Looks like they are under ..\vi.lib\SourceControl\Providers, if any intrepid folks wanted to take a whack at it.
06-28-2022 08:51 AM
@JimB. wrote:
@Darren wrote:
I don't know that anyone other than NI has ever written a plugin for the built-in SCC system, but it is possible.
Hmmm... Looks like they are under ..\vi.lib\SourceControl\Providers, if any intrepid folks wanted to take a whack at it.
If that's the case then I'd really want to talk to either JKI, or ViewPoint and find out if they know that the SCC built into LabVIEW can be extended. If they did know that then I'd want to know what made them make the decision to use the Project Provider instead. Maybe they know something about the usability, or limitations of that system.
The SCC in LabVIEW predates the Project Explorer, so they might just say that they wanted to use it over the Tools menu, since it is what people use to manage a project after all.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
06-28-2022 10:41 AM
@JimB. wrote:
Hmmm... Looks like they are under ..\vi.lib\SourceControl\Providers, if any intrepid folks wanted to take a whack at it.
And ..\vi.lib\SourceControl\sccapi looks like it has the template for what is needed. But I didn't mean for this to get this involved. It looks like the general consensus is that the built in SCC is useless and unused and all the SCC activity takes place outside of the IDE through a 3rd party app.
I think the suggested best practice is to use Source Tree with git for SCC (especially for cross platform development) and that I should ignore the built in SCM modules unless I want to drag in all the Perforce machinery.
07-11-2022 04:58 AM
@Darren wrote:
@JimB. wrote:Is it hard coded though?
The Perforce SCC in LabVIEW uses a plugin-based system, so no, it is not hard-coded. There are two plugins that ship with LabVIEW... Perforce Command Line and Perforce SCM. The SCM has all sorts of issues and I've never used it. The command line works well.
I don't know that anyone other than NI has ever written a plugin for the built-in SCC system, but it is possible.
It's certainly possible and I was under the impression that TSVN was also a plugin for that system (and a project provider plugin too) but I may be mistaken. The problem with SCC plugins in LabVIEW was that it was poorly documented and hidden behind a non-disclosure pay wall. I did kind of reverse engineer that plugin back in the days but not having official documentation it didn't seem like a feasible path to follow for future version compatibility.
Another problem with the SCC plugin is that it is very much based on the old Microsoft SCC API with its synchronous check-in and checkout paradigma and isn't very suited for SCC's that don't rely on source code locking and unlocking in a central repository. In terms of GIT it is completely contrary to how GIT is really working and the workarounds to make it work with GIT make the already complicated GIT mechanismes completely obscure.
07-11-2022 05:05 AM
@Hooovahh wrote:
@JimB. wrote:
@Darren wrote:
I don't know that anyone other than NI has ever written a plugin for the built-in SCC system, but it is possible.
Hmmm... Looks like they are under ..\vi.lib\SourceControl\Providers, if any intrepid folks wanted to take a whack at it.
If that's the case then I'd really want to talk to either JKI, or ViewPoint and find out if they know that the SCC built into LabVIEW can be extended. If they did know that then I'd want to know what made them make the decision to use the Project Provider instead. Maybe they know something about the usability, or limitations of that system.
The SCC in LabVIEW predates the Project Explorer, so they might just say that they wanted to use it over the Tools menu, since it is what people use to manage a project after all.
My guess is that the menu based SCC integration as implemented in LabVIEW isn't exactly feeling intuitive with everyone being used to Tortoise SVN and Tortoise GIT. The ability to directly select SCC operations on the source tree is so much more intuitive than having to go into a central menu and selecting options from it, that it seems a simple no brainer decision if you have access to the project provider plugin documentation. I definitely prefer to work in Tortoise SVN even if it means switching applications than trying to use an SVN SCC provider plugin in LabVIEW if it would exist. It was one of the reason that I never really pursued the idea of creating such a plugin in the first place, even after having found out how a new plugin could be created and added (yes the plugin interface is extendable by adding the correct registration VI for your plugin in the correct place).