• Subversion
  • Git
  • SSH
  • GitLab
  • NAS - Network Attached Storage
Version Control
Version control allows you to easily back up your work to a remote server, revert changes, and see what has changed in your code. Ctrl-Z is not Version Control. Version Control is not just for teams of developers. It is a necessary tool for all developers and all projects even if just one person is working on it.
GitHub is a perfectly good option for beginners to use. If you start to have code you'd rather not have on the cloud for other people to poke around, you can run your own Git server. NEVER CHECK IN PASSWORDS even if you're running your own private server.
When using GIT, you will want to use SSH keys. On Windows, you can use a tool called PuttyGEN to create your SSH Keys.
This will not run in a usable way on a RaspberryPI 3. Maybe one day. Save yourself the trouble and if you want to run your own GitLab server (basically your own GitHub), buy an older used machine with an I7 processor and plenty of diskspace (500GB min) to hold your projects. GitLab really needs a dedicated machine. Don't try to install other software on it.
When you checkout a GIT repository you have a complete copy of the repository. This means if your server crashes, you can restore the repository on the server from your local copy. Still, backup the server periodically.
  • Apache Subversion - Server (Runs on Windows or Linux)
  • TortoiseSVN - Client for Windows
  • Synology 4 bay NAS DiskStation DS918+ - Synology NAS solutions make it very easy to run and manage a Subversion server
Subversion takes a bit more to set up. Especially if you want to enable passwords for accounts and not just have anonymous access.
Unlike Git, Subversion only checks out the most recent version of the files. If your server crashes, you will lose the entire history of your respository. But at least you'll have your working copy to create a new repository from. Backup your Subversion repositories on a regular basis.