ITK/Gerrit: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
(Added details about editing commits)
Line 53: Line 53:
Each of the commits listed by git log will then show up as a commit, optionally labeled with topic-name, in the Gerrit web interface. These commits can then be reviewed and integrated.
Each of the commits listed by git log will then show up as a commit, optionally labeled with topic-name, in the Gerrit web interface. These commits can then be reviewed and integrated.


== Making Changes in Uploaded Patches (Hard way) ==
== Making Changes in Uploaded Patches (most recent commit) ==


If your change requires revision before it is accepted, you will first need to correct the commit in the topic branch. The change-id should have been automatically added to your commits, or you can manually add it after the fact if necessary.
If your change requires revision before it is accepted, you will first need to correct the commit in the topic branch. To do this:


   git rebase -i HEAD~2
   git add


An editor will open, see [http://book.git-scm.com/4_interactive_rebasing.html here for details on interactive rebasing]. Once you have edited the relevant commit(s) you should be ready to upload the updated patches, assuming your commit messages all have the last line,
any files that have changed. Then to add these changes to the most recent commit,


   Change-Id:[change id from Gerrit here]
   git commit --amend


You can then push the corrected commit(s) to Gerrit,,
An editor will open. You can edit the commit message if necessary. Then


   git push gerrit HEAD:refs/for/master/topic-name
   git gerrit-push


This updated patch will be shown in the interface as patch set 2, any subsequent commits in the topic should also be updated with their new parents being the updated commits.
This updated patch will be shown in the interface as patch set 2, any subsequent commits in the topic should also be updated with their new parents being the updated commits. If you need to update anything but the last commit in a topic you will need to use the approach detailed below.


== Making Changes in Uploaded Patches (Easy way) ==
== Making Changes in Uploaded Patches (multiple commits) ==


If your change requires revision before it is accepted, you will first need to correct the commit in the topic branch. To do this:
If your change requires revision before it is accepted, you will first need to correct the commit in the topic branch. The change-id should have been automatically added to your commits, or you can manually add it after the fact if necessary. If you need to edit the second most recent commit in a topic,


   git add
   git rebase -i HEAD~2


any files that have changed.
An editor will open, see [http://book.git-scm.com/4_interactive_rebasing.html here for details on interactive rebasing]. Once you have edited the relevant commit(s) you should be ready to upload the updated patches, assuming your commit messages all have the last line,


Then
  Change-Id:[change id from Gerrit here]


  git commit --amend
You can then push the corrected commit(s) to Gerrit,,
 
An editor will open. You can edit the commit message if necessary. Then


   git gerrit-push
   git gerrit-push


This updated patch will be shown in the interface as patch set 2, any subsequent commits in the topic should also be updated with their new parents being the updated commits.
This updated patch will be shown in the interface as patch set 2, any subsequent commits in the topic should also be updated with their new parents being the updated commits. If you need to edit the third most recent commit simply use HEAD~3, or HEAD~4 to go four commits back.


= Gerrit Reviewers =
= Gerrit Reviewers =


* [[ITK/Gerrit/Reviewers|Gerrit Reviewers]]
* [[ITK/Gerrit/Reviewers|Gerrit Reviewers]]

Revision as of 14:23, 21 April 2011

Code Review System

Overview

Installation

The ITK Gerrit system is available at

In order to register you need to get an OpenID

Workflow

ITK-Git-Gerrit-Stage-Workflow-A.png

Workflow Example, from Android

Integration with Git

Add Gerrit as one of your remotes

You will want to add Gerrit as a remote, using the username you selected in the Gerrit web interface,

 git remote add gerrit USERNAME@review.source.kitware.com:ITK

Gerrit allows you to select a username, and to upload your public SSH key(s).

How to push to Gerrit

When on your topic branch, to view the commits that will be pushed as changes,

  git fetch gerrit
  git log gerrit/master..

Then, when you have a topic branch ready to go,

  git push gerrit HEAD:refs/for/master/topic-name

(Note: this could be simply

  git gerrit-push

if you have run SetupForDevelopment.sh)

Each of the commits listed by git log will then show up as a commit, optionally labeled with topic-name, in the Gerrit web interface. These commits can then be reviewed and integrated.

Making Changes in Uploaded Patches (most recent commit)

If your change requires revision before it is accepted, you will first need to correct the commit in the topic branch. To do this:

  git add

any files that have changed. Then to add these changes to the most recent commit,

  git commit --amend

An editor will open. You can edit the commit message if necessary. Then

  git gerrit-push

This updated patch will be shown in the interface as patch set 2, any subsequent commits in the topic should also be updated with their new parents being the updated commits. If you need to update anything but the last commit in a topic you will need to use the approach detailed below.

Making Changes in Uploaded Patches (multiple commits)

If your change requires revision before it is accepted, you will first need to correct the commit in the topic branch. The change-id should have been automatically added to your commits, or you can manually add it after the fact if necessary. If you need to edit the second most recent commit in a topic,

  git rebase -i HEAD~2

An editor will open, see here for details on interactive rebasing. Once you have edited the relevant commit(s) you should be ready to upload the updated patches, assuming your commit messages all have the last line,

  Change-Id:[change id from Gerrit here]

You can then push the corrected commit(s) to Gerrit,,

  git gerrit-push

This updated patch will be shown in the interface as patch set 2, any subsequent commits in the topic should also be updated with their new parents being the updated commits. If you need to edit the third most recent commit simply use HEAD~3, or HEAD~4 to go four commits back.

Gerrit Reviewers