Plastic SCM vs. Mercurial? Need Source Control for Visual Studio 2005 on Windows 7 [closed]
1) Has anyone used Plastic SCM? Is it reliable?
2) How does it compare with Mercurial? (It seems like this is a good candidate for DVCS on Windows. I tried Git and really didn't like it.)
3) I really like TortoiseSVN. I like a central model because of the piece of mind that if it's in the respository it's "safe" and tracked. Here is the question: Is the excitement over distributed version control (DVCS) worth the hype?
My environment:
Windows 7
Wind开发者_StackOverflowows development (Dev. Studio 2005, SQL Server 2003); integration would be nice
Two developers sharing same code
push code to production servers almost daily
My answer is going to be biased towards Plastic SCM since I'm one of the developers. That being said, let's try to answer your questions:
Is Plastic SCM reliable? It is currently used by big, very big, medium and small teams all around the globe. We don't have (yet :P) a huge user base like Git or Mercurial, but we count on a extremely passionated and talented team. Check, for instance, our load test results (we really put plastic under heavy load).
How does it compare with Mercurial? While I think we can consistently beat every "traditional" version control feature by feature, Git and Hg are probably the toughest ones in terms of the core feature set. Let's focus on Hg, what does Plastic add? I think I could talk for hours but let's try to come up with a short list, basically:
- Easy to use tools: from the GUI, the ShellExtension, Visual Studio Plugin, integrated diff/merge (yes! give a try to our XDiff/XMerge with code refactor support!), the Branch Explorer that basically let's you do all branching and merging from a graphical perspective... Ok, with Plastic you not only get the "engine", you get the entire car with all the pieces you need. I can mention other tools for VS users like the method history support, and the list grows and grows...
- Like Mercurial: totally designed to handle branching and merging. From my point of view (biased) branching is simpler in Plastic since "named branches" are there by default. We propose users to embrace "branch per task".
- Configurable database backends: you can store your data (and later use standard SQL interfaces if you need to build your own apps around) in SQL Server, Firebird, Oracle, MySql or even a tiny SQLite. We didn't reinvent the wheel here: transactional by default ;)
- ACL based security: probably not key for a small team, but it is there.
- For advanced mergers: each "changeset" in Hg is restricted to maximum two parents, you don't have this limitation in Plastic, but ok, we could argue about the details for hours... maybe not worth ;)
- Also for advanced integrators: we do handle merge tracking at the item level which means we can do "partial merges" (merge only part of a branch) seamlessly. It is a little bit harder with Hg and Git.
Is DVCS worth? Of course it is. Ok, step by step:
- DVCS is good not only because it enables distributed development, is good because all new DVCS systems (Hg, Git, Bazaar, Plastic...) implement merge tracking right. So, at the end of the day for many people DVCS is just about merge tracking done right (less shocking than pushing/pulling but true).
- Being able to have your own SCM on your laptop is simply great. I've been working with Plastic this way (now I have a SQLite based server, super-fast and super-light) for years and... well, is simply better: you never get slowed down by the internet connection, you can merge whenever you want (remember branch per task), review your own changes... everything. And then push your changes back to the main server when you're done. It is simply better.
- Now: Plastic SCM, unlike Git and Hg, is able to work in the two modes. Do you want to have a central server and directly connect to it without intermediate replicas? You can do it. Do you want to work in true DVCS style? You can do it too. That's why Plastic is so flexible.
Finally, if you use Visual Studio + W7 + 2 developers... go and grab a FREE Plastic SCM Community Edition... Hg, as I said, is a good core, but Plastic is at least as good and comes packaged with all the tools you're used to have as a Win developer (unless you love the CLI and hate the mouse... and even then Plastic has a CLI too :P).
I've played around with Plastic SCM a bit and while it seems to be more powerful, I found it much more cumbersome to use than Mercurial. There were two things in particular that I didn't like:
Whereas Subversion and Mercurial compare files against their original versions to decide what needs to be checked in, Plastic SCM requires you to check out files explicitly before editing them, and also marks files as read-only by default. This is the way that Team Foundation Server operates and it's probably the one "feature" of TFS that attracts more criticism than any other, so it was a big disappointment to see Plastic emulate it. I understand that you can configure Plastic to not mark files as read-only, but I have no idea how well it works in practice if you do so.
I found its GUI tools pretty over-designed and awkward to use compared to Mercurial's GUI front end, TortoiseHg. They really need to rein in their graphic designers. It's a version control tool, not a movie, after all.
I've been looking into both Plastic & Hg for a while now and while I've played around a bit, I'm really starting to fall in love with Plastic. The reason I got into this is because at my current job, we use SVN and code merges are very manual and I thought there had to be a better way. So, in my free time, I've got into Plastic and loved it. The tools are simply intuitive; there's no better way to describe them. Oh, sure, I have no doubts in my command line abilities, but there's something to be said for seeing what you're doing. Of course everyone has a command line, so I was never concerned in that part of any VCS.
As for DVCS, Plastic really gives you more flexibility than I've seen with any of the other systems. Very easy to have multiple copies of a repository and to push/pull changes back and forth. Also, since the GUI works on all platforms, everything is the same. I can choose to use what I want, and so can my team mates.
I'm still learning and digging into things, but I would recommend doing some research yourself by downloading it and giving it a try. I didn't read a manual and I could get started using it. That is simply great!
精彩评论