|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
||||
|
||||
|
Organizing your programming
Hi all. I was wondering now that the Stronghold season is over how all of your organize your team's programming. I'm putting together teaching tools for my team for c++ and I want to organize an official document for my team to follow when organizing their programs. My team has attempted GitHub, nobody really liked it on my team. I see the value in it, but it did mess up some things and I don't see it as very reliable when not many know how to use it properly. Do any of you use a different way?
Right now my plan is basically to use Google Drive to store archives of different versions of a programming project so that we can backtrack if necessary and have the programmers of the team fill out forms for the lead programmer to read and approve of changed to the programming project being worked on. I would love to hear your method though. |
|
#2
|
||||
|
||||
|
Re: Organizing your programming
Using version control is the way to go. You don't need to use GitHub specifically, but Git can be used offline or with some other server such as BitBucket. SVN is also an option.
Seriously, version control is what is used in the professional world. Git is one of the most widespread VCSs out there. Our team uses it. It's very convenient to be able to go home and code with the most up to date version. It becomes even simpler to use if you have a UI for it (EGit for Eclipse). It's worth spending a day or two to go over how it works. |
|
#3
|
||||
|
||||
|
Re: Organizing your programming
Quote:
I agree that git is a bit annoying to deal with at first, but once you get over the hump it's really quite delightful. What about the workflow did your team have trouble with (and did you use pull requests? they're really the best thing about github). |
|
#4
|
||||
|
||||
|
Re: Organizing your programming
Git is terrible; use git.
The learning curve may be steep, but there is not much that you really need to know to use git effectively. Once you start using git for a bit, it becomes really useful. We started using git to organize all of our programs while I was a student on our and we have since been able to move a manage a lot of different projects using git. Our website is updated using git; our branding files are all managed by git; our robots are all version controlled in git. Git may not be perfect, but it works really well in facilitating collaborative development. |
|
#5
|
||||
|
||||
|
Re: Organizing your programming
This is a perfect summary of version control, right here.
The rest are worse than Git by a mile. SVN and other CVS is awful (we tried; it's slow, poor support, no offline commits which will kill you at competitions). We have not tried Mercurial, but that is due to how (relatively) unsupported it is. To paraphrase Linus Torvalds (inventor of Git and Linux), everyone uses Git, even Microsoft. It is worth learning because of the preparation for the professional world that it provides. Last edited by Philip Arola : 02-05-2016 at 13:16. |
|
#6
|
|||
|
|||
|
Re: Organizing your programming
I know this thread is a few days old, but...
Quote:
This could work if there's like two people working on the code, and if your code is super simple. But honestly, if anyone plans to work in the software development world, you're going to need to learn how to use version control. Now is as good a time as any. I agree with others - git and github are not the easiest thing to wrap your head around. If nobody really gets what's going on, it can be even more frustrating. Trust me, I've been there. What you need to do is find someone who understands this stuff and get them to work with you until you understand it too. Even if this takes a few days or a few weeks, this is absolutely worth the time investment. There are different ways to use git and github. The easiest is to have one repository on github for your projects, add your students as contributors, and let them each develop code in their own branches. (No forking.) Use a variation on the Git Flow software development model. |
|
#7
|
||||
|
||||
|
Re: Organizing your programming
Use git.
https://try.github.io/ We'll be doing some workshops in the fall for NC teams and one of them will be about using git. |
|
#8
|
||||
|
||||
|
Re: Organizing your programming
You don't organize programmers.
You object(ive) orient them ![]() |
|
#9
|
|||
|
|||
|
Re: Organizing your programming
100%. It's a total pain both to teach new programmers, and for the programmers themselves. But it must be done.
Requirement: At least one person reachable by your team must be actually comfortable with git. That sounds like a good job for you! relevant: xkcd.com/1597/ From experience, I can tell you the most helpful thing you can do now is make sure your programmers are programming OUTSIDE of robotics. Team teaching tools are nice when you need to onboard somebody during the 6 weeks, but you're going to end up reteaching the same material to the same people every year when they forget it all over summer. It doesn't matter what they're programming. Games are a nice standby, python + pygame is well documented for newbies. But teaching basic programming only during robotics time is an endless battle. |
|
#10
|
||||
|
||||
|
Re: Organizing your programming
Here's a video that helps explain how git works, to make it easier to understand.
Git For Ages 4 And Up |
|
#11
|
||||
|
||||
|
Re: Organizing your programming
Quote:
|
|
#12
|
|||
|
|||
|
Re: Organizing your programming
Quote:
Our software students wanted to work together on a little video game, and some of them have also worked on our vision code and Android scouting app, and there will probably be other small projects to come. It's good to get used to the idea that different projects can be very different from each other, but have similar underlying fundamentals. |
|
#13
|
||||
|
||||
|
Re: Organizing your programming
Free section of 'Mastering Git' book:
http://cdn.oreillystatic.com/oreilly...754_Sample.pdf BTW: PacktPub gives away a free e-book a day. Look for 'Free Learning' on their website. I have several hundred from them. You don't get to pick the topics like that, and the quality may vary, but free as in you click the button and they are yours. |
|
#14
|
||||
|
||||
|
Re: Organizing your programming
Yes, for people that haven't used version control, it will be a little more complex. But if a team has every done a git commit, then they should be able to follow along. They might not know all the commands, but his explanation, I found, was very easy to understand.
|
|
#15
|
||||
|
||||
|
Re: Organizing your programming
I personally am not a fan of Git either. We have been using SVN for 8 years and it works great. We originally had a local respository, but last year we decided to store the repository online using SourceForge. This makes it easier for each programmer to access the updates individually.
As the programming mentor, I am the only one who can commit new code. This allows me to review all the code before it is shared. This also allows me to keep track of the progress being made and if someone needs additional help or support... or is going off on a tangent. At competitions where we have no internet access I make a backup copy on a flash drive each time our lead programmer loads new code onto the robot. This is my role at competitions... just like during build season, I am the source code control system integrator. This backup provides a trail of what has changed between each download if something unexpected is affected. This is very helpful when something suddenly works differently on the robot... it helps the programmers be able to validate with certainty what changed and what did not change in the software. Each backup sub-directory is labeled with what was changed and when, eg. CMP-1b-MoreAutoAngle would be the code from Championship, day 1, version b (or 2nd change of the day), and change was adding more rotation driving to autonomous mode. This reminds me at a glance the types of changes that were made and when. After competition, the final version is committed to SVN and marked as a revision. If you have questions or would like help setting something like this up, please feel free to pm me. Last edited by MamaSpoldi : 06-05-2016 at 15:52. Reason: more details... |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|