LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Version Control

Hi

 

Andrey's observation of missing integrated support for recent SCC's is quite telling about NI's interest in this area.

 

There was a time when NI was very active. See :

 

https://forums.ni.com/t5/LabVIEW-Development-Best/Software-Engineering-Technical-Manual-and-Exercise...

 

Elijah made this impressive push in 2010 to 2013, but then seemed to run out of air :

 

softball_0-1786522920595.png

NI is still struggling with Diff and Merge.

 

I would prefer to avoid that problem using file lock'ing which however is not used in modern SCC's by default.

Google AI states this about the situation :

 

The pioneer and first major Source Code Control System (SCCS) created by Marc Rochkind at Bell Labs in 1972 implemented a locking mechanism upon checkout. Many subsequent traditional centralized version control systems also used this "pessimistic locking" model. [1, 2, 3, 4]
Early and Traditional Lock-Based Systems

 

  • SCCS (Source Code Control System): The original 1972 tool that forced a single user to lock a file during checkout to prevent concurrent modifications.
  • RCS (Revision Control System): Built as an improvement to SCCS, it similarly utilized file locking during checkout.
  • Microsoft Visual SourceSafe (VSS): Depended heavily on exclusive file locking by default during a check-out.
  • PVCS (Polytron Version Control System): Used a strict locking design where checked-out files were locked against other updates.
  • Rational ClearCase: Enforced pessimistic check-out locks to restrict editing to one developer at a time.
  • Perforce (Helix Core): Traditionally utilizes optional or exclusive file locking (+l file types) during a check-out/open command. [1, 2, 3, 4, 5, 6, 7, 8]

NI themselves used Perforce in the old days.

 

SVN can enable file locking on demand.

 

GIT is handy to track VI changes using a nice GUI like SourceTree from Atlassian ( there are others ).

You can see when you made changes although you cannot ( in practical terms ) see what was changed.

 

And thanks to Yamaeda for pointing to the -VERY- old LabVIEW file saving concept which still do support sensible VI re-naming for versioning as prompted whenever we save a VI :

 

softball_1-1786526220773.png

 

For what it is worth then selecting two VI's for comparison is easy with that name versioning concept.  

 

Regards

 

Message 11 of 19
(220 Views)

@BertMcMahan wrote:

We used SVN for several years and have recently begun making the switch to Git. It's been "clicking" a lot better for me than I thought it would, and I like it a lot better. I used TortoiseSVN, but now just use Git via the command line. 


I have TortoiseGIT installed, but i don't user it currently.

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 12 of 19
(217 Views)

@Bob_Schor wrote:

@Yamaeda wrote:

You save the VI with a new name each time, so you have Main.vi, Main2.vi, Main_new.vi, Main_newnew.vi, Main_forreal.vi, Mainv3.vi and so on ... or not.


I hope you realize that @Yamaeda is not being serious!  Along with @GertW, I've also been using SVN for about two decades.  Their tutorial is pretty good, and there's even a paperback book on an earlier version (I've got it somewhere ...).


I thought the "or not" gave it away. 🙂

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 13 of 19
(213 Views)

@softball wrote:

Elijah made this impressive push in 2010 to 2013, but then seemed to run out of air


If I have the timeline correct in my head, Eli got a new position which is why this effort ran out of air. He was also quite successful in convincing the community to start thinking about SCC.

 


@softball wrote:
Early and Traditional Lock-Based Systems

 

  • SCCS (Source Code Control System): The original 1972 tool that forced a single user to lock a file during checkout to prevent concurrent modifications.
  • RCS (Revision Control System): Built as an improvement to SCCS, it similarly utilized file locking during checkout.
  • Microsoft Visual SourceSafe (VSS): Depended heavily on exclusive file locking by default during a check-out.
  • PVCS (Polytron Version Control System): Used a strict locking design where checked-out files were locked against other updates.
  • Rational ClearCase: Enforced pessimistic check-out locks to restrict editing to one developer at a time.
  • Perforce (Helix Core): Traditionally utilizes optional or exclusive file locking (+l file types) during a check-out/open command. [1, 2, 3, 4, 5, 6, 7, 8]

You are reminding me of the nightmares of using PVCS back in the day. I was so happy when I convinced people to let me use SVN in a non-official capacity to keep my development racks in sync and then occasionally update what was in PVCS. It literally saved me a day per week by putting the racks on a private network and have then use a shared folder as the SVN server location.



There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 14 of 19
(167 Views)

@Yamaeda wrote:

@BertMcMahan wrote:

We used SVN for several years and have recently begun making the switch to Git. It's been "clicking" a lot better for me than I thought it would, and I like it a lot better. I used TortoiseSVN, but now just use Git via the command line. 


I have TortoiseGIT installed, but i don't user it currently.


Yeah, after I started using the command line, I didn't feel the need to install TortoiseGit. For whatever reason, my brain "understands" what I'm doing a little better when I just use command line arguments than using the GUI. It only took a day or so of playing with it for me to get comfortable with Git's command line interface, and now I'm just as quick (probably quicker) than I was with the TortoiseSVN GUI.

Message 15 of 19
(150 Views)

@BertMcMahan wrote:

@Yamaeda wrote:

@BertMcMahan wrote:

We used SVN for several years and have recently begun making the switch to Git. It's been "clicking" a lot better for me than I thought it would, and I like it a lot better. I used TortoiseSVN, but now just use Git via the command line. 


I have TortoiseGIT installed, but i don't user it currently.


Yeah, after I started using the command line,


Yes, I also use the Git command line and GitHub Desktop.

 

However, one feature that I miss when working in a team, especially when multiple engineers are working on the same project, is file locking, which prevents multiple users from checking out the same file for editing at the same time:

 

Unbenannt.PNG

 

What I particularly liked about Microsoft SourceSafe was its integration with LabVIEW IDE. It allowed me to see directly within the project which files were currently checked out by other users (and by me myself with other icon). This made it easy to know who was working on what and helped avoid editing conflicts.

Message 16 of 19
(139 Views)

Edit: misread the post.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 17 of 19
(93 Views)

Here's an old, but good, blog post from Delacor on source code control. Also includes video demos for setting up SVN, Mercurial, and Git repositories.

 

Every Developer Needs a Time Machine |

Message 18 of 19
(77 Views)

Hi

 

NI made a Supplemental detailed web document in 2009 or so, describing LabVIEW interaction with SCC ( Perforce ) and other useful details :

 

https://www.ni.com/en/support/documentation/supplemental/21/managing-labview-vi-and-application-revi...

 

The document states this :

 

Source Code Control Integration from LabVIEW

LabVIEW provides integration with industry-standard source control providers like Microsoft Visual SourceSafe, Perforce, Rational ClearCase, PVCS Version Manager, MKS Source Integrity and free, open-source software like CVS. This integration provides access to functionality in third-party source control providers within the LabVIEW environment.

 

The document even mentions the Revision History of a VI as saved within the VI.

 

Nostalgic reading.

 

Regards 

0 Kudos
Message 19 of 19
(54 Views)