Continuing and hoping to widen our discussion from last week...
What do you guys use for source code control with LabVIEW? What do you like and dislike about the tool you've chosen? Does anyone know what NI uses internally?
I use Perforce. Here are the reasons why:
1. Integrates into the LabVIEW IDE so I can check in and out files without using the Perforce app.
2. Was at one point the standard at NI so I figured they would support it within LabVIEW better than other options (eating their own dogfood).
3. Is our corporate standard here so I don't need to own the repo, just have access to it.
4. Supports locking files on checkout.
What I don't like:
1. I find that checking in files works better from the Perforce app than within LabVIEW.
2. Difficult to setup. Some strange hoops you need to jump through or just guess at to get it integrated.
3. Connection can timeout when launching LabVIEW if you do not log into Perforce quickly. No way to recover other than restarting LabVIEW.
4. Not integrated with any sort of online solutions like GIT or others offer.
I would consider switching if NI decided to support a better option as a first class citizen with hooks into the LabVIEW IDE and a clear workflow.
Last point, I wish we could eliminate the need to checkout and save files that do not get changed when editing our code. There seems to be persistent issues with LabVIEW dirty-doting VIs that were not edited, leading to less that clear source code submissions. Kinda hard to explain why you are checking in a file if you do not know why it was changed.
Back in 2011 I was blessed to be given a Server (5TB disk) that our local IT Group maintains as I had requested an available box for this particular use (among others). I then purchased the Server side software application known as VisualSVN Server - Enterprise Edition (VSVN) for $1K.
One purchase influence was that our most experienced developer at the time suggested either using Mercurial or Subversion.
One more influence was that I had read several NI documents (see the attached files as some of what I had read back then) and it appeared at that time that Subversion was the most common tool used along with Perforce.
One final and a major influence was that we had been "stuck" using Clearcase (CC) up until 2011 which was not well supported within Boeing, and was just not a good fit for me and one other LabVIEW developer who dreaded having to configure, use, etc. for far too many reasons to describe. We could not wait any longer to throw out CC.
Since 2011 my role as the VSVN administrator is to install the VSVN upgrades or patches and I have not had any problems at all. To be able to install the one handful of upgrades, patches, etc. that occur each year to the Server software, the yearly fee is less than $500. The software has its own internal backup and verify process for each repository (~50) and the whole Server itself is backed-up offsite on a daily basis.
The client side software of choice has been TortoiseSVN (TSVN) which is a free open source installation that is integrated within Windows Explorer. Note that Windows is the Boeing Company O/S of choice for the everyday PC, which was taken into account concerning the client side software selection. TSVN incorporates various icons so the developer can visually see the status of a file or folder. TSVN can perform lock / unlock with a associated process that each person must follow. One Subversion quirk is that when you download then upload a whole directory, all files have a new modified date (i.e. loses its last modified date) ... which there are work-arounds for that.
Overall Summary: It does what we need it to do and it is very reliable.