Local only, revision/version/source control
From what I’ve read: Subversion, Git, Mercurial, Bazaar are good version control software.
Subversion is a server based one.
But what is the best (and I encourage adding your own) system when the only requirements are:
- Git - How can I list all files changed on the master branch between two times?
- can not using git to add directory recursively?
- Tortoisesvn skips recording mergeinfo
- merging to branches, doesn't matter which one you merge into?
- Workflow for maintaining local repositories of remote subversion repositories
- simplicity – single-user / local
- I want to “go back (and forward) in time”
- integrates well with Visual Studio 2010.
This will be used with C++ if that matters and maybe C# in the future. I don’t really want it to be cluttered by server interface things that I’ll never use. The backward and forward I suppose implies branching.
3 Solutions collect form web for “Local only, revision/version/source control”
If you are thinking about SVN then choose Hg instead, it’s much better at branching and is decentralized. SVN is not. GIT, on the other hand, is but a lot of people use it centralized anyway (github, for instance).
It does not really matter what language you’re gonna write in.
If you want to use Hg with Visual Studio then perhaps VisualHG is the thing for you.
Out of these, I would say Mercurial is your best bet. It is:
- is well-supported on Windows, unlike git (historically)
- is supported within Visual Studio (see the list of tools)
- handles merges better than svn (and make no mistake, you will eventually merge something)
- requires marginally less setup than svn, as there’s no notion of a “central” repository to set up.
For visual studio integration AFAIK bazaar doesn’t have any and git’s is probably a bit behind the curve compared to svn (visualSvn or ankhSvn) and hg (certainly if you want explorer integration as well as vs)
This gives you a choice of mercurial or subversion. a DVCS or CVS. for a single developer there is not so much to choose here but personally I’d go for mercurial. svn lacks some useful features like bisect and is generally seen as poor at merging. hg will also allow you to more easily break out of single developer mode in the future, should you want to start to share your project with others.