View Single Post
  #1   Spotlight this post!  
Unread 06-04-2014, 20:19
Ben Klebe Ben Klebe is offline
Registered User
FRC #5347 (The Gryphons)
Team Role: Programmer
 
Join Date: Mar 2014
Rookie Year: 2010
Location: Weston MA
Posts: 3
Ben Klebe is an unknown quantity at this point
Re: Source/Version Control

Quote:
Originally Posted by joeyoravec View Post
There might be reasons to use Java. Do all the students on your team have Java experience? Does your school have a Java programming class that you are planning to piggy-back off of? Are your software mentors Java experts? Are other local teams only able to help you if you're using Java?

LabVIEW is pretty easy for students who have no prior programming experience. This allows us to focus on robot functionality and design, instead of how to work the programming language.


LabVIEW VIs are opaque binary data; almost any tool will manage them in the same way. Consider the easiest solution that meets your requirements.

How many programmers are on your team? How often are people working on the code simultaneously? How many times did you branch, merge, or compare older versions of the code during this build season?

Our team uses a shared folder on dropbox and creates a new copy at every meeting. It's simple, but it works fine for what we do.
We have a very small team, ~15 members. It could be less next year. As it stands, the programming team consists of me and one other guy. As you said, the main allure of Java is support, but I'm not sure I'm ready to take it on. I've bounced between several languages, I was weaned on Logo with a Cricket then graduated to NXT-G during my FLL years. LabVIEW brings back memories of NXT-G for me, (because NXT-G was built by NI and is very similar to LabVIEW) that's part of the reason why I'm starting to get comfortable with it. Our school doesn't really have a formal programming class, so we unfortunately can't use that for support, though my dad has almost 20 years (since inception) of experience with Java and I believe our mentor has some too.

What draws me to LabVIEW specifically is the ease of data collection, graphical interface, and the idea that it is developed by the same people that make the cRIO and now the roboRIO. I suppose that's mostly symbolic, as the device obviously doesn't care what language generated the binaries it runs.

I have wanted to use Google Code/Drive and Dropbox and specifically asked to, but our last head programmer was messy with his source control and it has convinced our mentor and coach that a more dedicated solution is required.

Quote:
Originally Posted by wt200999 View Post
You can use Perforce for free, the only limitation is that you cannot have more than 20 users. Just remember though, that with a system like Perforce you need to have a dedicated server set up. With something like Google Code or Github you can store the repository on their servers.

Our team has been happy with Perforce, and we have it set up the second way that Greg proposed. We use the P4V GUI to manage our files with no plugins to LabVIEW itself, and we plug LVCompare and LVMerge to that tool. The compare and merge tools are a bit tedious to use however, so we make good use of the lock tool in Perforce, and we make sure students on our team don't manually set files to non-read only. One huge feature we missed this year is the P4Sandbox tool, which allows local & private branching. We were lucky that our regional had good WiFi in the pits, but I know a lot of events don't have this which makes it hard to use perforce at competition (at least without using P4Sandbox).

Whichever tool you do decide to use, make sure you spend a little time with anyone who will be contributing to the repository to train them on proper usage.
The server is the hard part of that. As a team with precious little funding to spare, I'm not sure we could set up a server for it. I have a few old PCs lying around, but I don't see the point in trying to convert them to servers before I know whether or not it will be time well spent.

As for GitHub, we considered it, but for LabVIEW, the process for integration seems finicky. Does anyone have any specific tutorials on how to do it? This is the only one I've found so far:

https://www.youtube.com/watch?v=2dEI6tEMTmQ

The only other concern with using GitHub is the privacy of our code, which may be a non-issue. I haven't decided yet. Does every team open their source during build season?
Reply With Quote