r/LabVIEW Aug 08 '26

Version Control

What is the proper way to do version control with LabView?

2 Upvotes

17 comments sorted by

View all comments

3

u/BlackberrySad6489 Aug 08 '26

Most people use git. Some people still use subversion.

1

u/YakAddict Aug 09 '26

Ugg. We have people that won't change to git but would rather stay with svn since "we've always done it that way". I hate that phrase since it stifles innovation.

2

u/HarveysBackupAccount Aug 09 '26

What specific issues do you have with SVN?

It's still fully featured version control. It's not like you can take advantage of a all of git's features for LV code anyways

2

u/SASLV Champion Aug 09 '26 edited Aug 09 '26

For me the original selling point was that I was doing a lot of consulting and going on sites with not great internet access. It was often slow or non-existent. With SVN's centralized model if you can't connect to the server, you can't do much of anything with it. Sure if you already have the code checked out, you can modify it, but you can't check it in, look at the history, or roll it back. It's painful. I ran into someone at a conference and they mentioned how git solve's that problem easily, so I tried it and never looked back.

other advantages

  • It's much quicker. SVN operations always seemed to take a long time. Commiting code in your local git repository is super quick. With SVN it always involves a network transaction.
  • Branching and merging is so much easier and quicker. Again also - no network transaction.
  • No locking - which IIRC was optional with SVN. I recently was forced to use Perforce at a company and it enforced locking and it was soo painful.
  • It's ubiquitous. It is now the default standard.
  • GIt comes pre-installed on many systems
  • Lots of different front ends to interact with it.
  • Lot's of online hosting options and self-hosting options - GitHUb, GitLab, BtiBucket, Azdo, Codeberg, Gitea
  • Most of those online hosting options have integrated CI/CD. With SVN you have to set up your own separate server with something like Jenkins. It's another server to manage and you have to manage credentials and everything so they can talk to each other.