You’ve developed a significant amount of code, what would happen if your hard drive died?? It happens. Please back up your code OFF OF your programming computer. It doesn’t have to be fancy, put it on a USB drive or even email it to yourself. Keep lots of versions and don’t delete the prior ones. When I was programming at HP, I copied versions to a system in another state, regardless of the daily R&D backups.
If you’re using a Cloud repository, note that there may not be WiFi at competitions, and FIRST discourages hotspots at competitions.
If you’re using a USB drive, tie it to a piece of pool noodle with your team number on it, so you don’t lose it in your pit.
USB tethering is your friend if you can get a signal. Make sure your programming laptop can connect to a phone and has any drivers needed for it before you go to competition.
I don’t know what happened to the Mac, this was in the E-waste pile of a client, years ago, nothing to do with FIRST. I didn’t ask, I took the picture to illustrate my point about backups.
In my PIC microcontroller projects (work and personal), I have a slick little Python script that retrieves the git head info. The script is run as a pre-compile step, and it generates a header file with the commit ID. The code includes that, and so I can automatically print the git version (and compile time) out the UART at startup. It eliminates “wait, what version of the firmware is this one running?” problems.
I would highly support using a version control system and learning effective branching strategies to divide up work and make using that VCS easier for the team to adopt! The less of a challenge something is to integrate into a team’s workflow, the more benefit you’ll be able to reap from it!
I got our team’s programmers started on GitHub and established some fundamental branching strategies that have made distributed development work a lot easier. Granted with new things come their challenges, but with time and experience we can make a lot of efficient progress on future projects!
There are plenty of resources for Git, branching, and merging, and setting up your team with a repository is a surefire way of backing up data!