10ba6179cb
There are 3 classes that represent an inline comment: - CommentInfo represents an inline comment in the REST API - PatchLineComment represents an inline comment in ReviewDb - RevisionNote.Comment represents an inline comment in NoteDb To support robot comments CommentInfo and RevisionNote.Comment must be extended so that the additional fields that are specific for robot comments can be supported. PatchLineComment should not be touched since robot comments will only be supported with NoteDb, but not with ReviewDb. At the moment PatchLineComment is also used to represent inline comments in all middle layers and in all utility classes that deal with inline comments. This means if NoteDb is used, inline comments come in over REST as CommentInfo, then they are converted into PatchLineComment and for storing them in NoteDb they are converted to RevisionNote.Comment. The intermediate transformation to PatchLineComment is bad for implementing robot comments, since this class should stay unchanged. To fix this RevisionNote.Comment is extracted into an own Comment class and then Comment is used instead of PatchLineComment in the middle layer. This means when NoteDb is used, inline comments are only converted once, from CommentInfo to Comment. Both types will have extensions for robot comments (by subtypes). For storing inline comments in ReviewDb inline comments are converted from CommentInfo to Comment to PatchLineComment. This is better than having the double-conversion for NoteDb, because ReviewDb will be removed in favour of NoteDb. This means when ReviewDb is removed PatchLineComment can then easily be deleted, as it's no longer used all over the codebase, but only in the ReviewDb layer. Change-Id: I53481e8231e04aeca5b924e409e97b0f1d53f516 Signed-off-by: Edwin Kempin <ekempin@google.com> |
||
---|---|---|
.settings | ||
bucklets | ||
contrib | ||
Documentation | ||
gerrit-acceptance-framework | ||
gerrit-acceptance-tests | ||
gerrit-antlr | ||
gerrit-cache-h2 | ||
gerrit-common | ||
gerrit-extension-api | ||
gerrit-gpg | ||
gerrit-gwtdebug | ||
gerrit-gwtexpui | ||
gerrit-gwtui | ||
gerrit-gwtui-common | ||
gerrit-httpd | ||
gerrit-launcher | ||
gerrit-lucene | ||
gerrit-main | ||
gerrit-oauth | ||
gerrit-openid | ||
gerrit-patch-commonsnet | ||
gerrit-patch-jgit | ||
gerrit-pgm | ||
gerrit-plugin-api | ||
gerrit-plugin-archetype | ||
gerrit-plugin-gwt-archetype | ||
gerrit-plugin-gwtui | ||
gerrit-plugin-js-archetype | ||
gerrit-prettify | ||
gerrit-reviewdb | ||
gerrit-server | ||
gerrit-sshd | ||
gerrit-util-cli | ||
gerrit-util-http | ||
gerrit-util-ssl | ||
gerrit-war | ||
lib | ||
plugins | ||
polygerrit-ui | ||
ReleaseNotes | ||
tools | ||
website/releases | ||
.bazelrc | ||
.buckconfig | ||
.buckversion | ||
.editorconfig | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
.pydevproject | ||
.watchmanconfig | ||
BUCK | ||
BUILD | ||
COPYING | ||
INSTALL | ||
README.md | ||
SUBMITTING_PATCHES | ||
VERSION | ||
WORKSPACE |
Gerrit Code Review
Gerrit is a code review and project management tool for Git based projects.
Objective
Gerrit makes reviews easier by showing changes in a side-by-side display, and allowing inline comments to be added by any reviewer.
Gerrit simplifies Git based project maintainership by permitting any authorized user to submit changes to the master Git repository, rather than requiring all approved changes to be merged in by hand by the project maintainer.
Documentation
For information about how to install and use Gerrit, refer to the documentation.
Source
Our canonical Git repository is located on googlesource.com. There is a mirror of the repository on Github.
Reporting bugs
Please report bugs on the issue tracker.
Contribute
Gerrit is the work of hundreds of contributors. We appreciate your help!
Please read the contribution guidelines.
Note that we do not accept Pull Requests via the Github mirror.
Getting in contact
The IRC channel on freenode is #gerrit. An archive is available at: echelog.com.
The Developer Mailing list is repo-discuss on Google Groups.
License
Gerrit is provided under the Apache License 2.0.
Build
Install Buck and run the following:
git clone --recursive https://gerrit.googlesource.com/gerrit
cd gerrit && buck build release
Install binary packages (Deb/Rpm)
The instruction how to configure GerritForge/BinTray repositories is here
On Debian/Ubuntu run:
apt-get update & apt-get install gerrit=<version>-<release>
NOTE: release is a counter that starts with 1 and indicates the number of packages that have been released with the same version of the software.
On CentOS/RedHat run:
yum clean all && yum install gerrit-<version>[-<release>]
NOTE: release is optional. Last released package of the version is installed if the release number is omitted.