A universal Git connector

The Plastic SCM server now speaks Git

Download NOW!

What is GitServer?

Every Plastic SCM server can now serve repositories using the Git protocol (git and http supported).

This means that every Git client can push/pull to a Plastic SCM server directly.

Any tool in the Git ecosystem can now be directly used to connect to Plastic SCM using their native Git functionalities. Teams on Plastic can now benefit from all the DevOps, CI, and project management integrations developed for Git.

You can now directly connect the following examples with Plastic: JIRA, Bamboo, FishEye, CodeCollaborator and many more.

GitServer is the server side counterpart of GitSync (which allows every Plastic SCM client to push/pull to a git server) and closes the Git interoperability loop.

Goals

  1. The main goal of GitServer is to be used as a universal connector so that every tool and utility integrated with Git can instantly be connected to Plastic.

    This is especially true for server-side and DevOps software which can now more easily be connected to Plastic. While doable, the goal is not to connect IDEs or developer-side utilities because then developers would miss part of the value added by Plastic: the user interfaces, merge power and overall usability.

  2. GitServer can also be used to simplify transition and version control consolidation in companies with teams working in Plastic and Git simultaneously. The Plastic server can now act as a single source of truth, as the central repo used natively by the developers in Plastic and also the ones still on Git.

    In short, Plastic will continue providing best of breed Visual Studio and Eclipse integrations, but will instantly benefit from DevOps, issue tracker, code review, code metrics and analysis tools developed for Git.

A sample GitServer session

    I assume you have a valid Plastic repo called 'quake' ready for a test (with some valid content, branches and so on).

  1. Create a gitserver.conf file in the server bin directory as follows:

    -------------------------
    tcp.port=9418
    export.repo=quake
    -------------------------

    And then restart your Plastic SCM server.

    Note, if you create an empty gitserver.conf file, default values will be used and all repositories will be accessible through git, while the example above exports 'quake' only.

  2. Run a simple git clone command:

    >git clone git://localhost/quake
    Cloning into 'quake'...
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights and the repository exists.

    If you get an error like this, it means the repo wasn’t yet “indexed for git” so it is not visible yet.

    By default, wait 5 minutes. Otherwise edit gitserver.conf and add

    mapping.interval=30

    Which means the mappings will be recalculated every 30 seconds. (This applies to changesets created doing checkins or push/pull in Plastic).

  3. Rerun the command after 5 minutes and you’ll get a successful clone:

    >git clone git://localhost/quake
    Cloning into 'quake'...
    Receiving objects: 100% (1500/1500), 5.54 MiB | 0 bytes/s, done.% (1/1500)
    Checking connectivity... done.

    From here, you have a full functional git clone and you can push/pull to Plastic seamlessly.