After a rather (too) long discussion on IRC about mercurial with some vocal advocates of distributed systems I thought I might qualify what I said in my previous blog entry.
Since I learned about mercurial I started reading about it and tried it out a little bit. The benefits are obvious but I didn't feel like it represented a huge shift from my previous workflows since I haven't had huge problems thusfar with SVN. Mercurial provides me with some nice new features but there were no deal breakers.
Also, to answer some concerns that were raised,
1.) When I was learning about mercurial I learned that it's decentralized and that a centralized server is not inherent in it's design, meaning you don't need one. So when I said that it's a decentralized system in my previous post, I didn't mean that I thought that you can't have a centralized server, and that presents a problem. I merely meant that it's not practical if you don't have a centralized server. So the idea of decentralization is practically speaking not radically different than SVN was in this regard. I still, practically speaking, have to email the maintainer or mailing list with patches and hope someone checks them in for me. Sharing them with another developer directly won't happen very often. That particular advantage is not a reason I would use it (though I'll look into the hg email features some more. I think it's somewhat easy for someone to mail diffs of their changes and somewhat easy for you to download the e-mail and automatically merge it into your branch).
2.) I wasn't saying that the issues I mentioned were arguments for not using mercurial. In fact they don't matter much since they are somewhat minor issues, and the benefits such as being able to track revisions locally and managing branching and merging easier do make it worth while. So I wasn't resisting it, I just wasn't jumping up and down for joy about being able to use the new features. Partly because I can't anyway. I don't have a server to install it on. I don't have my own repositiories for my own projects (I use sourceforge for hosting) and even if I had access to the repositories of other projects I have contributed to, they use SVN. And partly because I was marginally happy using SVN.
So in conclusion, if given the choice I would use mercurial. I'm just not going to let the fact that SVN has some shortcomings keep me from using it and contributing to projects that use it.
