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.

SemanticMerge now available on Linux

Thursday, August 08, 2013 Pablo Santos , 4 Comments

Today we’re closing down the top request in our Semantic Merge user voice: Linux Support!.

It took us a while to get it ready but now the first beta is out!! A Java-aware and C#-aware 3-way merge tool now running on Linux.

Go to www.semanticmerge.com/linux and follow the instructions to get it up and running on your distro.

It is a GTK based application so it will run smoothly and with a native look and feel.

If you’re new to Semantic it will be worth for you checking our intro guide to get familiar with the concepts. As you can see from the screenshot above it is not exactly as a regular 3-way merge tool! :-) (an explanation about why the GUI is built this way can be found here).

Get it installed

We’ve set up a few online repositories for Fedora, RHEL, CenOS and OpenSUSE as you can see here.

So what a typical installation takes is something like the following (I’ll be using OpenSUSE):

# zypper ar http://www.semanticmerge.com/semanticrepo/openSUSE_12.3/ \

(Everything in one line, split with "\" for the sake of formatting).

Then refresh the repositories

# zypper refresh

And finally:

# zypper install semanticmerge

Don’t miss the samples!

Once you install semantic you’ll have a new directory /opt/semanticmerge/samples with a few sample cases inside:

Get familiar with the tool running the different examples. They’re all using kdiff3 as text-based mergetool (Semantic relies on a text tool to merge the method bodies, on Windows we include Xmerge, but on Linux so far we prefer to rely on a native tool) but you can configure your own.

How to run it

Running semanticmerge is very simple, just execute:

/opt/semanticmerge/semanticmergetool -s yours.cs -d mine.cs -b base.cs -r out.cs

To run a 3 way merge.

You’ll need to complete the previous command specifying a text-based merge tool to be able to resolve text-based conflicts, check the samples directory for details.

Get a license!

We’re in open beta mode so you can get licenses for free.

We have 3 types of licenses:

  • Trial: 15 days, no questions asked.
  • Beta period: you need to register at semanticmerge.com but then you can get a 2 months license.
  • Unlimited: you can get them if you’re contributing to an OpenSource project. You’ll be able to purchase them once we get out of the beta program. And, you can get them now for free by inviting 5 friends!

The following picture explains the steps:

Bonus: mono 3.0.3 included

Yes, I think it will be good news to most of our readers to know that we’ve set up our own mono 3.0.3 repository (soon we will be upgrading to 3.2) with the help of b1-systems so it is a very easy way to get mono installed on some more distros :P

What is next

As we mentioned in previous blog posts, we’re working right now on C support and also on JavaScript and they’re taking a little bit more than expected.

We started the Mac OS X version already so we expect to have news soon.

In parallel we’re improving the performance on Windows (affected by WPF).


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. How about providing a .deb package or a binary .tar.gz which can be installed on no-RPM distros (BTW, .deb based distros are more popular than RPM based ones and their users are over 50% of all Linux users.)

  2. How about providing a .deb package or a binary .tar.gz which can be installed on no-RPM distros (BTW, .deb based distros are more popular than RPM based ones and their users are over 50% of all Linux users.)

  3. No FreeBSD support so this is still completely useless.

    Its such a shame that we have to use a second rate OS for SemanticMerge :(

  4. If you're a FreeBSD hacker then you'll be able to run it.

    1) Install on Linux.

    2) Get the binaries.

    3) Install mono and GTK# on FreeBSD.

    4) Run it.

    It works.