#git-history #git #git-tool #function #git-function-history

bin+lib git-function-history-gui

git-function-history 的图形界面前端

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 次下载

MIT 许可证

630KB
5K SLoC

crates.io Crates.io

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:这将搜索具有给定目录的任何文件。

如果您选择RelativeAbsolute,则会出现一个文本框,这是您输入文件名的地方。

之后还有一个下拉菜单,用于在执行搜索之前过滤搜索(以节省时间)。

选项包括:

  • None:此选项不会过滤搜索。

  • Commit Hash:此选项将搜索只包含文本框中指定的提交哈希的提交。

  • Date:此选项将搜索只包含文本框中指定日期最近的提交。

Date Range:此选项将搜索只包含两个文本框中指定的日期之间的提交。

如果您选择Commit HashDate,则会出现一个文本框,这是您输入提交哈希或日期的地方;对于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