Plastic SCM Community Edition F.A.Q.
Plastic SCM Community Edition is a full featured, self-contained, and massively distributed Version Control Management system. Plastic SCM Community Edition is designed to be the easiest to use SCM you can find, but with all the power you could need. Plastic SCM Community Edition is free for everyone and it is meant to be a step ahead in SCM practices. The license is for use of Plastic for 15 users or less.
- Why a Community Edition?
We would like to grow our user base in order to learn from our users and to create an online environment whereby they can share tips and tricks about using Plastic. A large base of users using Plastic for simple projects will help Codice to make the product even better.
In addition, we firmly believe Plastic is one of the strongest SCMs on the market and one of the few real DVCS on the market-along with Git and Mercurial. We're very confident that if development teams try Plastic, they will want to use it for even their most demanding projects.
There's a huge change in the way we all use version control tools nowadays, and both big and small teams are transitioning from Subversion style trunk development to parallel development. Many small teams are jumping outside Subversion to Git or Mercurial. We want those teams to use Plastic, and by offering a community edition it makes that process easier.
- Are there any limitations on the Community Edition?
The Community Edition is a fully featured Plastic SCM system: it meansyou have access to all the functionalities available, interfaces, graphics, database back-ends and so on.
We've limited the Community Edition to 15 users to encourage use of Plastic for small projects. However, for larger enterprise-level deployments of Plastic we will be offering affordable enterprise licensing.
- I installed Plastic a month ago and now it says that the evaluation period has expired. Wasn't the Community Edition free?
- I installed Plastic from your website but only 5 users can connect to it. Others get "No licenses available". What's going on?
You likely forgot to download your Community Edition license file. When you login to our download area, click "Licenses" on the top bar. There you can generate and download your Community Edition license file.
Once you have it, just replace the file with the same name (plasticd.lic) in the Plastic server installation folder and restart the Plastic service. You are set!
- Why don't you make it free for teams all sizes?
Enterprise-level deployments of Plastic require enterprise licenses. For small deployments, the community edition is a nice way to experience the benefits of the product and to provide feedback to Codice on ways to improve Plastic.
- My team has 16 developers, we'd love to use Plastic but we've a very tight budget…
Talk to us! We'll find a way together. It's all about talking after all…
- Git and Mercurial are, by far, much better known than Plastic, why should I care about the Community Edition?
We have spoken to Plastic customers, and they say that Plastic is the only DVCS tool that accommodates branching and merging and provides an easy-to-use graphical interface.
We designed Plastic from the ground up to be used by companies, by all kinds of "commercially related" developers out there. That's why the graphical user interface in Plastic is not an "add-on", it's a central piece, a corner-stone. That's why we do care about things such as visualization, usability, advanced diff and merge tools and so on. As I always like to say, Plastic is not only a pretty face, it's not just the branch explorer and the version tree and the GUI, we've developed an entire SCM from the ground up, totally focused on doing excellent branching, merging and distributed development. But always keeping our users in mind, the kind of users that will be using Plastic and appreciate the tools we provide.
- Plastic is all about beautiful graphics, the branch explorer and so on… Does it mean you can't do command line?
Everything that the GUI can do is doable from the CLI. The CLI is great for automation, and we have many developers and users who are simplyhard-core command line users, so they don't care that much about the graphics when they perform their daily operations with Plastic (although they tend to end up taking a look at the branch explorer sooner or later…).
The CLI in Plastic is fully supported and continuously evolving, in fact our biggest test suite depends on it. But, as I said above, the CLI is not the primary interface, just another one, at the same level as the GUI, no more, no less. That's different than what happens with Git or Mercurial: our "core hackers" do care about the GUI too, it's not just an add-on.
- Why do you guys say Plastic is distributed? I see a client and a server after all…
Plastic is distributed like Git or Mercurial are: it can replicate branches back and forth, handle conflicts due to concurrent changes and so on.
The difference is that, by default, you don't set up a server to work with Hg or Git: you just use a command and your repositories stay there at your local directory. Plastic has a server which will control all "repository operations". The server can be running on your laptop or your desktop and can be very lightweight, but it will be there. So, instead of talking to your "local directory", the Plastic client will always talk to a "server". But your local server can be on your laptop, with no internet connection at all, and just serving you while you continue developing code.
- Nowadays all commercial tools say they're distributed. Is it just the case for Plastic too?
You're right: every commercial tool out there is saying they're distributed when in fact they don't have any ability to perform "replication" or the like. They're just able to run on the internet through a TCP port and they tell they're distributed. You know, marketing is powerful.
But no, that's not our case: Plastic is distributed because it can replicate branches back and forth between different repositories on different machines. Plastic is one of the very few commercial DVCS available nowadays (I think BitKeeper is the other one), despite the "major ones" keep saying they're when they aren't.
- So, since you've a server, can you also work on centralized mode?
Yes, you can set up a Plastic server at the office, and all developers can connect to it, no need for intermediary servers or local clones at all. I mean, the same very simple scenario you'd have with SVN but with all the power of first class branching and merging.
But, if you prefer to have the option to "go offline" you can always have your own server, checkin locally and exchange data with the central server via "pushing and pulling" branches, like you'd do with Git and Hg.
- I've read on your website that you use database backends for storage. Is your replication based on that?
Plastic stores data and metadata on relational database systems. You can choose from a variety of options including SQL Server, SQL Server Embedded, MySQL, Oracle, Firebird embedded and Firebird Server and evenSQLite.
But no, the replication (distributed operation) is not based on the replication capabilities of some of the backends (like SQL Server or MySQL), it is totally implemented by the Plastic server layer. So you can replicate between servers independently of the database they use.
For instance: I do use a SQLite backend on my laptop (fast for single user access) while our main server at Codice has been jumping from one backend to another to "eat our own's dog food."
- Seems you've a lot in common with Git and Hg, can you somehow integrate with them?
Not yet. Which means: yes, we're on it! I can tell you we're working on a strong integration with Git already. Our plan is to be able to replicate back and forth with Git servers, which would open up the doors for people storing their projects on places like GitHub but who prefer to use something more usable like Plastic on the client side.
- So, Plastic is some sort of "Git for Windows users"?
Well, not very accurate but cool anyway. :)
Plastic is not restricted to Windows, we thoroughly test it on Linux (different distros) and Mac OS X. Other flavors like FreeBSD and Solaris are always in the loop too although they're not so demanded at all.
Some of our biggest production servers run on Linux (with lots of CPUs and dozens of Gb of RAM…) and you've probably seen screenshots of the Plastic GUI on Ubuntu, OpenSuse and the Macs… That being said, it seems developers with a Linux/Mac background have an easier path towards learning tools such as Git or Hg, probably due to the fact that these tools have been "cooked" on Linux. Also, most of the commercial developers out there seem to be on Windows. So, we always had Windows in mind as primary platform while designing and developing the first versions of Plastic, and we still keep the same goal.
So, in short: Plastic is not restricted to Windows, but it is definitely our primary platform.
- Do you use Mono on Linux and Mac? Isn't it extremely slow compared to C/C++?
Yes, we do make extensive use of Mono and we've been evolving with it since Plastic development started. We're in very close communication with the Mono team and we've even hired one of the Mono core developers.
In fact, as we pointed on a case study long ago, the core of Plastic SCM has been developed in C# only because Mono existed, otherwise we would have stayed with C/C++. C# is a great language and Mono a great framework to develop great code very quick. That's why we're using it. Unless you want to get religious about it, there're dozens of reasons why Mono is great for Plastic.
Regarding performance: have you checked this link? We consistently beat SCMs written in C/C++ in both speed and scalability. Plastic simply scales greatly, and works really fast, so, yes, in theory C/C++ is faster, but there are much more things on a software system than the language behind.
Performance is a key goal for us, that's why Plastic is always getting faster, and consistently beating competitors.
- Community Edition doesn't include support, what if I have questions?
Correct, we do not include support with the Community Edition. We want to make the forum grow around the community and make it the place where most of the questions get solved.
You can purchase support separately which is an affordable entry level option to have best of breed SCM assistance while working with Plastic. You can always send questions to support too, but as you will understand, the priority of the support team is to address the questions from "paid customers" first.
As you'll soon discover, our support team is simply super-responsive, getting questions answered in a matter of hours. They'll try to solve questions coming from Community Edition users too, but their priority (a matter of time and resources) is to provide service to paid customers.
- You also have merge and diff tools, are they included on the Community Edition?
Absolutely! Both Xmerge and Xdiff (we like to call them "cross-merge" and "cross-diff") are included in the Community Edition.
We try to improve the branching and merging experience as much as possible, and that's why we've developed our own diff and merge tools.
And, since 3.0, both Xmerge and Xdiff are the only tools on the market able to find differences on code that has been moved and modified (really useful for refactoring!).
And the good news is that we continue evolving the tools so stay tuned for the next generation… Even better support for refactoring and many more features and enhancements are on the way.
