Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

New tree 3D layout

Sunday, August 26, 2007 Pablo Santos , 1 Comments

The team have been working on the new layout algorithm for the plastic 3D tree. With long revision histories the tree currently has a cone-like behaviour, so it gets wider close to the end, which makes it more difficult to understand.
So they changed the algorithm to use some sort of espiral layout: branches are distributed spacially following an spiral-like path, which is restarted from the center of the tree on each loop to save space.
Daniel also asked to add (finally, because it is a long awaited feature) revision and branch location functionality. Date filtering has also been implemented: now you can select a date range and only the revisions in between will be created.
The new tree 3D will be integrated in BL067 and will be released together with plastic 2.0. I guess the GUI folks at Codice will first clean up the looks a little bit :-) but the new utilities will be there. Watch a preview at Codice's YouTube channel:

P.S: last friday one of the GUI 2.0 preview screencasts reached the list of the most viewed YouTube videos in Spain... among a huge amount of fútbol (soccer) material... :-)
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

1 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

More on the new GUI

Wednesday, August 22, 2007 Pablo Santos 2 Comments

We've just uploaded a new screencast of the new (still under heavy development) GUI system.

Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

2 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Plastic SCM 2.0 pre

Tuesday, August 21, 2007 Dave 1 Comments

We're currently working on several open projects which will all end up creating the upcoming Plastic SCM 2.0 release.
Some of the changes and new features have been already highlighted weeks ago (what's next).
The feature I'm currently working on is the new GUI. We're about to start using it internally this week, so I expect some usability feedback coming from the team. The new appearance introduces a big change from what you've previously seen in Plastic, trying to hit several targets:

- Create a better interface to handle multiple data views
- Design it to make it attractive to users
- Simplify retrieving information from the tool, making most common operations easier than before
- Open up new integration possibilities with third party tools and even new Codice developments creating some sort of virtual canvas to place windows.

The results of a still really pre-release version can be watched here:


Hope you liked it and stay tuned for updates!

1 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Running Plastic server on Linux

Friday, August 17, 2007 Pablo Santos 3 Comments

Linux has been a primary goal for us since the beginning of the project. We're still trying to put our GUI into the mainline (thanks to the mono folks), but the server has been up and running for months.

In fact many companies seem to be very interested on running Linux servers and Windows based clients for development. And this is exactly the scenario I'll be describing here.

Plastic 1.5 (BL063 for us) introduced several improvements in the Linux installer to make it easier to set up and configure. Now you don't need to install a separate DB backend or the mono platform, they are both included by default.


I've used a blank OpenSuse box (well, actually the vmware image at www.go-mono.org) and the process shouldn't take longer than 5 minutes, unless your hard drive is pretty sloooow.



The first step will be [obvious-comment]downloading the Linux installer package[/obvious-comment] which you can find here. The name will vary from version to version but currently it is PlasticSCM-professional-1.5.63.2-linux-installer.bin.

Once you have it on your machine adjust permissions to make it executable.



The installer is created with Bitrock InstallBuilder so it can perform both a command line mode and graphical mode installation. I don't want to have any sysadmin shouting at me so I'll follow the text based one...



So, just execute the bin file and it will start asking questions: choose the language, specify a directory, accept the license, choose the components you need to install (we're installing a server so just server components and the command line client will be enough) and then it will start copying the files. Optionally you can also install both the Eclipse and JDeveloper plugins (and if you're running on Windows the Visual Studio plugin too).





Once the files are copied (by default into /opt/PlasticSCM) you can set up both the server and the command line client, which will help us checking whether the system is up and running.



The first question will be choosing the language, and then it will jump to configuring the security working mode, which means the kind of authentication your server will work. This is a pretty important step because if you set it up wrongly your clients won't be able to connect to the server, and you will have to fix it...
So, take a look at the available options (check the image):

  • Name working mode: the server will load the user list from the machine it is running on. If the clients connecting to it are running on accounts with the same name, the server will recognize them as authenticated users. As you can see it is a very easy to set up method but it will depend on how strong your network is. Identity hijacking is extremely simple if you're not a very careful sysadmin. On the other hand, it is quite useful when you just want to evaluate Plastic or need easy interoperation between Windows and Linux systems. Just make sure your user name is known to the server and you're done.
  • NameID working mode: same as the previous one but matching is done using both Name and ID. On Windows systems ID is the user's SID. On Unix systems the user id. It is a bit stronger than the previous one on Windows systems but also weak in Linux groups unless you carefully control what can be attached to the network. It is ok for NIS based authentication.
  • LDAP working mode: so, you have a LDAP server on your network? Well, it will be extremely easy to use for a mixed Windows/Linux scenario. You'll have to give credentials to connect to the server and be able to validate users and names. The internal ID is used for authentication. The server will need a user/passwd combination to be able to retrieve the user and ID list. This mode can also be used to connect Linux/Unix systems to Active Directory servers.
  • AD working mode. AD stands for Active Directory. If you're running in AD mode on a Windows server you don't need to set up users or passwords, the server will be able to retrieve the known ones automatically. AD mode is compatible with LDAP mode: you can set up your Linux server in LDAP mode and your clients in AD, for instance.


In the sample (see the image) I'm connecting to our internal server at 192.168.1.3, the domain name is codicefactory.com, and the server will use my own user to authenticate.

Then you'll have to tell whether your server is an Active Directory or an standard LDAP server.

You can also choose the TCP port in which your Plastic server will be listening.
Once all of this is set the server will start up.

Next step will be configuring the client. Ok, we said we'd be using the Linux just as a server, but it is normally a good idea to set up the command line client so we can check the server is correctly running.
The image shows you the client configuration steps.



Now we can type a command to check if the server is running. We'll use cm lwk to list the available workspaces... and because none has been created an empty list is returned.



Ok, so now you should install a Plastic client on your Windows box and set it up to connect to your Linux server. You'll have to select the language, and then the authentication mechanism. Remember to set it up accordingly to the mechanism you've set on the server. The last step will be selecting where the server is: remember to set the right IP address or name and the port. By default port 8084 is used but it can be changed during server set up.

The server is installed inside the /etc/rc directories so it will be running on system start up. To manually stop the server just run /opt/PlasticSCM/server/plasticd stop. /opt/PlasticSCM/server/plasticd start will start it up.

If you ever tried installing the new Plastic 1.5 release you've probably noticed that it takes much (*much*) longer reading how to install it than actually doing it.

Try the Linux server and let us know.
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

3 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

SCRUM and CMMi at DDJ

Sunday, August 12, 2007 Pablo Santos 0 Comments

We've just published a new article on DDJ talking about our experience in CMMi using SCRUM.
We tried to tell which were the problems we found and how we tried to keep focus on being agile while still working on the CMMi evaluation.
Questions are welcome.
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Getting stats with the query system

Friday, August 10, 2007 Pablo Santos 0 Comments

The query system is one of the new features we released with Plastic 1.5. It opens up new possibilities to create customized statistics and know what is going on in your development.

We wanted to make the query system as simple as possible (you can always argue here if you don't like it) and that’s why we decided to create a SQL-like syntax. This way, taking into account that our users are actually developers, we provide a familiar interface.

Well, suppose you want to list the revisions you created since yesterday. In my case I would type:
$ cm find revs where date “>” ‘2007/08/9’ and owner = ‘pablo’


Ok, but what about giving all this output a bit of format? You can use the –format modifier and type something like:
$ cm find revs where date “>” ‘2007/08/9’ and owner=’pablo’ –format=”{date} {type} {owner} {item}#{branch}”


You can see I just modified elements in a couple of branches. I could also list the revs modified on a given branch adding the condition:
and branch=’br:/main/FixBL063/SCM2199’ to the previous query, as you can see in the screenshot.


You can learn more about the available objects to search typing: cm showfindobjects. Currently you can search revisions, branches, changesets, links, revisions and users.

For example, typing “cm find user” you will retrieve a list of the users with objects inside the system.

A list of changesets can also be easily retrieved with:
$ cm find changeset where owner='pablo' and date ">" '2007/08/01'

Now imagine you want to know all the branches you’ve created so far: it can be done with

$ cm find branch where owner=’pablo’, in my case.

Ok, this looks good to monitor somehow what’s going on in the project, which changes someone has done, and so on. But, what about retrieving some statistics?

One of the nice things about cm find is that you can create output in XML format. Try something like:

$ cm find revs where date ">" '2007/08/1' --xml --file=statsAgo.xml

to create a file with all the information about revisions created since a given date. Once you have the XML file you can start playing around with it with your favorite tool.



I imported the data generated by cm find into Excel 2007 and then I started playing with the pivot tables. In the new 2007 release this feature is a little bit hidden: now it is under the insert menu instead of the data menu.

Well, once you create a pivot table out of the imported data you can start grouping it. Then you can show the revisions grouped by branch, including cool graphics.






Show the revisions grouped by user.



Or even calculate the how the revision creation is distributed hourly (you can discover interesting things doing that).


Or weekly:



We’re working on extending the query system to provide an easy (and powerful) way to locate merges, for instance. Also a subsystem we call “advanced query system” is already out (although not officially, it will be in the upcoming BL63.3) which allows directly looking into the relational schema.

Taking the query system as the starting point a new Plastic module will be implemented (this is not yet started) to provide this kind of graphics I showed you but being directly calculated by the GUI tool.

Hope you liked it!
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Plastic @ freshmeat

Thursday, August 09, 2007 Pablo Santos 0 Comments

Hi all,

As you already know plastic is free for open source projects. Well, we think it makes sense adding it to freshmeat so a wider audience can learn about it.

We will be adding new releases and a direct download link there, so it is a good mechanism to stay tuned!
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

0 comentarios:

Who we are

We are the developers of Plastic SCM, a full version control stack (not a Git variant). We work on the strongest branching and merging you can find, and a core that doesn't cringe with huge binaries and repos. We also develop the GUIs, mergetools and everything needed to give you the full version control stack.

If you want to give it a try, download it from here.

We also code SemanticMerge, and the gmaster Git client.

Release BL063.2 is out!

Wednesday, August 08, 2007 Pablo Santos 0 Comments

We've just released Plastic SCM 1.5 Build 63.2 (BL063.2 internally). We've been basically focusing on usability, trying to solve some issues which were not clear enough.



The first improvement is the ability to select a repository to work on when creating a workspace. Before you had to first create the wk and then switch to the branch on the desired repo or manually edit the selector. The workspace creation dialog now lists all the available repositories and lets you choose one.


Another small improvement (but it seems to have a big impact in usability) is showing the repository you're working on in the GUI tool status bar. You know Plastic is able to mount more than one repository in the same workspace, but in most cases people just uses a one to one relationship between workspaces and repositories. For them knowing exactly where they are working on is a big step ahead.

And finally we've included a capability into the merge dialog which was only supported by the command line client so far. Imagine you're working on a given branch, starting from a given release. Meanwhile the rest of the team advances to the new release and you're still working so your code won't go to the release, but you're still interested in getting synchronized with the latest changes, so you would need to merge from the release. Now the merge dialog makes it really easy.
As the Plastic user base keeps growing we try to focus on solving the usability issues they report. Usually a pretty small change in terms of coding effort, makes a big difference for users, as these three changes clearly show.
Pablo Santos
I'm the CTO and Founder at Códice.
I've been leading Plastic SCM since 2005. My passion is helping teams work better through version control.
I had the opportunity to see teams from many different industries at work while I helped them improving their version control practices.
I really enjoy teaching (I've been a University professor for 6+ years) and sharing my experience in talks and articles.
And I love simple code. You can reach me at @psluaces.

0 comentarios: