|  | Gerrit Code Review - Quick get started guide | 
|  | ============================================ | 
|  |  | 
|  | **** | 
|  | This guide was made with the impatient in mind, ready to try out Gerrit on their | 
|  | own server but not prepared to make the full installation procedure yet. | 
|  |  | 
|  | Explanation is sparse and you should not use a server installed this way in a | 
|  | live setup, this is made with proof of concept activities in mind. | 
|  |  | 
|  | It is presumed you install it on a Unix based server such as any of the Linux | 
|  | flavors or BSD. | 
|  |  | 
|  | It's also presumed that you have access to an OpenID enabled email address. | 
|  | Examples of OpenID enable email providers are Gmail, Yahoo! Mail and Hotmail. | 
|  | It's also possible to register a custom email address with OpenID, but that is | 
|  | outside the scope of this quick installation guide. For testing purposes one of | 
|  | the above providers should be fine. Please note that network access to the | 
|  | OpenID provider you choose is necessary for both you and your Gerrit instance. | 
|  | **** | 
|  |  | 
|  |  | 
|  | [[requirements]] | 
|  | Requirements | 
|  | ------------ | 
|  |  | 
|  | Most distributions come with Java today. Do you already have Java installed? | 
|  |  | 
|  | ---- | 
|  | $ java -version | 
|  | java version "1.6.0_26" | 
|  | Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425) | 
|  | Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode) | 
|  | ---- | 
|  |  | 
|  | If Java isn't installed, get it: | 
|  |  | 
|  | * JDK, minimum version 1.6 http://www.oracle.com/technetwork/java/javase/downloads/index.html[Download] | 
|  |  | 
|  |  | 
|  | [[user]] | 
|  | Create a user to host the Gerrit service | 
|  | ---------------------------------------- | 
|  |  | 
|  | We will run the service as a non-privileged user on your system. | 
|  | First create the user and then become the user: | 
|  |  | 
|  | ---- | 
|  | $ sudo adduser gerrit2 | 
|  | $ sudo su gerrit2 | 
|  | ---- | 
|  |  | 
|  | If you don't have root privileges you could skip this step and run Gerrit | 
|  | as your own user as well. | 
|  |  | 
|  |  | 
|  | [[download]] | 
|  | Download Gerrit | 
|  | --------------- | 
|  |  | 
|  | It's time to download the archive that contains the Gerrit web and ssh service. | 
|  |  | 
|  | You can choose from different versions to download from here: | 
|  |  | 
|  | * http://code.google.com/p/gerrit/downloads/list[A list of releases available] | 
|  |  | 
|  | This tutorial is based on version 2.2.2, and you can download that from this link | 
|  |  | 
|  | * http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.2.2.war[Link to the 2.2.2 war archive] | 
|  |  | 
|  |  | 
|  | [[initialization]] | 
|  | Initialize the Site | 
|  | ------------------- | 
|  |  | 
|  | It's time to run the initialization, and with the batch switch enabled, we don't have to answer any questions at all: | 
|  |  | 
|  | ---- | 
|  | gerrit2@host:~$ java -jar gerrit.war init --batch -d ~/gerrit_testsite | 
|  | Generating SSH host key ... rsa(simple)... done | 
|  | Initialized /home/gerrit2/gerrit_testsite | 
|  | Executing /home/gerrit2/gerrit_testsite/bin/gerrit.sh start | 
|  | Starting Gerrit Code Review: OK | 
|  | gerrit2@host:~$ | 
|  | ---- | 
|  |  | 
|  | When the init is complete, you can review your settings in the | 
|  | file `'$site_path/etc/gerrit.config'`. | 
|  |  | 
|  | Note that initialization also starts the server.  If any settings changes are | 
|  | made, the server must be restarted before they will take effect. | 
|  |  | 
|  | ---- | 
|  | gerrit2@host:~$ ~/gerrit_testsite/bin/gerrit.sh restart | 
|  | Stopping Gerrit Code Review: OK | 
|  | Starting Gerrit Code Review: OK | 
|  | gerrit2@host:~$ | 
|  | ---- | 
|  |  | 
|  | The server can be also stopped and started by passing the `stop` and `start` | 
|  | commands to gerrit.sh. | 
|  |  | 
|  | ---- | 
|  | gerrit2@host:~$ ~/gerrit_testsite/bin/gerrit.sh stop | 
|  | Stopping Gerrit Code Review: OK | 
|  | gerrit2@host:~$ | 
|  | gerrit2@host:~$ ~/gerrit_testsite/bin/gerrit.sh start | 
|  | Starting Gerrit Code Review: OK | 
|  | gerrit2@host:~$ | 
|  | ---- | 
|  |  | 
|  | include::config-login-register.txt[] | 
|  |  | 
|  | Project creation | 
|  | ---------------- | 
|  |  | 
|  | Your base Gerrit server is now running and you have a user that's ready | 
|  | to interact with it.  You now have two options, either you create a new | 
|  | test project to work with or you already have a git with history that | 
|  | you would like to import into Gerrit and try out code review on. | 
|  |  | 
|  | New project from scratch | 
|  | ~~~~~~~~~~~~~~~~~~~~~~~~ | 
|  | If you choose to create a new repository from scratch, it's easier for | 
|  | you to create a project with an initial commit in it. That way first | 
|  | time setup between client and server is easier. | 
|  |  | 
|  | This is done via the SSH port: | 
|  |  | 
|  | ---- | 
|  | user@host:~$ ssh -p 29418 user@localhost gerrit create-project --empty-commit --name demo-project | 
|  | user@host:~$ | 
|  | ---- | 
|  |  | 
|  | This will create a repository that you can clone to work with. | 
|  |  | 
|  | Already existing project | 
|  | ~~~~~~~~~~~~~~~~~~~~~~~~ | 
|  |  | 
|  | The other alternative is if you already have a git project that you | 
|  | want to try out Gerrit on. | 
|  | First you have to create the project.  This is done via the SSH port: | 
|  |  | 
|  | ---- | 
|  | user@host:~$ ssh -p 29418 user@localhost gerrit create-project --name demo-project | 
|  | user@host:~$ | 
|  | ---- | 
|  |  | 
|  | You need to make sure that at least initially your account is granted | 
|  | "Create Reference" privileges for the refs/heads/* reference. | 
|  | This is done via the web interface in the Admin/Projects/Access page | 
|  | that correspond to your project. | 
|  |  | 
|  | After that it's time to upload the previous history to the server: | 
|  |  | 
|  | ---- | 
|  | user@host:~/my-project$ git push ssh://user@localhost:29418/demo-project *:* | 
|  | Counting objects: 2011, done. | 
|  | Writing objects: 100% (2011/2011), 456293 bytes, done. | 
|  | Total 2011 (delta 0), reused 0 (delta 0) | 
|  | To ssh://user@localhost:29418/demo-project | 
|  | * [new branch]      master -> master | 
|  | user@host:~/my-project$ | 
|  | ---- | 
|  |  | 
|  | This will create a repository that you can clone to work with. | 
|  |  | 
|  |  | 
|  | My first change | 
|  | --------------- | 
|  |  | 
|  | Download a local clone of the repository and move into it | 
|  |  | 
|  | ---- | 
|  | user@host:~$ git clone ssh://user@host:29418/demo-project | 
|  | Cloning into demo-project... | 
|  | remote: Counting objects: 2, done | 
|  | remote: Finding sources: 100% (2/2) | 
|  | remote: Total 2 (delta 0), reused 0 (delta 0) | 
|  | user@host:~$ cd demo-project | 
|  | user@host:~/demo-project$ | 
|  | ---- | 
|  |  | 
|  | Then make a change to it and upload it as a reviewable change in Gerrit. | 
|  |  | 
|  | ---- | 
|  | user@host:~/demo-project$ date > testfile.txt | 
|  | user@host:~/demo-project$ git add testfile.txt | 
|  | user@host:~/demo-project$ git commit -m "My pretty test commit" | 
|  | [master ff643a5] My pretty test commit | 
|  | 1 files changed, 1 insertions(+), 0 deletions(-) | 
|  | create mode 100644 testfile.txt | 
|  | user@host:~/demo-project$ | 
|  | ---- | 
|  |  | 
|  | Usually when you push to a remote git, you push to the reference | 
|  | `'/refs/heads/branch'`, but when working with Gerrit you have to push to a | 
|  | virtual branch representing "code review before submission to branch". | 
|  | This virtual name space is known as /refs/for/<branch> | 
|  |  | 
|  | ---- | 
|  | user@host:~/demo-project$ git push origin HEAD:refs/for/master | 
|  | Counting objects: 4, done. | 
|  | Writing objects: 100% (3/3), 293 bytes, done. | 
|  | Total 3 (delta 0), reused 0 (delta 0) | 
|  | remote: | 
|  | remote: New Changes: | 
|  | remote:   http://localhost:8080/1 | 
|  | remote: | 
|  | To ssh://user@localhost:29418/demo-project | 
|  | * [new branch]      HEAD -> refs/for/master | 
|  | user@host:~/demo-project$ | 
|  | ---- | 
|  |  | 
|  | You should now be able to access your change by browsing to the http URL | 
|  | suggested above, http://localhost:8080/1 | 
|  |  | 
|  |  | 
|  | Quick Installation Complete | 
|  | --------------------------- | 
|  |  | 
|  | This covers the scope of getting Gerrit started and your first change uploaded. | 
|  | It doesn't give any clue as to how the review workflow works, please read | 
|  | link:http://source.android.com/submit-patches/workflow[Default Workflow] to | 
|  | learn more about the workflow of Gerrit. | 
|  |  | 
|  | To read more on the installation of Gerrit please see link:install.html[the detailed | 
|  | installation page]. | 
|  |  | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  |  | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |