View Single Post
  #1   Spotlight this post!  
Unread 20-12-2010, 01:13
SuperS_5's Avatar
SuperS_5 SuperS_5 is offline
[Certified LabVIEW Developer]
FRC #1219
 
Join Date: Dec 2010
Rookie Year: 2010
Location: Canada
Posts: 140
SuperS_5 will become famous soon enoughSuperS_5 will become famous soon enough
Source/version Control

Hello, community.
I am a professional LabVIEW programmer, and this is my first year mentoring a team. I did a search of the forum about version control, I wanted to see what this community uses, but found very little. So after the lackluster search result, (probably due to my poor search skills) I was inspired to write this suggestion post.

Many programmers, (professional and non-professional) resist adapting to use version control, but I believe that it is essential. Although, one may manage without some kind of version control, it is very beneficial to use it. Even if a program is developed by a single programmer! When use correctly, version control is essentially a great backup system. It also allows for distributed work flow.

Version control works with all programming languages, but as I am a LabVIEW programmer, I will stick to LabVIEW. There are several solutions, 3 of which are quite common in the LabVIEW community; GIT, CVS, and SVN. I personally use SVN, with TortoiseSVN (TSVN) as the client. TSVN is a windows client that integrates with windows explorer instead of the development environment. This comes at the cost of tight integration. The project would have to be closed before updating the whole project. A major benefit is that any file type is supported. Documentation, VI's, LabVIEW project files, etc. There is a evaluation package available from JKI labs that allows TSVN operations on single/multiple files. (Whole projects get complicated) The evaluation uses a nag dialog instead of a time limit. In my experience, this combination of tools; VisualSVN, TSVN, JKI TSVN, has worked wonders for multi-developer environments and for recovering for computer disasters. I know that many developers use GIT, and CVS successfully, however, I find SVN very easy to set up. Other SVN clients for Mac, and various Linux distributions are also available, and mostly work together. (Programming technique would have to be more careful when using cross platform development, and I am not sure if the FIRST installers work cross-platforms.)

LabVIEW has some native Diff (difference) and Merge tools. They are usually located at <NI install folder>\Shared\ The sub-directory is the tool name. LVMerge, and LVDiff. I am not sure if they are installed with the FIRST installers, but will check when I get into work. The tools do not need to be installed, just copied onto the local hard disk. Most version control tools allow for external diff/merge tools to be mapped, and used instead of the client's native tools.

If there is enough interest, I will dig up the various tutorial
, and documents, and put together some 10min localhost setup tutorial. (Using a server, can be just as easy, but most school networks will cause it to be more difficult)

On a second note, I would also like to know how the community deals with multiple programmers, and backup methods. So please reply with your team's general solutions if possible.


Mike
Reply With Quote