| = gerrit create-project |
| |
| == NAME |
| gerrit create-project - Create a new hosted project. |
| |
| == SYNOPSIS |
| [verse] |
| -- |
| _ssh_ -p <port> <host> _gerrit create-project_ |
| [--owner <GROUP> ... | -o <GROUP> ...] |
| [--parent <NAME> | -p <NAME> ] |
| [--suggest-parents | -S ] |
| [--permissions-only] |
| [--description <DESC> | -d <DESC>] |
| [--submit-type <TYPE> | -t <TYPE>] |
| [--use-contributor-agreements | --ca] |
| [--use-signed-off-by | --so] |
| [--use-content-merge] |
| [--create-new-change-for-all-not-in-target] |
| [--require-change-id | --id] |
| [[--branch <REF> | -b <REF>] ...] |
| [--empty-commit] |
| [--max-object-size-limit <N>] |
| [--plugin-config <PARAM> ...] |
| { <NAME> } |
| -- |
| |
| == DESCRIPTION |
| Creates a new bare Git repository under `gerrit.basePath`, using |
| the project name supplied. The newly created repository is empty |
| (has no commits), and the initial content may either be uploaded for |
| review, or pushed directly to a branch. |
| |
| If replication is enabled, this command also connects to each of |
| the configured remote systems over SSH and uses command line git |
| on the remote system to create the empty repository. |
| |
| |
| == ACCESS |
| Caller must be a member of the privileged 'Administrators' group, |
| or have been granted |
| link:access-control.html#capability_createProject[the 'Create Project' global capability]. |
| |
| == SCRIPTING |
| This command is intended to be used in scripts. |
| |
| == OPTIONS |
| <NAME>:: |
| Required; name of the new project to create. If name ends |
| with `.git` the suffix will be automatically removed. |
| |
| --branch:: |
| -b:: |
| Name of the initial branch(es) in the newly created project. |
| Several branches can be specified on the command line. |
| If several branches are specified then the first one becomes HEAD |
| of the project. If none branches are specified then default value |
| ('master') is used. |
| |
| --owner:: |
| -o:: |
| Identifier of the group(s) which will initially own this repository. |
| + |
| -- |
| This can be: |
| |
| * the UUID of the group |
| * the legacy numeric ID of the group |
| * the name of the group if it is unique |
| -- |
| + |
| The specified group(s) must already be defined within Gerrit. |
| Several groups can be specified on the command line. |
| + |
| Defaults to what is specified by `repository.*.ownerGroup` |
| in gerrit.config. |
| |
| --parent:: |
| -p:: |
| Name of the parent project to inherit access rights |
| through. If not specified, the parent is set to the default |
| project `All-Projects`. |
| |
| --suggest-parents:: |
| -S:: |
| Suggest parent candidates. This option cannot be used with |
| other arguments. Print out a list of projects that are |
| already parents to other projects, thus it can help the user |
| find a suitable parent for the new project. |
| |
| --permissions-only:: |
| Create the project only to serve as a parent for other |
| projects. The new project's Git repository will be |
| initialized to have 'HEAD' point to 'refs/meta/config'. |
| |
| --description:: |
| -d:: |
| Initial description of the project. If not specified, |
| no description is stored. |
| + |
| Description values containing spaces should be quoted in single quotes |
| ('). This most likely requires double quoting the value, for example |
| `--description "'A description string'"`. |
| |
| --submit-type:: |
| -t:: |
| Action used by Gerrit to submit an approved change to its |
| destination branch. Supported options are: |
| + |
| * FAST_FORWARD_ONLY: produces a strictly linear history. |
| * MERGE_IF_NECESSARY: create a merge commit when required. |
| * REBASE_IF_NECESSARY: rebase the commit when required. |
| * REBASE_ALWAYS: always rebase the commit including dependencies. |
| * MERGE_ALWAYS: always create a merge commit. |
| * CHERRY_PICK: always cherry-pick the commit. |
| |
| + |
| Defaults to MERGE_IF_NECESSARY unless |
| link:config-gerrit.html#repository.name.defaultSubmitType[ |
| repository.<name>.defaultSubmitType] is set to a different value. |
| For more details see link:config-project-config.html#submit-type[ |
| Submit Types]. |
| |
| --use-content-merge:: |
| If enabled, Gerrit will try to perform a 3-way merge of text |
| file content when a file has been modified by both the |
| destination branch and the change being submitted. This |
| option only takes effect if submit type is not |
| FAST_FORWARD_ONLY. Disabled by default. |
| |
| --use-contributor-agreements:: |
| --ca:: |
| If enabled, authors must complete a contributor agreement |
| on the site before pushing any commits or changes to this |
| project. Disabled by default. |
| |
| --use-signed-off-by:: |
| --so: |
| If enabled, each change must contain a Signed-off-by line |
| from either the author or the uploader in the commit message. |
| Disabled by default. |
| |
| --create-new-change-for-all-not-in-target:: |
| --ncfa: |
| If enabled, a new change is created for every commit that is not in |
| the target branch. If the pushed commit is a merge commit, this flag is |
| ignored for that push. To avoid accidental creation of a large number |
| of open changes, this option also does not accept merge commits in the |
| commit chain. |
| Disabled by default. |
| |
| --require-change-id:: |
| --id:: |
| Require a valid link:user-changeid.html[Change-Id] footer |
| in any commit uploaded for review. This does not apply to |
| commits pushed directly to a branch or tag. |
| |
| --empty-commit:: |
| Creates an initial empty commit for the Git repository of the |
| project that is newly created. |
| |
| --max-object-size-limit:: |
| Define maximum Git object size for this project. Pushes containing an |
| object larger than this limit will be rejected. This can be used to |
| further limit the global |
| link:config-gerrit.html#receive.maxObjectSizeLimit[receive.maxObjectSizeLimit] |
| and cannot be used to increase that globally set limit. |
| + |
| Common unit suffixes of 'k', 'm', or 'g' are supported. |
| |
| --plugin-config:: |
| A plugin configuration parameter that should be set for this |
| project. The plugin configuration parameter must be specified in |
| the format '<plugin-name>.<parameter-name>=<value>'. Only |
| parameters that are explicitly declared by a plugin can be set. |
| Multiple `--plugin-config` options can be specified to set multiple |
| plugin parameters. |
| |
| |
| == EXAMPLES |
| Create a new project called `tools/gerrit`: |
| |
| ---- |
| $ ssh -p 29418 review.example.com gerrit create-project tools/gerrit.git |
| ---- |
| |
| Create a new project with a description: |
| |
| ---- |
| $ ssh -p 29418 review.example.com gerrit create-project tool.git --description "'Tools used by build system'" |
| ---- |
| |
| Note that it is necessary to quote the description twice. The local |
| shell needs double quotes around the value to ensure the single quotes |
| are passed through SSH as-is to the remote Gerrit server, which uses |
| the single quotes to delimit the value. |
| |
| == REPLICATION |
| If the replication plugin is installed, the plugin will attempt to |
| perform remote repository creation by a Bourne shell script: |
| |
| ---- |
| mkdir -p '/base/project.git' && cd '/base/project.git' && git init --bare && git update-ref HEAD refs/heads/master |
| ---- |
| |
| For this to work successfully the remote system must be able to run |
| arbitrary shell scripts, and must have `git` in the user's PATH |
| environment variable. Administrators could also run this command line |
| by hand to establish a new empty repository. |
| |
| A custom extension or plugin may also be developed to implement the |
| NewProjectCreatedListener extension point and handle custom logic |
| for remote repository creation. |
| |
| == SEE ALSO |
| |
| * link:project-configuration.html[Project Configuration] |
| |
| GERRIT |
| ------ |
| Part of link:index.html[Gerrit Code Review] |
| |
| SEARCHBOX |
| --------- |