Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

And do you know a tool which meets those demands?

share|improve this question
By "demands", do you mean features? –  Gelatin Sep 1 '10 at 20:06
Features, or intrinsic - core - functionality. Stuff that shouldn't be a feature, but should always be there. –  Tobiasopdenbrouw Sep 1 '10 at 20:10
Sound like homework. –  Toby Allen Oct 26 '10 at 9:21
add comment

1 Answer

up vote 3 down vote accepted

The minimal features a versioning tool needs to be able to do - apart from versioning itself, of course - are:

  • diff: Given two files, or two versions of the same file, what has changed between them?
  • revert: Replace a file with another version of that file.

Other features that I'd consider essential include:

  • commit/push: Save local versioning information onto a remote server as a means for sharing it with other users or backing it up.
  • update/pull: Update the files with the latest versions as reported by a remote server.
  • blame: Who was responsible for editing a particular line of a file? In which version was this edit made?

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.

share|improve this answer
Sounds like all 5 features are offered by dropbox and spideroak! o_O –  Cawas Jul 1 '11 at 22:03
Do they really do diff, blame and revert? Definitely push and pull works well for Dropbox, but I'm not sure about the others, and the ability to see where changes come from -- especially a function like blame -- is incredibly useful for a VCS! –  Gaurav Nov 7 '11 at 21:58
ok, maybe not diff... but blame and revert yes, in 1 screen: ediscovery101.files.wordpress.com/2011/05/… –  Cawas Nov 8 '11 at 18:30
@Cawas: Sorry for the confusion! When I said blame, I meant blame in the CVS sense, such as: theadmin.org/articles/subversion-blame. It's not an often-used feature, but it's an incredibly useful one to track who wrote a particular line. I'm not sure if Dropbox has that, although it definitely has pretty good revert support. I wouldn't use it to manage code changes, but it might be useful to manage changes in other project documentation? And of course it's a great way to share files! –  Gaurav Nov 11 '11 at 20:17
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.