Basic Architecture

The following diagram shows the basic configuration of a very simple GitCentric environment where the Git repository, Tomcat web server, and AccuRev Server with databases for both GitCentric and AccuRev reside on the same server:

In this simple configuration, the GitCentric server hosts:

  • A Tomcat web server configured with two GitCentric apps (a bridge and an administrative GUI).
  • An AccuRev Server which includes a PostgreSQL database, and which functions as both the GitCentric AccuRev Server and a production SCM AccuRev Server with a trigger (server_master_trigger) to notify GitCentric of changes in AccuRev.
  • A GitCentric installation directory, which generally (but not necessarily) contains a storage area for one more Git repositories which include triggers (pre-receive and update) and configuration files. (The triggers are Git hooks that get copied to your GitCentric repos and which help keep AccuRev synchronized with your repo. Search the web for more information about Git hooks.)

In this simple environment, the AccuRev Server hosts both the AccuRev depot containing the streams that are mapped to branches in the Git repo, along with the database server for both GitCentric and AccuRev, and another trigger that keeps your repo synchronized with AccuRev. In fact the Tomcat web server is also a part of the AccuRev installation, under the <ac_home>/WebUI directory.

For the sake of this discussion, we will assume the simple configuration in which the Git repo and the AccuRev Server (which includes the Tomcat web server, the GitCentric database, and the production SCM database) all reside on the same machine.

Regardless of the complexity of the installation, the basic GitCentric process remains the same: Git users push and pull files between their local Git repos and the GitCentric Git repo. AccuRev users promote and update files between their workspaces and the AccuRev Server. And GitCentric keeps the branches in the Git repos synchronized with streams in the AccuRev Servers.