All Git repositories under gerrit.basePath must be registered in the Gerrit database in order to be accessed through SSH, or through the web interface.

Create Through SSH

Creating a new repository over SSH is perhaps the easiest way to configure a new project:

ssh -p 29418 review.example.com gerrit create-project --name new/project

See gerrit create-project for more details.

Manual Creation

Projects may also be manually registered with the database.

Create Git Repository

Create a Git repository under gerrit.basePath:

git --git-dir=$base_path/new/project.git init
Tip
By tradition the repository directory name should have a .git suffix.

To also make this repository available over the anonymous git:// protocol, don't forget to create a git-daemon-export-ok file:

touch $base_path/new/project.git/git-daemon-export-ok

Register Project

One insert is needed to register a project with Gerrit.

Note
Note that the .git suffix is not typically included in the project name, as it looks cleaner in the web when not shown. Gerrit automatically assumes that project.git is the Git repository for a project named project.
INSERT INTO projects
(project_id
 ,use_contributor_agreements
 ,submit_type
 ,name)
VALUES
(nextval('project_id')
,'N'
,'M'
,'new/project');
Note
On MySQL use nextval_project_id() to obtain the next value in the sequences. This is contained in the sql/mysql_nextval.sql script, available from java -jar gerrit.war —cat sql/mysql_nextval.sql.

Change Submit Action

The method Gerrit uses to submit a change to a project can be modified by any project owner through the project console, Admin > Projects. The following methods are supported:

Registering Additional Branches

Branches can be created over the SSH port by any git push client, if the user has been granted the Push Branch > Create Branch (or higher) access right.

Additional branches can also be created through the web UI, assuming at least one commit already exists in the project repository. A project owner can create additional branches under Admin > Projects > Branches. Enter the new branch name, and the starting Git revision. Branch names that don't start with refs/ will automatically have refs/heads/ prefixed to ensure they are a standard Git branch name. Almost any valid SHA-1 expression can be used to specify the starting revision, so long as it resolves to a commit object. Abbreviated SHA-1s are not supported.


Part of Gerrit Code Review