8 个不稳定版本 (3 个破坏性更新)
0.4.1 | 2022年9月28日 |
---|---|
0.4.0 | 2022年9月22日 |
0.3.1 | 2022年9月8日 |
0.2.2 | 2022年9月6日 |
0.1.0 | 2022年8月17日 |
#435 in GUI
每月 47 次下载
630KB
5K SLoC
git function history GUI
git function history 库的图形界面前端。
安装
cargo install git-function-history-gui
或者如果你不想使用并行性
cargo install git-function-history-gui --no-default-features
注意
在 Linux 下,你可能需要安装以下软件包
- libclang-dev
- libgtk-3-dev
- libxcb-render0-dev
- libxcb-shape0-dev
- libxcb-xfixes0-dev
- libspeechd-dev
- libxkbcommon-dev
- libssl-dev
在 ubuntu 上,你可以使用以下命令安装它们: sudo apt-get install -y libclang-dev libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
用法
当你运行程序时,你会看到一个窗口,如下所示:(标题栏/装饰根据平台而异)
应用分为三个部分
-
顶部部分显示你在命令栏中输入的任何命令的当前输出,这个部分称为查看窗格。
-
中间部分是构建和运行命令的地方,它被称为命令栏。
-
底部部分显示应用的当前状态和发生的任何错误,右侧有一个按钮可以更改主题。
命令栏
尽管命令栏是中间部分,但我们将从它开始,因为你不能在没有先在命令栏中构建命令的情况下使用顶部部分。
命令栏最左侧是命令选择器,它是一个下拉菜单,允许你选择要构建的命令。
命令有
-
filter
:此命令允许你过滤前一个命令的输出。 -
search
:此命令在 git 仓库中构建一个用于函数的搜索查询。 -
list
:此命令用于列出 git 仓库中每个提交的提交哈希或日期。
命令栏 - 搜索
您首先看到的是一个文本框,这是您输入要搜索的功能名称的地方。
接下来您会看到一个下拉菜单,这是搜索文件选择器,它允许您选择要搜索哪种类型的文件。
选项包括:
-
None
:此选项将在仓库中搜索所有Rust文件(代价非常高)。 -
Relative
:这将搜索所有以文本框中指定的文件名结尾的文件。 -
Absolute
:此选项将搜索文本框中指定的确切文件。 -
Directory
:这将搜索具有给定目录的任何文件。
如果您选择Relative
或Absolute
,则会出现一个文本框,这是您输入文件名的地方。
之后还有一个下拉菜单,用于在执行搜索之前过滤搜索(以节省时间)。
选项包括:
-
None
:此选项不会过滤搜索。 -
Commit Hash
:此选项将搜索只包含文本框中指定的提交哈希的提交。 -
Date
:此选项将搜索只包含文本框中指定日期最近的提交。
Date Range
:此选项将搜索只包含两个文本框中指定的日期之间的提交。
如果您选择Commit Hash
或Date
,则会出现一个文本框,这是您输入提交哈希或日期的地方;对于Date Range
,您将看到两个文本框出现,这些是您输入开始和结束日期的地方。
之后是Go
按钮,这将运行命令,并在命令完成后在查看窗格中显示输出。
命令栏 - 过滤
一旦您运行了一个命令并在查看窗格中得到了一些输出,您可以通过切换第一个下拉菜单到过滤来过滤。
选项因您已经通过例如日期进行了过滤而异,那么您将无法通过日期范围或提交哈希进行过滤。
所有选项如下:
-
none
:此选项将不会过滤您的输出。 -
commit hash
:此选项将只过滤包含文本框中指定的提交哈希的提交。 -
date
:此选项将只过滤包含文本框中指定日期最近的提交。 -
date range
:此选项将只过滤包含两个文本框中指定的日期之间的提交。 -
function in function
:此选项将只过滤包含您在搜索中指定的函数,并且该函数在文本框中有一个父函数指定的提交。 -
function in lines
:此选项将只过滤包含您在搜索中指定的函数,并且在文本框中指定的行中的提交。 -
function in block
:此选项将只过滤包含您在搜索中指定的函数,并且在文本框中指定的代码块中的提交。有效的代码块类型包括extern
impl
trait
-
file absolute
:此选项将只过滤包含与文本框中指定的确切文件路径匹配的提交。 -
文件相对路径
:此选项将输出过滤为任何以文本框中指定的文件名结尾的文件。 -
目录
:此选项将输出过滤为任何具有文本框中指定的目录的文件。
每个选项都有一个文本框,除了None
。
之后是Go
按钮,这将运行命令,并在命令完成后在查看窗格中显示输出。
命令栏 - 列表
列表命令用于列出git仓库中每个提交的提交哈希或日期。
一旦选择列表命令,您将看到一个下拉菜单,这是列表类型选择器,允许您选择要构建的列表类型。
选项包括:
-
日期
:此选项将列出仓库中每个提交的日期。 -
提交哈希
:此选项将列出仓库中每个提交的提交哈希。
之后是Go
按钮,这将运行命令,并在命令完成后在查看窗格中显示输出。
查看窗格
查看窗格是显示您在命令栏中构建的命令输出的位置。
当您第一次打开应用时,查看窗格将显示为或过滤到没有输出,因此您将看到一个消息说没有内容显示 请选择一个命令
。
如果它显示的是仓库的整个历史记录,而不是单个提交,那么查看窗格的顶部将有一个左箭头和右箭头(如果在该方向没有更多历史记录要显示,则按钮将被禁用),这些用于在提交之间导航,同时还有提交哈希和日期。
以下是您可以查看函数在提交中所有实例的位置,以及所有的左右箭头(只有当您可以向前和向后通过文件在提交中时,按钮才会显示),这些用于在包含函数的文件之间导航。
如果您过滤到单个提交,则将在查看窗格的顶部看到提交哈希和日期。
以下是您可以查看函数在提交中所有实例的位置,以及所有的左右箭头(只有当您可以向前和向后通过文件在提交中时,按钮才会显示),这些用于在包含函数的文件之间导航。
如果您列出提交哈希或日期,则将看到仓库中所有提交哈希或日期的列表。
状态栏
状态栏是您可以查看应用状态的位置,它会告诉您应用是否正在加载或是否有错误,或者一切正常。
在右侧有一个按钮可以更改主题。
已知问题
- [Windows] 应用程序在
错误: 进程未能成功退出: `target\debug\git-function-history-gui.exe` (退出代码: 0xc0000374, STATUS_HEAP_CORRUPTION)
时崩溃,这是底层GUI库的问题,这可能会根据您使用的硬件而有所不同。
未来计划
- 添加按文件名(们)过滤的方式
- 添加按更多git内容(作者、电子邮件等)过滤的方式
- 添加按区块名过滤的方式
- 添加一次性搜索多个文件的方式
注意:大多数这些功能需要首先添加到底层库中。
依赖项
~16–33MB
~503K SLoC