And do you know a tool which meets those demands?
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.