Gertty是Gerrit代码审查系统的基于控制台的接口。
项目描述
Gertty是Gerrit代码审查系统的基于控制台的接口。
与网络界面相比,主要优点是
工作流程 - 界面设计为支持类似于阅读网络新闻或邮件的工作流程。特别是,它旨在处理大量项目中的大量审查请求。
离线使用 - Gertty将订阅项目中的更改信息同步到本地数据库和本地git仓库。所有审查操作都针对该数据库执行,然后同步回Gerrit。
速度 - 用户操作修改本地缓存的内容,无需等待服务器交互。
便利性 - 因为Gertty将所有更改下载到本地git仓库,所以一条命令就可以指示它将更改检出到该仓库以进行详细检查或测试较大更改。
安装
Debian
Gertty已打包在Debian中,目前可在以下版本中找到
不稳定
测试
稳定
您可以使用以下方式安装它:
apt-get install gertty
Fedora
从Fedora 21开始,Gertty被打包。您可以使用以下方式安装:
dnf install python-gertty
openSUSE
从openSUSE 13.1开始,Gertty提供打包。您可以通过从Open Build Service一键安装。
Gentoo
Gertty在Gentoo的主要仓库中可用。您可以使用以下方式安装:
emerge gertty
Arch Linux
Gertty包在Arch用户仓库中可用。您可以从以下位置获取包:
https://aur.archlinux.org/packages/python2-gertty/
源码
从源码安装时,建议(但不是必需)在virtualenv中安装Gertty。要设置一个,
virtualenv gertty-env source gertty-env/bin/activate
从Cheeseshop安装最新版本
pip install gertty
从git检查点安装
pip install .
Gertty使用基于YAML的配置文件,它会在~/.config/gertty/gertty.yaml中查找。包含几个示例配置文件。您可以在源代码分发的examples/目录或安装后的share/gertty/examples目录中找到它们。
选择一个示例配置文件,将其复制到~/.config/gertty/gertty.yaml,并根据需要进行编辑。搜索CHANGEME以找到需要提供的参数。以下是一些示例配置文件
- minimal-gertty.yaml
仅包含Gertty实际运行所需的参数。
- reference-gertty.yaml
所有支持选项的详尽列表,包括示例。
- opendev-gertty.yaml
为与OpenDev的Gerrit安装一起使用而设计的配置。
- googlesource-gertty.yaml
为与在googlesource.com上运行的Gerrit安装一起使用而设计的配置。
您将需要Gerrit密码,您可以通过转到设置,然后HTTP密码来生成或检索。
Gertty使用本地git仓库来执行大部分工作。这些可以是您在开发项目时使用的相同的git仓库。除非您请求它(即使那样,也仍然有通常的git安全措施来防止意外丢失工作),否则Gertty不会更改工作目录或索引。您需要提供Gertty将用于查找或克隆项目git仓库的目录的名称作为git-root参数。
配置文件旨在支持多个Gerrit实例。第一个默认使用,但可以通过在命令行上提供名称来指定其他实例。
用法
安装Gertty后,您应该可以通过调用gertty来运行它。如果您在virtualenv中安装了它,您可以使用/path/to/venv/bin/gertty来调用它而无需激活virtualenv,您可能希望将其添加到shell别名中。使用gertty --help可以看到可用的命令行选项列表。
一旦Gertty运行,您需要首先订阅一些项目。使用“L”列出所有项目,然后使用“s”订阅您感兴趣的项目。再次按“L”以缩小列表到您已订阅的项目。
一般来说,按F1键会在任何屏幕上显示帮助文本,而ESC会将您带到上一个屏幕。
Gertty在没有网络或在线的情况下都能无缝工作。它执行的所有操作首先记录在本地数据库中(默认为~/.gertty.db),然后传输到Gerrit。如果Gertty由于任何原因无法联系Gerrit,它将继续针对本地数据库操作,一旦重新建立联系,它将处理任何挂起的更改。
屏幕顶部的状态栏显示Gertty必须执行以保持完全更新的未完成任务数量。其中一些任务比其他任务更复杂,并且其中一些最终将创建新的任务(例如,一个任务可能是搜索项目中新的更改,如果有5个新的更改,则会产生5个新的任务)。
如果Gertty处于离线状态,状态栏将显示出来。如果需要,它将重试请求,并自动在离线和在线模式之间切换。
如果您在离线状态下对更改进行审核并投赞成票,而在此期间Gertty尚未上传您的审核,另一个人在同一类别中对该更改投了反对票,Gertty将检测到这种情况,并将更改标记为“挂起”,以便您在上传审核之前重新检查更改和任何新评论。状态栏将提醒您任何挂起的更改,并指导您查看它们的列表(默认为
如果Gertty遇到错误,状态栏也会显示出来。您可能需要检查 ~/.gertty.log 以查看错误是什么。在许多情况下,Gertty在遇到错误后可以继续运行。当您离开当前屏幕时,错误标志将被清除。
要选择文本(例如,复制到剪贴板),在选择文本时按住Shift键。
MacOS
MacOS终端阻止了ctrl+o,这是Gertty默认的搜索键组合。为了解决这个问题,可以在MacOS上使用自定义键盘映射来修改搜索键组合。例如
keymaps: - name: default # MacOS blocks ctrl+o change-search: 'ctrl s' interactive-search: 'ctrl i'
终端集成
如果您使用rxvt-unicode,可以将以下内容添加到.Xresources中,使在您的终端中显示的Gerrit URL(可能在电子邮件或irc客户端中)成为可点击的链接,在Gertty中打开
URxvt.perl-ext: default,matcher URxvt.url-launcher: sensible-browser URxvt.keysym.C-Delete: perl:matcher:last URxvt.keysym.M-Delete: perl:matcher:list URxvt.matcher.button: 1 URxvt.matcher.pattern.1: https:\/\/review.example.org/(\\#\/c\/)?(\\d+)[\w]* URxvt.matcher.launcher.1: gertty --open $0
您可能需要调整模式以匹配您感兴趣的审核网站;根据需要可以添加多个模式。
贡献
有关如何为Gertty做出贡献的信息,请参阅CONTRIBUTING.rst文件的内容。
错误
错误处理在:https://storyboard.openstack.org/#!/project/ttygroup/gertty
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。