The question is fairly self-explainatory.
Is it worth using VCS (Version Control Softwares) for hobbystic/small/personal projects?
10
Yes, it is worth using a Version Control System/Software Configuration Management system such as CVS, git, mercurial, subversion, etc. If you don’t use a true version control system, you’ll probably end up creating your own ad-hoc system with folders or zip files, and it won’t be nearly as capable, efficient, or as easy to use as a commercial or open-source version control system.
You originally mentioned CVS, but that may not be the best fit. It’s old and it’s designed to be installed on a central server (though you can just install it locally). Although it has branching and tagging and merging, it doesn’t always do a good job. You would probably be better served by a modern distributed version control system like git or mercurial. And although you can technically use any version control system, you can work a lot more smoothly if you choose one that is well-supported by the other tools in your toolchain.
1
Yes, it’s worth using, but for different reasons than are typical on large shared projects:
- You might have long gaps where you don’t work on a personal project. Having the history makes it easier to see where you left off.
- It makes it easier to experiment and get back to a known good point if it doesn’t work. On personal projects I do this much more often than at work, where I usually don’t have the luxury of spending time on a concept that doesn’t work.
- It makes it easy to sync between different environments, say a laptop and a desktop.
- You can easily get a bitbucket account or similar and have a backup of all your work, together with an issue tracker that helps you keep track of what you wanted to do next.
- It makes it easier to answer questions like, “Have I really removed all the debug code I don’t need anymore?” or “What have I changed since this part last worked?”
No, you probably shouldn’t be using CVS, as the world has moved on and that software isn’t being maintained any longer.
You might want to look into newer version control systems like Subversion (fairly similar to CVS, as both are centralized) or Git (distributed, feels more lightweight, but has a long learning curve). I personally use Git for any project that has it’s own folder, no matter how small: Creating a new repo is an incredibly cheap and easy operation and has no real downsides.
Yes. You don’t know when a project will become something much bigger or when you’ll want to go back in time. Also, it’s good practice.
On the other hand if you are just doing very small things, like tutorials or things you doubt you will be using a week from now, I say “why bother?”.