What kind of version control system should I use?

Hey guys… I wanted to ask you about what kind of version control system can I use as a lonely programmer?
I found SVN and Git too complex and have a lot of features that I won’t use any way.
I looking for a simple system that will allow me to track off my changes and store them easily.
Any suggestions? :stuck_out_tongue:

There isn’t that much choice in version control software. You have a choice between SVN, Mercurial, Git and Bazaar. Of all, I think Mercurial was my best experience when working alone.

You can make it somewhat easier by downloading software like TortoiseSVN (SVN), TortoiseHG (Mercurial), or using Github (they have GUI for Windows) (GIT). Eclipse has built in functionality for version control software as well for Git, Mercurial, and SVN. For the best explanation of the lingo used, I suggest looking at the tutorials for Mercurial and Git, as they are the best written.

There are a lot of options, but personally I started on SVN. It was a rough road to learn it from scratch, but once I got past the hurdle I didn’t find the others too hard to learn. Usually, those systems give the most advantage in a group environment since, when working by yourself, you can keep track of your changes. However, that is just how I personally do it.

How were you using Git? Eclipse has a Git plugin that makes updating very easy. It shows you real-time if you have made changes to a class since your last commit. Also, committing is very easy:

Right Click on project->Team->Commit
Type in a description
Click “Commit & Push”

The GitHub app isn’t any different. It’s just in a separate application instead of in the eclipse workspace. It also allows you to check past commits on every project.

I haven’t tried SVN so I can’t say anything about it.

git is not hard if you use it very basic; which I do.

I use the console and all you would do is:


git add -A .
git commit -m 'Message of this commit, tell yourself what major changes this commit has'

git push origin master

and you’re done. “git pull” to pull it from server

not doing any branching in this case, but simple branching is easy too.

Also remember that commits should be as small as possible but of course thats not as easy to follow up upon

If you really dont wanna use git, then you could just have a change-log text file and do backup archives of your code

I still use CVS. I know how it works and it does what I need. Don’t know if it would make sense for anyone that doesn’t already know it to start using it these days. Probably not.

I prefer GitHub. With it’s applications for Windows & Mac, I can easily create commits and sync them online. Some terms to get by

[tr]
[td]Commit[/td]
[td]A commit is a new version. This specifies what files are changed and the changes for the files, including which files are removed.[/td]
[/tr]
[tr]
[td]Push[/td]
[td]A push is a command we issue to upload the commit to the repository. This command is called “Sync” in the GUI version.[/td]
[/tr]

There are so many others and they will be easy to learn and remember (If you want to learn console git, try using TryGit.

Anything but SVN (or CVS and sourceforge will make you want to kill yourself). Centralized version control simply doesn’t work and is outdated. Even with just one dev.

I’m not advocating using CVS just 'cause there’s no margin in learning it. But if you already know CVS and the repo is local…I don’t see any real downsides vs. a more modern VCS.

While a decentralized versioning has its advantages, I don’t see why centralized vcs should not work. I’ve been using SVN since years in teams of 1-10 people and if you know what you are doing this works quite well. I only know one team member, who always had his problems with SVN, but that was because he commited his changes once a week (and one day per week he spent time merging XD).
For my private projects I am using git now, as I like the decentral nature of git. But at work we still use SVN and are happy with it.