You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Discussion]: add a path tracking highlight UI feature #2342
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.
changed the title [-][discusion]: add a path tracking highlight UI feature[/-][+][Discussion]: add a path tracking highlight UI feature[/+]on May 14, 2026
Activity
love-linger commentedon May 14, 2026
举个最简单的例子,如下图箭头所指的提交 : 989a91dc9c - Bump SharpCompress from 0.41.0 to 0.48.0 (#21339)
它的所属的分支路线为图中的 青色 那条路径。虽然鼠标移动上去我们可以想办法高亮这条路径,但当我们想要找到其父提交时,由于鼠标所 hover 的提交会随着我们鼠标的移动或是页面的滚动而变化,此时高亮的路径也会不断变化。根本无法达到我们想要的始终高亮一条路径的目的。
love-linger commentedon May 14, 2026
推荐一下我自己的做法。
这样远比鼠标hover时加粗相应路线要好的多。一是不会随着鼠标移动而不断变化,二是对比强烈,三是不会有不相关的提交显示在历史记录中造成混乱。
heartacker commentedon May 14, 2026
我理解你的意思。
你说的是一个明确的方式和办法。
而我说的是一个UI 引导和界面感受。
我该如何比喻这种感受呢。
比如播放音乐:他不是一个功能。
但是有人的需要音乐是因为他是一个氛围,
有些人需要音乐只是希望有一个背景音。
而有些人需要音乐说不定就是为了隔离家庭噪音
而有些人播放音乐只是一个习惯。
[-][discusion]: add a path tracking highlight UI feature[/-][+][Discussion]: add a path tracking highlight UI feature[/+]heartacker commentedon May 14, 2026
另外,关于 过滤器,我发现在我的一些场景中。我时常使用的场景,也不是很方便的使用。
所以我之前自己开发了一个SoloMode 的功能。他更好的解决了我的问题,并且已经成为了我的必不可少的功能能。
方法就是基于某一个点找到相关的子项分支,并只显示这些分支。(当然一个一个去点击过滤器也能实现。但是实在是繁琐 )
实现我基于某一个commit 的过滤。
不知道能否这个能否给你一点启发
SOLO.mp4
love-linger commentedon May 14, 2026
正如,我上面说的,在复杂提交情况下它并没办法做到快速定位 child 与 parents(因为高亮的路径会随着鼠标移动一直变化)。同样,如果不是出于该目的,我无法理解加入这一功能的好处是什么。
我不想加的原因同样也是该功能的出发点与实际并不一定相符。更底层些,也就是我认为不应当以commit为单位去filter历史记录,这样完全达不到所谓的 SOLO。同样举个例子:
这是 Avalonia 仓库的一个提交,它被几十个分支+TAG引用,
即使一个提交仅被两三个分支引用(这也很正常,本地+远程这已经两个分支refs了),那我也不认为它可以被称为 SOLO。我认为的 SOLO 应当是仅有一条路径(可以有根系,但没有枝叶)被 filter 出来,这才能称的上是 SOLO。
而
SourceGit目前可以一键清理 filter,所以 SOLO 本身并不需要多么复杂的操作,仅是清除原来的(如果有需要),加入需要 filter 的分支。