Skip to content

[Discussion]: add a path tracking highlight UI feature #2342

Description

@heartacker

from #2336

我实现了一个path跟踪的高亮特性。他在鼠标移动的时候,可以快速查找相关的childs 和 parents。并高亮出来。
非常方便使用

btw: 这一次重构了graph的解析。在 merge 和 fork 之间实现path分离。更好的展示这个特性。


I have implemented a high-performance path tracking highlighting feature. When the mouse hovers, it can quickly locate the relevant childs and parents and highlight them.
It is very practical.
btw: The parsing of the graph has been refactored this time. Path separation is implemented between merge and fork to better demonstrate this feature.

spotlight.mp4

Activity

  1. love-linger commented on May 14, 2026

    @love-linger
    Collaborator

    举个最简单的例子,如下图箭头所指的提交 : 989a91dc9c - Bump SharpCompress from 0.41.0 to 0.48.0 (#21339)

    Image

    它的所属的分支路线为图中的 青色 那条路径。虽然鼠标移动上去我们可以想办法高亮这条路径,但当我们想要找到其父提交时,由于鼠标所 hover 的提交会随着我们鼠标的移动或是页面的滚动而变化,此时高亮的路径也会不断变化。根本无法达到我们想要的始终高亮一条路径的目的。

  2. love-linger commented on May 14, 2026

    @love-linger
    Collaborator

    推荐一下我自己的做法。

    • 如果我只需要查看某一分支的历史记录,直接使用 filter 功能,仅显示我需要的分支
    • 如果我需要查看当前分支与另外一个分支提交路线的区别,我会将两个分支都加入 filter,并启用【高亮当前分支】,这样就会有如下效果
    • 一般我不会有同时比对三个以上分支的需求。
    Image

    这样远比鼠标hover时加粗相应路线要好的多。一是不会随着鼠标移动而不断变化,二是对比强烈,三是不会有不相关的提交显示在历史记录中造成混乱。

  3. heartacker commented on May 14, 2026

    @heartacker
    ContributorAuthor

    我理解你的意思。

    你说的是一个明确的方式和办法。
    而我说的是一个UI 引导和界面感受。
    我该如何比喻这种感受呢。

    比如播放音乐:他不是一个功能。
    但是有人的需要音乐是因为他是一个氛围,
    有些人需要音乐只是希望有一个背景音。
    而有些人需要音乐说不定就是为了隔离家庭噪音
    而有些人播放音乐只是一个习惯。

  4. changed the title [-][discusion]: add a path tracking highlight UI feature[/-] [+][Discussion]: add a path tracking highlight UI feature[/+] on May 14, 2026
  5. heartacker commented on May 14, 2026

    @heartacker
    ContributorAuthor

    另外,关于 过滤器,我发现在我的一些场景中。我时常使用的场景,也不是很方便的使用。
    所以我之前自己开发了一个SoloMode 的功能。他更好的解决了我的问题,并且已经成为了我的必不可少的功能能。

    方法就是基于某一个点找到相关的子项分支,并只显示这些分支。(当然一个一个去点击过滤器也能实现。但是实在是繁琐 )

    实现我基于某一个commit 的过滤。

    不知道能否这个能否给你一点启发

    SOLO-和当前主题无关

    SOLO.mp4
  6. love-linger commented on May 14, 2026

    @love-linger
    Collaborator

    他在鼠标移动的时候,可以快速查找相关的childs 和 parents。并高亮出来。

    正如,我上面说的,在复杂提交情况下它并没办法做到快速定位 child 与 parents(因为高亮的路径会随着鼠标移动一直变化)。同样,如果不是出于该目的,我无法理解加入这一功能的好处是什么。

    SoloMode

    我不想加的原因同样也是该功能的出发点与实际并不一定相符。更底层些,也就是我认为不应当以commit为单位去filter历史记录,这样完全达不到所谓的 SOLO。同样举个例子:

    这是 Avalonia 仓库的一个提交,它被几十个分支+TAG引用,

    Image

    即使一个提交仅被两三个分支引用(这也很正常,本地+远程这已经两个分支refs了),那我也不认为它可以被称为 SOLO。我认为的 SOLO 应当是仅有一条路径(可以有根系,但没有枝叶)被 filter 出来,这才能称的上是 SOLO。

    而SourceGit 目前可以一键清理 filter,所以 SOLO 本身并不需要多么复杂的操作,仅是清除原来的(如果有需要),加入需要 filter 的分支。

  7. Repository owner locked and limited conversation to collaborators on May 14, 2026
  8. converted this issue into a discussion #2344 on May 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions