総数:15 今日:1 昨日:0

もくじ

参考URL Ubuntu 16.04(またはRaspbian)にRedmineをインストールする

gerritサーバ側の設定

Ubuntu 16.04でgerritサーバを動作させる為の設定を記載します。

gerritパッケージのインストール(apt-getで)

パッケージソースのリストに gerrit の repository を追加する。

~$ sudo su -c 'echo "deb mirror://mirrorlist.gerritforge.com/deb gerrit contrib" > /etc/apt/sources.list.d/gerritforge.list'

認証する鍵情報をローカルキーチェーンに取り込んでおく

Ubuntu公式以外のリポジトリからパッケージを取得するためには、そのリポジトリを認証する鍵情報をapt-keyコマンドでローカルキーチェーンに取り込んでおく必要があります。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1871F775
Executing: /tmp/tmp.LlR3JDAzXm/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv-keys
1871F775
gpg: 鍵1871F775をhkpからサーバkeyserver.ubuntu.comに要求
gpg: 鍵1871F775: 公開鍵"GerritForge <info@gerritforge.com>"をインポートしました
gpg: 処理数の合計: 1
gpg:               インポート: 1  (RSA: 1)

Proxy配下からだと上手く動きません。
このような場合、下記のように、--keyserver-optionを使うと幸せになれます。

--keyserver-option http-proxy=http://<アカウント>:<パスワード>@プロキシサーバ:ポート

例:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-option http-proxy=http://<アカウント>:<パスワード>@プロキシサーバ:ポート --recv-keys 1871F775

パッケージリストを更新する

$ sudo apt-get update -y
ヒット:1 http://jp.archive.ubuntu.com/ubuntu xenial InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu xenial-updates InRelease                                                        
ヒット:3 http://jp.archive.ubuntu.com/ubuntu xenial-backports InRelease                                                      
ヒット:4 http://security.ubuntu.com/ubuntu xenial-security InRelease                           
無視:5 mirror://mirrorlist.gerritforge.com/deb gerrit InRelease                                
取得:6 mirror://mirrorlist.gerritforge.com/deb gerrit Release [1,475 B]
取得:7 mirror://mirrorlist.gerritforge.com/deb gerrit Release.gpg [473 B]
取得:8 mirror://mirrorlist.gerritforge.com/deb gerrit/contrib amd64 Packages [33.9 kB]
取得:9 mirror://mirrorlist.gerritforge.com/deb gerrit/contrib i386 Packages [33.9 kB]
69.8 kB を 4秒 で取得しました (15.1 kB/s)
パッケージリストを読み込んでいます... 完了
W: mirror://mirrorlist.gerritforge.com/deb/dists/gerrit/Release.gpg: 鍵 F0E24DA66FFAA737081E5A7E1FFFAA5E1871F775 による署名は弱い digest アルゴリズム (SHA1) を使用しています

インストールする。

$ sudo apt-get install -y gerrit
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  gerrit
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 96 個。
89.1 MB のアーカイブを取得する必要があります。
この操作後に追加で 89.3 MB のディスク容量が消費されます。
取得:1 mirror://mirrorlist.gerritforge.com/deb gerrit/contrib amd64 gerrit all 2.15.1-1 [89.1 MB]
89.1 MB を 33秒 で取得しました (2,622 kB/s)                                                                                   
以前に未選択のパッケージ gerrit を選択しています。
(データベースを読み込んでいます ... 現在 229288 個のファイルとディレクトリがインストールされています。)
.../gerrit_2.15.1-1_all.deb を展開する準備をしています ...
Checking Java version ... 1.8.0
gerrit (2.15.1-1) を展開しています...
gerrit (2.15.1-1) を設定しています ...

Initialising Gerrit site ... DONE
Setting user/group owner ... DONE
Creating symlinks .......... DONE

Installation completed

Starting Gerrit Code Review: OK
To start using Gerrit, open: http://ubdt16044:8080/

サービス自動起動有効

$ sudo systemctl enable gerrit
gerrit.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable gerrit

サービス起動

$ sudo systemctl start gerrit
Job for gerrit.service failed because the control process exited with error code.
See "systemctl status gerrit.service" and "journalctl -xe" for details.

あれ、失敗する・・・では ubuntu自体を一度再起動してから再挑戦・・・

$ sudo systemctl start gerrit

確認

ブラウザから以下のURLにアクセスすることでgerritに接続できます。

http://<srver>:8080/

例: http://192.168.3.25:8080/ 例: http://ubdt16044:8080/

TCPポートの変更

デフォルトのポートは8080です。他のサービスと重複する場合は以下のように変更します。

なお、canonicalWebUrlのドメイン名はページ遷移で使われるので、外部からアクセスできるものにしてください。
IPアドレスでも良いです。デフォルトだとドメイン名はホスト名が設定されています。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 15:40:47.447992597 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 16:48:20.334216036 +0900
@@ -1,7 +1,7 @@
 [gerrit]
 	basePath = git
 	serverId = aa1c7b17-5abd-4153-9b3c-c2c79523742a
-	canonicalWebUrl = http://ubdt16044:8080/
+	canonicalWebUrl = http://192.168.3.25:8081/
 [database]
 	type = h2
 	database = db/ReviewDB
@@ -14,7 +14,7 @@
 [sshd]
 	listenAddress = *:29418
 [httpd]
-	listenUrl = http://*:8080/
+	listenUrl = http://*:8081/
 	filterClass = com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect
 	firstTimeRedirectUrl = /login/%23%2F?account_id=1000000
 [cache]

gerritを再起動します。

$ sudo systemctl restart gerrit

ブラウザから以下のURLにアクセスすることでgerritに接続できます。

http://<server>:8081

例: http://192.168.3.25:8081/

Apache2を利用する

<server>:<port>ではなく、<server>/gerritでアクセスできるようにApache2を利用するようにします。
また、URLアクセスにダイジェスト認証を利用するようにします。

gerritでApache2を利用するようにします。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 16:48:20.334216036 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 17:32:57.662216036 +0900
@@ -1,7 +1,7 @@
 [gerrit]
 	basePath = git
 	serverId = aa1c7b17-5abd-4153-9b3c-c2c79523742a
-	canonicalWebUrl = http://192.168.3.25:8081/
+	canonicalWebUrl = http://192.168.3.25/gerrit
 [database]
 	type = h2
 	database = db/ReviewDB
@@ -14,7 +14,7 @@
 [sshd]
 	listenAddress = *:29418
 [httpd]
-	listenUrl = http://*:8081/
+	listenUrl = proxy-http://127.0.0.1:8081/gerrit
 	filterClass = com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect
 	firstTimeRedirectUrl = /login/%23%2F?account_id=1000000
 [cache]

gerritを再起動します。

$ sudo systemctl restart gerrit

Apache2にgerrit用の設定ファイルを追加します。

~$ sudo su -c 'cat << EOF > /etc/apache2/mods-enabled/gerrit.conf
ProxyPass           /gerrit  http://localhost:8081/gerrit nocanon
ProxyPassReverse    /gerrit  http://localhost:8081/gerrit nocanon
ProxyRequests       Off

<Proxy http://localhost:8081/gerrit>
  Order deny,allow
  Allow from all
</Proxy>

<Location /gerrit>
  AuthType Digest
  AuthName "gerrit"
  AuthUserFile /etc/apache2/.htdigest
  Require valid-user
</Location>
EOF
'

ダイジェスト認証のファイルを作成します。 例

設定項目設定内容
gerrit ユーザー名gerrit_admin
パスワードgerrit
~$ sudo htdigest -c /etc/apache2/.htdigest "gerrit" gerrit_admin
Adding password for gerrit_admin in realm gerrit.
New password: 
Re-type new password:

gerritはスラッシュの代わりに%2Fを使うページがあります。
VirtualHostディレクティブ内部でAllowEncodedSlashesをOnにします。

~$ diff -uprN /etc/apache2/sites-available/000-default.conf{.org,}
--- /etc/apache2/sites-available/000-default.conf.org	2016-03-19 18:48:35.000000000 +0900
+++ /etc/apache2/sites-available/000-default.conf	2018-05-05 18:01:06.922216036 +0900
@@ -26,6 +26,8 @@
 	# following line enables the CGI configuration for this host only
 	# after it has been globally disabled with "a2disconf".
 	#Include conf-available/serve-cgi-bin.conf
+
+	AllowEncodedSlashes On
 </VirtualHost>
 
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

proxy_httpとauth_digestを有効にして、Apache2を再起動します。

$ sudo a2enmod proxy_http auth_digest
Considering dependency proxy for proxy_http:
Enabling module proxy.
Enabling module proxy_http.
Considering dependency authn_core for auth_digest:
Module authn_core already enabled
Enabling module auth_digest.
To activate the new configuration, you need to run:
  service apache2 restart
$ sudo systemctl restart apache2

管理ユーザの追加

HTTPでアクセスできる管理ユーザを作成します。以下の手順で管理ユーザを追加します。

他のPCで管理ユーザとなるgerritクライアントを作成しておきます。

~$ sudo bash
~# adduser gerrit_admin 
ユーザー `gerrit_admin' を追加しています...
新しいグループ `gerrit_admin' (1001) を追加しています...
新しいユーザー `gerrit_admin' (1001) をグループ `gerrit_admin' に追加しています...
ホームディレクトリ `/home/gerrit_admin' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しい UNIX パスワードを入力してください: 例:gerritと入力
新しい UNIX パスワードを再入力してください: 
passwd: パスワードは正しく更新されました
gerrit_admin のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
	フルネーム []: 
	部屋番号 []: 
	職場電話番号 []: 
	自宅電話番号 []: 
	その他 []: 
以上で正しいですか? [Y/n] Y
~# exit
~$ 

他のPCで管理ユーザとなるgerritクライアントでSSHの公開鍵を作成します。

すでに公開鍵を持っている場合はそちらを利用してください。

~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/gerrit_admin/.ssh/id_rsa): 
Created directory '/home/gerrit_admin/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/gerrit_admin/.ssh/id_rsa.
Your public key has been saved in /home/gerrit_admin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:mPQiaJK0tNCpzDG91CKSWds172kHi4s38j15wVDF+SU gerrit_admin@ryu
The key's randomart image is:
+---[RSA 2048]----+
|  .   o    o..   |
| =.+.. o  . o E .|
|=*++... o.   . o |
|BoB.o. *.+    .  |
|+=o.. = So.      |
| o   o + .o      |
|    o +  . .     |
|     + oo .      |
|      . .o       |
+----[SHA256]-----+
~$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCr15DYehkRNxugr8xjbUgvgFKX/Uy+rwpWILNu+TqqF9fCNGbt37WPvLebHrbbGuPVQYyOW7KFCJpzYQDGR6DIozhyAzOJVwmpxhQkehtrHOiKFfs4dvilMVnffxddgonONTUljtwFG6zGCgUYz+DWSrOIyu1ymN+W2ODzIjVQfHt1YBcOLkiLSrf82gUyd2p8hYeHs9MYCgDMLtkm46BPoWBST01mGS1mosNMrmzaTPTIVQCI6Hf7HhfGezDWGJUO6lhTrcqU1MKBfmm4186CumeevKAv6Y9cJ2zxUCGtsmRF3ZXAzGOcgQONavPg/4NYeTRHo1JxUGuQPn7gRnJL gerrit_admin@ryu

gerritをインストールしたPCでユーザ認証をHTTPに変更します。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 17:32:57.662216036 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 21:56:55.490216036 +0900
@@ -8,7 +8,7 @@
 [index]
 	type = LUCENE
 [auth]
-	type = DEVELOPMENT_BECOME_ANY_ACCOUNT
+	type = HTTP
 [sendemail]
 	smtpServer = localhost
 [sshd]

gerritを再起動します。

~$ sudo systemctl restart gerrit

他のPCでURLにアクセスしてユーザを作成する

ブラウザから以下のURLへアクセスします。

http://<server>/gerrit

例:
http://192.168.3.25/gerrit

ダイジェスト認証のダイアログ画面にて

htdigestで作成したユーザ名とパスワードを入力します。

入力項目入力内容
ユーザー名gerrit_admin
パスワードgerrit

register画面にて

Please review your contact information:

入力項目入力内容
Usernamegerrit_admin
Full Namegerrit admin

フルネームはユーザ名とは別のものにする必要があります。

SSHの公開鍵を登録します。
Register an SSH public key:

入力項目入力内容
Add SSH Public Key管理ユーザとなるgerritクライアントでSSHの公開鍵である、.ssh/id_rsa.pub の中身テキストをペーストします。

Add ボタンを選択する。

なお、仕様なのか、HTTP経由だとemailの登録はできません。後ほどSSH経由で登録します。

gerritをインストールしたPCでユーザ認証をDEVELOPMENT_BECOME_ANY_ACCOUNTに変更します。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 21:56:55.490216036 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 22:58:25.566216036 +0900
@@ -8,7 +8,7 @@
 [index]
 	type = LUCENE
 [auth]
-	type = HTTP
+	type = DEVELOPMENT_BECOME_ANY_ACCOUNT
 [sendemail]
 	smtpServer = localhost
 [sshd]

gerritを再起動します。

~$ sudo systemctl restart gerrit

他のPCでブラウザをリロードし、右上のユーザ名からSwitch Accountを選択します。

他のPCで Choose: の admin を選択します。

他のPCで 上のメニューからPeopleのList Groupsを選択します。

他のPCで Group Name が Administrators を選択します。

他のPCで Group Name が Administratorsグループに先ほど作成したユーザを追加します。

入力項目入力内容
Membersgerrit_admin

Add ボタンを選択する。

gerritをインストールしたPCで ユーザ認証をHTTPに変更します。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-06 14:14:55.867434310 +0900
+++ /etc/gerrit/gerrit.config	2018-05-06 14:38:40.603434310 +0900
@@ -8,7 +8,7 @@
 [index]
 	type = LUCENE
 [auth]
-	type = DEVELOPMENT_BECOME_ANY_ACCOUNT
+	type = HTTP
 [sendemail]
 	smtpServer = localhost
 [sshd]

gerritを再起動します。

~$ sudo systemctl restart gerrit

SSH経由でemailを登録します。

$ # ssh -p 29418 <server> gerrit set-account --add-email <mail> <user>
$ # ssh -p 29418 <server> gerrit set-account --preferred-email <mail> <user>

例:

$ ssh -p 29418 192.168.3.25 gerrit set-account --add-email "gerrit_admin@domain" gerrit_admin
$ ssh -p 29418 192.168.3.25 gerrit set-account --preferred-email "gerrit_admin@domain" gerrit_admin

これ以降の管理ユーザの作成

ただいま作成した管理ユーザを用いれば、これ以降の管理ユーザはHTTP/DEVELOPMENT_BECOME_ANY_ACCOUNTの切り替え不要です。

コミッタやレビュアのようにHTTPアクセスが必要なユーザの作成

コミッタやレビュアのようにHTTPアクセスが必要なユーザは以下のように作成します。

Jenkinsのように外部からSSH経由のみでアクセスするユーザの作成

gerritクライアント側の設定

Ubuntu 16.04でgerritサーバへパッチを送信する為の設定を記載します。

gitをinstall しておきます。

~$ sudo apt-get install git-core

no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

gerritはSSHの暗号化にdiffie-hellman-group1-sha1を使おうとする一方、
OpenSSH 7から古い暗号化がデフォルトで無効になっており、
OpenSSH 7クライアントとgerritサーバのSSH接続が失敗してしまいます。

~$ ssh -V
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016

クライアント側の.ssh/configにてgerritのサーバはdiffie-hellman-group1-sha1を使用するようにします。

$ cat << EOF > .ssh/config
Host 192.168.3.25
  KexAlgorithms +diffie-hellman-group1-sha1
EOF

git-reviewのインストール

gerritサーバにパッチを送信するgit-reviewをクライアント側でインストールします。

~$ sudo apt-get install -y git-review
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libllvm3.8 libqmi-glib1 linux-headers-4.4.0-112
  linux-headers-4.4.0-112-generic linux-headers-4.4.0-116
  linux-headers-4.4.0-116-generic linux-image-4.4.0-112-generic
  linux-image-4.4.0-116-generic linux-image-extra-4.4.0-112-generic
  linux-image-extra-4.4.0-116-generic
これを削除するには 'sudo apt autoremove' を利用してください。
以下の追加パッケージがインストールされます:
  python-ndg-httpsclient python-requests python-urllib3
提案パッケージ:
  python-ntlm
以下のパッケージが新たにインストールされます:
  git-review python-ndg-httpsclient python-requests python-urllib3
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 51 個。
169 kB のアーカイブを取得する必要があります。
この操作後に追加で 815 kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 python-ndg-httpsclient all 0.4.0-3 [25.1 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 python-urllib3 all 1.13.1-2ubuntu0.16.04.1 [57.2 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 python-requests all 2.9.1-3 [55.6 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu xenial/universe amd64 git-review all 1.25.0-2 [31.2 kB]
169 kB を 0秒 で取得しました (870 kB/s)
以前に未選択のパッケージ python-ndg-httpsclient を選択しています。
(データベースを読み込んでいます ... 現在 484125 個のファイルとディレクトリがインストールされています。)
.../python-ndg-httpsclient_0.4.0-3_all.deb を展開する準備をしています ...
python-ndg-httpsclient (0.4.0-3) を展開しています...
以前に未選択のパッケージ python-urllib3 を選択しています。
.../python-urllib3_1.13.1-2ubuntu0.16.04.1_all.deb を展開する準備をしています ...
python-urllib3 (1.13.1-2ubuntu0.16.04.1) を展開しています...
以前に未選択のパッケージ python-requests を選択しています。
.../python-requests_2.9.1-3_all.deb を展開する準備をしています ...
python-requests (2.9.1-3) を展開しています...
以前に未選択のパッケージ git-review を選択しています。
.../git-review_1.25.0-2_all.deb を展開する準備をしています ...
git-review (1.25.0-2) を展開しています...
man-db (2.7.5-1) のトリガを処理しています ...
python-ndg-httpsclient (0.4.0-3) を設定しています ...
python-urllib3 (1.13.1-2ubuntu0.16.04.1) を設定しています ...
python-requests (2.9.1-3) を設定しています ...
git-review (1.25.0-2) を設定しています ...

新規プロジェクトの追加

SSH経由でプロジェクトを作成

以下のコマンドにてSSH経由でプロジェクトを作成できます。
既存リポジトリをインポートしない場合は–empty-commitが必要です。

~$ ssh -p 29418 <server> gerrit create-project --empty-commit <name> --description "'<desc>'"

例:SSH経由でfirst-projectというプロジェクトを作成します。

~$ ssh -p 29418 192.168.3.25 gerrit create-project --empty-commit first-project.git --description "'Create first project from SSH command'"

プロジェクトのリポジトリのURLは以下の通りです。

http://<server>/gerrit/<name>.git
ssh://<server>:29418/<name>.git

例:http://192.168.3.25/gerrit/first-project.git

HTTP経由でgit cloneします。

~$ git clone http://192.168.3.25/gerrit/first-project.git
Cloning into 'first-project'...
Username for 'http://192.168.3.25': gerrit_admin
Password for 'http://gerrit_admin@192.168.3.25': 例:gerrit と入力
remote: Counting objects: 2, done
remote: Finding sources: 100% (2/2)
remote: Total 2 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (2/2), done.
Checking connectivity... done.
~$ cd first-project

git-review用の設定ファイルの.gitreviewを作成します。

hostとprojectをご自分の環境のものに変更してください。

$ cat <<EOF > .gitreview
[gerrit]
host=192.168.3.25
port=29418
project=first-project
defaultbranch=master
EOF

新規ファイル追加等のgitでの作業を実行します。

$ echo hello > hello.txt
$ git add hello.txt
$ git commit -m "Hello, World"

git-review実行前のgit logは以下の通りです。

~/first-project$ git commit -v
[master 708da64] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt
gerrit_admin@ryu:~/first-project$ git log
commit 708da64c8bfad4248b720f9da45ec32a5ea8d58b
Author: gerrit_admin <gerrit_admin@domain>
Date:   Sun May 6 17:00:42 2018 +0900

    first commit
    
        new file:   hello.txt
    +hello

commit f63ad9f50b2fcc942eee3e41d25931caf1230cd5
Author: gerrit_admin <gerrit_admin@192.168.3.25>
Date:   Sun May 6 16:26:31 2018 +0900

    Initial empty repository

git-reviewを実行します。

~/first-project$ git review
Creating a git remote called "gerrit" that maps to:
	ssh://gerrit_admin@192.168.3.25:29418/first-project
Your change was committed before the commit hook was installed.
Amending the commit to add a gerrit change id.
remote: Processing changes: new: 1, done            
remote: 
remote: New Changes:        
remote:   http://192.168.3.25/gerrit/#/c/first-project/+/1 first commit        
remote: 
remote: Pushing to refs/publish/* is deprecated, use refs/for/* instead.        
To ssh://gerrit_admin@192.168.3.25:29418/first-project
 * [new branch]      HEAD -> refs/publish/master

git-review実行後のgit logは以下のとおりです。

先ほどのコミットメッセージにChange-Idが追加されています。
これはgerrit上でコミットを管理するのに使われる識別子です。

~/first-project$ git log
commit 0a8bdb1e24bbb1f63cae5f59053f161d00542120
Author: gerrit_admin <gerrit_admin@domain>
Date:   Sun May 6 17:00:42 2018 +0900

    first commit
    
        new file:   hello.txt
    +hello
    
    Change-Id: Id4707e70131dca4f44f8aff74a160f5b2a60a164

commit f63ad9f50b2fcc942eee3e41d25931caf1230cd5
Author: gerrit_admin <gerrit_admin@192.168.3.25>
Date:   Sun May 6 16:26:31 2018 +0900

    Initial empty repository

なお、このChange-Idはgit-review実行時にダウンロードされたgerrit用の.git/hooks/commit-msgが付加しています。

gerritのウェブページのメニューにて、AllのOpenを開きます。

先ほどのコミットしたパッチが表示されます。

パッチを選択すると詳細画面が表示されます。

この画面でパッチの内容を確認します。

確認して問題があればAbandon、問題がなければCode-Review+2をクリックします。

ここではCode-Review+2をクリックしています。

Submitする

デフォルトだとCode-Reviewスコアは+2になるとSubmit可能になります。
Submitするとリポジトリにパッチがプッシュされます。

既存リポジトリを利用する

–empty-commitを指定せずにプロジェクトを作成します。

$ ssh -p 29418 192.168.3.25 gerrit create-project existing-project.git --description "'Create existing project from SSH command'"

既存リポジトリのベアリポジトリを作成します。

$ git clone --bare <path-to-repository>/existing-project.git
$ cd existing-project.git

ベアリポジトリをSSH経由で先ほど作成したプロジェクトにプッシュします。

$ git push ssh://192.168.3.25:29418/existing-project.git *:*

これ以降はHTTP経由でgit cloneが可能となります。また、既存リポジトリとハッシュ値は同じになっています。

$ git clone http://192.168.3.25/gerrit/existing-project.git

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS