blob: cc7e9299e059214b7ef873c893c406f7517ab485 [file] [log] [blame]
Shawn O. Pearce6e752212009-08-12 12:22:12 -07001gerrit create-project
2=====================
3
4NAME
5----
6gerrit create-project - Create a new hosted project
7
8SYNOPSIS
9--------
10[verse]
Shawn O. Pearce47769242011-06-14 16:40:48 -070011'ssh' -p <port> <host> 'gerrit create-project'
12 [--owner <GROUP> ... | -o <GROUP> ...]
13 [--parent <NAME> | -p <NAME> ]
Bruce Zucdb3cb82011-12-14 13:27:43 +080014 [--suggest-parents | -S ]
Shawn O. Pearce47769242011-06-14 16:40:48 -070015 [--permissions-only]
16 [--description <DESC> | -d <DESC>]
17 [--submit-type <TYPE> | -t <TYPE>]
18 [--use-contributor-agreements | --ca]
19 [--use-signed-off-by | --so]
20 [--use-content-merge]
21 [--require-change-id | --id]
22 [--branch <REF> | -b <REF>]
23 [--empty-commit]
24 { <NAME> | --name <NAME> }
Shawn O. Pearce6e752212009-08-12 12:22:12 -070025
26DESCRIPTION
27-----------
28Creates a new bare Git repository under `gerrit.basePath`, using
29the project name supplied. The newly created repository is empty
30(has no commits), but is registered in the Gerrit database so that
31the initial commit may be uploaded for review, or initial content
32can be pushed directly into a branch.
33
34If replication is enabled, this command also connects to each of
35the configured remote systems over SSH and uses command line git
36on the remote system to create the empty repository.
37
38
39ACCESS
40------
Shawn O. Pearce897d9212011-06-16 16:59:59 -070041Caller must be a member of the privileged 'Administrators' group,
42or have been granted the 'Create Project' global capability.
Shawn O. Pearce6e752212009-08-12 12:22:12 -070043
44SCRIPTING
45---------
46This command is intended to be used in scripts.
47
48OPTIONS
49-------
Shawn O. Pearce47769242011-06-14 16:40:48 -070050<NAME>::
51Required; name of the new project to create. If name ends
52with `.git` the suffix will be automatically removed.
Shawn O. Pearce6e752212009-08-12 12:22:12 -070053
Shawn O. Pearce47769242011-06-14 16:40:48 -070054--name::
55-n::
56Deprecated alias for the <NAME> argument. This option may
57be removed in a future release.
58
59--branch::
60-b::
Shawn O. Pearce8c56a8c2009-09-18 19:21:08 -070061Name of the initial branch in the newly created project.
62Defaults to 'master'.
63
Shawn O. Pearce47769242011-06-14 16:40:48 -070064--owner::
65-o::
Hugo Josefson072b4702010-04-21 19:27:11 +020066Name of the group(s) which will initially own this repository.
67The specified group(s) must already be defined within Gerrit.
68Several groups can be specified on the command line.
Shawn O. Pearce6e752212009-08-12 12:22:12 -070069+
Shawn O. Pearce47769242011-06-14 16:40:48 -070070Defaults to what is specified by `repository.*.ownerGroup`
Shawn O. Pearce897d9212011-06-16 16:59:59 -070071in gerrit.config.
Shawn O. Pearce6e752212009-08-12 12:22:12 -070072
Shawn O. Pearce47769242011-06-14 16:40:48 -070073--parent::
74-p::
Shawn O. Pearce9c151142010-04-23 17:03:16 -070075Name of the parent project to inherit access rights
76through. If not specified, the parent is set to the default
Shawn O. Pearcea0631822011-06-14 11:18:18 -070077project `All-Projects`.
Shawn O. Pearce9c151142010-04-23 17:03:16 -070078
Bruce Zucdb3cb82011-12-14 13:27:43 +080079--suggest-parents::
80-S::
81Suggest parent candidates. This option cannot be used with
82other arguments. Print out a list of projects that are
83already parents to other projects, thus it can help the user
84find a suitable parent for the new project.
85
Shawn O. Pearce47769242011-06-14 16:40:48 -070086--permissions-only::
Shawn O. Pearceaaca9592011-06-14 10:24:49 -070087Create the project only to serve as a parent for other
88projects. The new project's Git repository will be
89initialized to have 'HEAD' point to 'refs/meta/config'.
90
Shawn O. Pearce47769242011-06-14 16:40:48 -070091--description::
92-d::
Shawn O. Pearce6e752212009-08-12 12:22:12 -070093Initial description of the project. If not specified,
94no description is stored.
Shawn O. Pearceea6fc172009-09-18 15:40:38 -070095+
96Description values containing spaces should be quoted in single quotes
Shawn O. Pearce47769242011-06-14 16:40:48 -070097('). This most likely requires double quoting the value, for example
98`--description "'A description string'"`.
Shawn O. Pearce6e752212009-08-12 12:22:12 -070099
Shawn O. Pearce47769242011-06-14 16:40:48 -0700100--submit-type::
101-t::
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700102Action used by Gerrit to submit an approved change to its
103destination branch. Supported options are:
104+
Shawn O. Pearce8c56a8c2009-09-18 19:21:08 -0700105* FAST_FORWARD_ONLY: produces a strictly linear history.
106* MERGE_IF_NECESSARY: create a merge commit when required.
107* MERGE_ALWAYS: always create a merge commit.
108* CHERRY_PICK: always cherry-pick the commit.
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700109
110+
Shawn O. Pearce8c56a8c2009-09-18 19:21:08 -0700111Defaults to MERGE_IF_NECESSARY. For more details see
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700112link:project-setup.html#submit_type[Change Submit Actions].
113
Shawn O. Pearce47769242011-06-14 16:40:48 -0700114--use-content-merge::
Dmitry Fink876953e2010-09-29 23:44:22 -0700115If enabled, Gerrit will try to perform a 3-way merge of text
116file content when a file has been modified by both the
117destination branch and the change being submitted. This
118option only takes effect if submit type is not
119FAST_FORWARD_ONLY. Disabled by default.
120
Shawn O. Pearce47769242011-06-14 16:40:48 -0700121--use-contributor-agreements::
122--ca::
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700123If enabled, authors must complete a contributor agreement
124on the site before pushing any commits or changes to this
125project. Disabled by default.
126
Shawn O. Pearce47769242011-06-14 16:40:48 -0700127--use-signed-off-by::
128--so:
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700129If enabled, each change must contain a Signed-off-by line
130from either the author or the uploader in the commit message.
131Disabled by default.
132
Shawn O. Pearce47769242011-06-14 16:40:48 -0700133--require-change-id::
134--id::
135Require a valid link:user-changeid.html[Change-Id] footer
136in any commit uploaded for review. This does not apply to
137commits pushed directly to a branch or tag.
138
139--empty-commit::
Shawn Pearceec155112010-10-12 13:58:36 +0200140Creates an initial empty commit for the Git repository of the
141project that is newly created.
142
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700143
144EXAMPLES
145--------
146Create a new project called `tools/gerrit`:
147
148====
Shawn O. Pearce47769242011-06-14 16:40:48 -0700149$ ssh -p 29418 review.example.com gerrit create-project tools/gerrit.git
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700150====
151
Shawn O. Pearceea6fc172009-09-18 15:40:38 -0700152Create a new project with a description:
153
154====
Shawn O. Pearce47769242011-06-14 16:40:48 -0700155$ ssh -p 29418 review.example.com gerrit create-project tool.git --description "'Tools used by build system'"
Shawn O. Pearceea6fc172009-09-18 15:40:38 -0700156====
157
158Note that it is necessary to quote the description twice. The local
159shell needs double quotes around the value to ensure the single quotes
160are passed through SSH as-is to the remote Gerrit server, which uses
161the single quotes to delimit the value.
162
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700163REPLICATION
164-----------
165The remote repository creation is performed by a Bourne shell script:
166
167====
Shawn O. Pearce8c56a8c2009-09-18 19:21:08 -0700168 mkdir -p '/base/project.git' && cd '/base/project.git' && git init --bare && git update-ref HEAD refs/heads/master
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700169====
170
Shawn O. Pearce8c56a8c2009-09-18 19:21:08 -0700171For this to work successfully the remote system must be able to run
172arbitrary shell scripts, and must have `git` in the user's PATH
173environment variable. Administrators could also run this command line
174by hand to establish a new empty repository.
Shawn O. Pearce6e752212009-08-12 12:22:12 -0700175
176SEE ALSO
177--------
178
179* link:config-replication.html[Git Replication/Mirroring]
180* link:project-setup.html[Project Setup]
181
182GERRIT
183------
184Part of link:index.html[Gerrit Code Review]