Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When and why will you choose centralised (SVN) over distributed (Git, Mercurial)

Recently in my new job, my department (we are mainly building stocks and horse racing websites and we only work on the website in office.) is considering over to use SVN or Mercurial. Our project manager says he favor SVN (didn't give us his reasons) but give us a choice to choose Mercurial too and ask us for our opinions (final decision still lies with him)

Given that most articles online are about explaining why choose Mercurial over SVN (or something similar). I would like to ask the opposite.

So when and why will you choose SVN over Mercurial in a new project despite the many advantages of Mercurial/Git over SVN?

like image 938
learnjourney Avatar asked May 14 '11 02:05

learnjourney


People also ask

Is SVN distributed or centralized?

Subversion (SVN) Is a Distributed Version Control System? SVN is actually a centralized version control system. It's different from distributed systems, like Git.

Is Mercurial a centralized version control system?

Most of the traditional version control systems like SVN are based on client-server architecture, where a central server holds the updates done to a project. Mercurial is completely distributed, where each developer has a local copy of the complete project.

Is SVN better than Git?

SVN is better than Git for architecture performance, binary files, and usability. And it may be better for access control and auditability, based on your needs.

Why do people use Mercurial?

Mercurial is a free, distributed version control system. It's also referred to as a revision control system or Mercurial source control. It is used by software development teams to manage and track changes across projects.


1 Answers

When I'm forced to by the popular opinion of co-workers or management by fiat. That is the most likely scenario.

There are some specific situations in which I would choose Subversion or Perforce over Mercurial. Those have to do with very specific features. For example, the ability to treat random subdirectories as repositories in their own right can be useful in some situations. Perforce's ability to re-arrange directory structure on checkout can also be useful. Perforce also does a superb job of handling large binary objects as are used in game development and other kinds of media work, and neither Mercurial nor Git are currently particularly good at those things.

But in general, there is no other reason I would ever choose a non-distributed revision control system for myself. I find them immensely limiting and constraining. I've been disappointed with them ever since I learned what version control was. There is nothing from a pure workflow standpoint that can be accomplished with a centralized revision control system that cannot be accomplished with a distributed one.

like image 142
Omnifarious Avatar answered Nov 16 '22 03:11

Omnifarious