And do you know a tool which meets those demands?
closed as too broad by gnat, GlenH7, Bart van Ingen Schenau, MichaelT, Kilian Foth Aug 11 '14 at 8:11
There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs. If this question can be reworded to fit the rules in the help center, please edit the question.
The minimal features a versioning tool needs to be able to do - apart from versioning itself, of course - are:
Other features that I'd consider essential include:
Apart from all this, I'd hate to work with a non-distributed VCS. Git has completely spoilt me with the ease of keeping multiple changes in different branches around at the same time without conflict, then combining one branch with another very easily. To say nothing of the ability to keep your entire repository, with its entire history, on your own computer for quick searches. Moving back to the far more static SVN - despite its fantastic tools - would be really hard for me right now.