Application Life Cycle Management with Git: AgileSCM vs. Gerrit

Application Life Cycle Management with Git: AgileSCM vs. Gerrit

Setting up a Software Configuration Management environment based on Git within a corporate environment comes with a number of challenges.

A managed approach is required, given the user control in Git around how and when data is integrated into a project’s integration stream.

Clearvision’s AgileSCM provides such a solution, automating branch-based parallel development in a simple and easy-to-use way. However the Open Source community also has a solution for controlled integration, which focuses on the problems an Open Source community faces.

Conceptually, the main difference between AgileSCM and Gerrit is as follows:

  • AgileSCM provides control over who, when and what is being contributed to a project managed within the Git configuration management system.
  • Gerrit provides control over the integration of a large number of otherwise unmanaged contributions.

The following table gives a brief overview of AgileSCM and Gerrit features for Git-hosted Software Configuration Management (SCM) solutions.

Feature AgileSCM Gerrit
Component Creation Only project managers can create new components Gerrit administrators create a new repository manually and add it as a project to Gerrit.
Project Creation Project managers can combine a number of components into a project Gerrit administrators create the project
Forest Management Forest Management is achieved through the creation of a project which brings a number of Git repositories together Not applicable. Requires Repo for forest management.
Activity Creation The Project Manager creates activities. Developers cannot create new activities themselves. This means that the project manager has control over what developers should be working on. Any user can contribute any code. It is at the receiving end that code reviewers make the decision to accept or reject a contribution. There is no control over what users should be working on.
Control Over the Git Repository The owner of the Git repository is responsible for controlling access to the repository. Gerrit controls the Git repository via its own SSH daemon and the information provided in Gerrit (including SSH keys), unless you open up access to the repository via gitserv or some other means.
Code Review Supported through ReviewBoard integration. Integral part of Gerrit.
Baseline Creation Baselines are consistently created across multiple repositories. No support for baselines across all repositories.
Traceability Full traceability across baselines and activities. Not applicable.

In Summary, whilst AgileSCM and Gerrit address similar issues, they differ in the amount of control you have over the contributions that are being made. AgileSCM guides the developer and ensures that no time is wasted on unwanted features. Gerrit on the other hand welcomes any contribution and either accepts or rejects it after it has been implemented.

Clearvision provide Git Consulting, Git Training (including Git eLearning), Git Support for both large and small organisations and also Git related products such as our Application Lifecycle Management interface for Git, AgileSCM.