Separate the initial login and user setup instructions out into a shared file so the same text can be included in the Tomcat install instructions later. Change-Id: Iec0af0325ca59b9c9cc7fc178155e58dda6274ba
		
			
				
	
	
		
			235 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
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]
 |