git-appraise

用于 Git 仓库的分布式代码审查系统。(Distributed code review system for Git repos)

  • 所有者: google/git-appraise
  • 平台: Linux, Mac, Windows
  • 許可證: Apache License 2.0
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Distributed Code Review For Git

Build Status

This repo contains a command line tool for performing code reviews on git
repositories.

Overview

This tool is a distributed code review system for git repos.

By "distributed", we mean that code reviews are stored inside of the repository
as git objects. Every developer on your team has their own copy of the review
history that they can push or pull. When pulling, updates from the remote
repo are automatically merged by the tool.

This design removes the need for any sort of server-side setup. As a result,
this tool can work with any git hosting provider, and the only setup required
is installing the client on your workstation.

Installation

Assuming you have the Go tools installed, run
the following command:

go get github.com/google/git-appraise/git-appraise

Then, either make sure that ${GOPATH}/bin is in your PATH, or explicitly add the
"appraise" git alias by running the following command.

git config --global alias.appraise '!'"${GOPATH}/bin/git-appraise"

Windows:

git config --global alias.appraise "!%GOPATH%/bin/git-appraise.exe"

Requirements

This tool expects to run in an environment with the following attributes:

  1. The git command line tool is installed, and included in the PATH.
  2. The tool is run from within a git repo.
  3. The git command line tool is configured with the credentials it needs to
    push to and pull from the remote repos.

Usage

Requesting a code review:

git appraise request

Pushing code reviews to a remote:

git appraise push [<remote>]

Pulling code reviews from a remote:

git appraise pull [<remote>]

Listing open code reviews:

git appraise list

Showing the status of the current review, including comments:

git appraise show

Showing the diff of a review:

git appraise show --diff [--diff-opts "<diff-options>"] [<review-hash>]

Commenting on a review:

git appraise comment -m "<message>" [-f <file> [-l <line>]] [<review-hash>]

Accepting the changes in a review:

git appraise accept [-m "<message>"] [<review-hash>]

Submitting the current review:

git appraise submit [--merge, --rebase]

A more detailed getting started doc is available here.

Metadata

The code review data is stored in git-notes,
using the formats described below. Each item stored is written as a single
line of JSON, and is written with at most one such item per line. This allows
the git notes to be automatically merged using the "cat_sort_uniq" strategy.

Since these notes are not in a human-friendly form, all of the refs used to
track them start with the prefix "refs/notes/devtools". This helps make it
clear that these are meant to be read and written by automated tools.

When a field named "v" appears in one of these notes, it is used to denote
the version of the metadata format being used. If that field is missing, then
it defaults to the value 0, which corresponds to this initial version of the
formats.

Code Review Requests

Code review requests are stored in the "refs/notes/devtools/reviews" ref, and
annotate the first revision in a review. They must conform to the
request schema.

If there are multiple requests for a single commit, then they are sorted by
timestamp and the final request is treated as the current one. This sorting
should be done in a stable manner, so that if there are multiple requests
with the same timestamp, then the last such request in the note is treated
as the current one.

This design allows a user to update a review request by re-running the
git appraise request command.

Continuous Integration Status

Continuous integration build and test results are stored in the
"refs/notes/devtools/ci" ref, and annotate the revision that was built and
tested. They must conform to the ci schema.

Robot Comments

Robot comments are comments generated by static analysis tools. These are
stored in the "refs/notes/devtools/analyses" ref, and annotate the revision.
They must conform to the analysis schema.

Review Comments

Review comments are comments that were written by a person rather than by a
machine. These are stored in the "refs/notes/devtools/discuss" ref, and
annotate the first revision in the review. They must conform to the
comment schema.

Integrations

Libraries

Graphical User Interfaces

Plugins

Mirrors to other systems

Contributing

Please see the CONTRIBUTING file for information on contributing to Git Appraise.

主要指標

概覽
名稱與所有者google/git-appraise
主編程語言Go
編程語言Go (語言數: 1)
平台Linux, Mac, Windows
許可證Apache License 2.0
所有者活动
創建於2015-08-21 21:30:23
推送於2023-08-12 01:06:27
最后一次提交2023-08-11 18:06:05
發布數7
最新版本名稱v0.7 (發布於 )
第一版名稱v0.1 (發布於 2015-11-06 11:12:21)
用户参与
星數5.2k
關注者數123
派生數145
提交數306
已啟用問題?
問題數52
打開的問題數26
拉請求數51
打開的拉請求數8
關閉的拉請求數6
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?