Repository navigation
Releases: Whwitpohe/linyra
Release list
Linyra 1.6.0
— 2026-10-29
The JetBrains Commit window comes to Linyra's side bar, and Compare Branches learns to tell a
conflict before the merge and to act on what it shows.
Added
- The Commit side bar, as the JetBrains Commit window. The Linyra icon in the Activity Bar
lists every ticked repository's Changes and Unversioned Files in a native tree (with your file
icon theme), a checkbox on each row, then one message with Amend, Sign-off, Author… and Commit
Message History (Ctrl+M), and Commit (Ctrl+Enter) or Commit and Push… (Ctrl+Alt+K). Each
repository with checked files gets one commit of exactly those files (git commit --only);
whatever else is staged stays staged. - Rollback, Remove from VCS and Delete, never one another. Rollback… (Ctrl+Alt+Z) takes
tracked files back to the last commit and only takes an added file out of the index; Remove
from VCS unstages an added file and keeps it; Delete… (Delete) removes new files from the disk.
Add to VCS (Ctrl+Alt+A) and Add to .gitignore for new files, Ctrl+D for a diff, and Group by
Repository and by Directory. - Compare tells a conflict before the merge. Each repository is merged in memory (
git merge-tree, git 2.38 or later) with a scratch object directory, so nothing is written to the
repository. Its row shows a check or how many files would conflict, those files are marked,
Show Only Conflicts lists just them, and Preview Merge Result opens the merged file with its
conflict markers. - Several branch names per side. Tick several in the branch picker; their numbers are the
order (develop, develop-kagainstmaster, main, or each repository's Default branch). Each
repository uses the first it has, and its row says which (develop-k → main). - Act from Compare. Merge ◀ into ▶… goes into the right-hand branch as the boxes say:
git mergewhere it is checked out, and without a checkout, the working tree untouched, where it
is not; from a checklist of the repositories that merge cleanly. Cherry-Pick the selected
commits of a side, and Copy ◀ Commits as Release Notes (Markdown, by repository). All
repositories, or the ones ticked, share one tree; each side has a filter box, and commits show
their date. - More on a commit row: Compare with Working Tree…, Create Patch… (to a file or the
clipboard) and Push All up to Here… (the commits after it stay local).
Changed
- Compare's Repositories look like the Repo List: a box on each repository, and the ticked
ones are what the sides show. - The Repo List colors ↓ (to pull) blue and ↑ (to push) green, as the JetBrains branch
widget colors incoming and outgoing. - Toolbar toggles look pressed while on, and Show Only Conflicts says how many files would
conflict.
Fixed
- Shift-click selects commits in the Log, not their text.
- A change git just read is never erased by VS Code's Git's later "clean". A repository
ticked again, or read while VS Code's Git reported, could lose its uncommitted changes.
Performance
- Smoother scrolling in many-repository workspaces: at a 4× slower CPU on 2,000 rows of 68
repositories, the median frame while the extension reports changes went from 150 to 33 ms. - Fewer git processes: none where VS Code's Git already knows the answer; Expand All on 68
repositories starts 68 instead of 204 (about 3.4 → 1.2 s). - Add to VCS and Remove from VCS show at once: 382 → 117 ms and 968 → 100 ms.
- Compare shows its list before the merge check, and reads a side's files in one round.
Linyra 1.5.0
— 2026-10-28
Linyra becomes a multi-repository Git client in the style of the Git tool window's Log in
JetBrains IDEs: the merged log stays the core, and the everyday repository work is reachable
from the row it applies to, in that row's repository.
Added
- Work across every ticked repository at once. Branches Across Repositories… checks out,
creates or merges one branch name everywhere; Push… lists each repository's outgoing
commits and target in one dialog; Update Project fetches, then merges or rebases each
repository onto its upstream. It never autostashes: a repository with local changes in the
way is skipped and named. - Act on a commit from its row. Cherry-pick, revert, reset the current branch to here,
check out the revision, or create a branch or tag there. On the checked-out commit: Undo
Commit and Edit Commit Message, with a warning when the commit is already pushed.
Cherry-pick and revert apply to every selected commit (cherry-picks oldest first). - Tags and stashes in the Repositories tree. Each repository opens onto Local, Remote,
Tags and Stashes. Tags check out detached, push and delete; stashes show their changes,
apply, pop and drop; Stash Changes… is on the repository row. Tags are also in the
Log's branch filter. - Match Case and Regular Expression in the search box. An invalid expression is searched
as plain text and marked. - View options in the ⋯ menu: Highlight My Commits, Highlight Current Branch and a hash
column. - The JetBrains shortcuts while the Log has focus: Ctrl+T (Update Project), Ctrl+Shift+K
(Push…), Ctrl+Shift+` (Branches Across Repositories).
Changed
- One header row in the Log. The Commits / Uncommitted switch, the filters and the
actions share one row and wrap to two only when the panel is narrow. - One tree for repositories and branches. The separate Branches list is gone; the
Repositories pane has Expand All / Collapse All, and its search also finds branch names. - Uncommitted work has one home: the Log's Uncommitted side. The separate Linyra side
bar view is removed; Show Uncommitted Changes in the Log opens that side. - VS Code's own icons. Every icon in the Log, the Changes view and Compare is the Codicon
VS Code uses for the same action, so one action has one icon. - Fewer duplicate controls. Repeated buttons are removed from the Log, the Changes view
and Compare; the Save as profile row leaves the repository list (it stays in the ⋯ and
right-click menus), and profiles are called 仓库组 in Chinese. - Lighter repository bands, so the color names the repository without a solid block
on every row.
Fixed
- Commits made in the same second keep git's order. A commit could be listed below its
own parent, and a batch cherry-pick then applied the two in reverse. - Compare colors each repository as the Log does. It used to assign colors over only the
repositories it lists, so a repository could change color between the two. - Repository colors no longer change while typing in the Repositories search box.
Performance
- Smoother scrolling: rows are reused, about 9 ms → 1.5 ms per frame.
- Faster deep paging: each repository's batch grows as you page, so reaching 20,000 rows
of a 100,000-commit repository takes 14 git runs instead of 100. - An offer (never automatic) to write a commit-graph when topological order is slow.
Linyra 1.4.4
— 2026-10-28
Fixed
- Remove individual author and branch selections directly. Selected filters now
have their own remove buttons, without reopening the multi-select dropdown. - Fold and unfold file trees with one button. Commit changes, uncommitted files
and both comparison sides show the next available action, with translated labels. - Read comparison controls and repository markers more easily. Branch selectors
stay compact, full names appear on hover, missing Chinese labels are translated,
and eight theme colors improve repository distinction.
Changed
- Linyra can coexist with the original Polylog extension. Commands, views, menu
contexts, revision URIs and private state keys now use independent Linyra identifiers.
Earlier Linyra filter, layout and favorite state migrates inside its own storage.
Custom keybindings must uselinyra.*; reopen old revision editors from Linyra and
adjust custom view docking if needed. Original Polylog settings and storage are untouched. - Project links use the renamed Linyra repository. Source, issue and publishing
documentation now consistently point toWhwitpohe/linyra.
Linyra 1.4.3 — 修复相邻仓库同色
Linyra 1.4.3
修复多仓库日志中相邻仓库色块出现相同颜色、难以区分的问题。
- 在日志实际显示顺序中检查相邻仓库,修正可避免的同色冲突。
- 筛选、翻页和提交图折叠后重新检查;同一仓库在当前日志和左侧仓库列表中保持一致。
- 优先保留已有颜色;仓库集合未变时,重复初始化不会重置已经修正的配色。
- 继续使用编辑器的六种主题颜色,保留现有图标、命令、设置和 Git 操作行为。
安装包:whwitpohe.linyra-1.4.3.vsix,扩展 ID:whwitpohe.linyra。校验值见附件 SHA256SUMS.txt。
同一份安装包用于商店上传;商店处理状态以各平台页面为准。Open VSX 的命名空间所有权申请仍在等待审核,尚不能视为公开可安装:申请 #14842。
验证:312 项单元检查通过;Windows 稳定版 VS Code 1.143.1 和最低支持版 1.85.0 各 92 项集成测试通过,各 1 项平台测试跳过;四种主题的展开、折叠、筛选及重新初始化交互通过;类型、lint(0 错误)、主题、设计和安装包隐私检查通过。
源码:7ee07120f0e1f1af54020a953b85fda37f3388a9。合并后的 main CI 全部检查通过,包括 Linux/macOS/Windows 测试、两版 Linux VS Code 集成测试及打包扫描。
Linyra 1.4.2 — 独立设置与特色演示
1.4.2 已在 Visual Studio Marketplace 正式上线。已从商店独立下载安装,核对 10 份运行资源/图标及双语文档与本 Release 一致;六项设置均为 linyra.*,四段特色 GIF 已在公开页面加载。Open VSX 尚未发布。
Linyra 1.4.2
本版让设置使用 Linyra 自己的名称,并用专门的真实界面录制介绍新增与改进功能。
设置使用自己的命名空间
六项公开设置统一改为:
| 设置 | 默认值 | 用途 |
|---|---|---|
linyra.pageSize |
200 |
每仓库每页提交数 |
linyra.maxConcurrency |
16 |
Git 并发数上限 |
linyra.scanDepth |
2 |
仓库发现深度 |
linyra.excludeRepos |
[] |
排除仓库的模式 |
linyra.profiles |
{} |
仓库选择配置组 |
linyra.blame |
true |
Diff/历史版本的行归属 |
设置页、实际读取、变更监听、配置组保存、排除与撤销、提示文字及双语文档都使用新名称。
按维护者要求,不迁移、不读取、不注册旧 polylog.* 设置,也不自动改写现有配置文件。
如需自定义,请在 linyra.* 下重新设置;未设置时使用上表默认值。
命令、视图和 URI 标识继续兼容,原有快捷键与功能入口保留;图标和主题配色不变。
专门介绍 Linyra 新增与改进
本次不是再放一段通用的跨仓库搜索,而是四段独立 GIF 与对应截图:
- **真实多分支图:**分支/作者搜索多选、日期与拓扑排序、线性历史折叠及展开。
- **提交审阅:**完整正文与尾注、彩色 HEAD/本地/远程/标签、包含分支、说明显隐、真实拖动分隔线和文件搜索。
- **旧提交定位:**粘贴短哈希,在最近 24 小时的筛选下定位三个月前的提交,清空后恢复原筛选。
- **稳定的分支比较:**文件/提交切换、展开提交文件、选择仓库、左右交换及实际拖动左右分隔线。
分支侧栏另外展示本地/远程分支搜索。中英文介绍均说明录制中的动作,区分继承的合并时间线与 Linyra 的改进。
素材来自隔离示例仓库与真实生产界面,不用仿图,不改编辑器颜色;录制工具和图片不进入安装包。
安装
扩展 ID:whwitpohe.linyra。安装本 Release 附件:
code --install-extension .\whwitpohe.linyra-1.4.2.vsix --forceMarketplace 完成更新后也可从商店直接升级。附件 SHA256SUMS.txt 提供安装包校验值。
Open VSX 尚未发布。
验证
308 条单测、lint(0 错误)、类型、主题、设计与源码隐私检查通过。
稳定版 VS Code 1.143.1 与最低支持版 1.85.0 各 92 项集成测试通过,1 项平台测试跳过。
测试工作区保留旧设置,确认它们不生效也不被迁移;配置组、排除与行归属均实际使用新名称。
六项设置注册为 linyra.*,83 个命令及 8 处菜单保留。
发布前还需通过合并后的跨平台 CI、包检查和远程素材验证。
合并后 main CI:全部检查通过。
VSIX SHA-256:4c94329977c0e79c4de09144bdf50b11cef62db948eac2ecf7c2a6d5ee250cc9。
Linyra 1.4.1 — 全新演示与双语指南
1.4.1 已在 Visual Studio Marketplace 公开上线。已从商店独立下载安装,确认版本、10 份运行资源与图标、中英文说明均与本 Release 安装包一致。Open VSX 尚未发布。
Linyra 1.4.1
本版更新商店介绍、英文/中文使用说明和演示素材,让安装前看到的内容与当前 Linyra 一致。
功能保持 Marketplace 1.4.0 的实现,已确认的图标、Git 状态颜色和原有命令入口不变。
更新内容
- 重新录制真实界面。 GIF 展示一次搜索串起四个仓库的相关提交,并切换前端与 API 的原生 Diff。
静态图补齐真实分支轨道、多分支选择、完整提交说明、文件历史及分支比较。 - 调整展示比例。 使用最大化的真实 VS Code 窗口,上方编辑器与下方约 46% 的日志区各有实际内容。
提交说明另配清晰局部图;分支比较左右区域均衡,保留底部状态和完整右边界。 - 重写双语介绍。 明确默认“全部分支/最近 24 小时”,说明作者与分支多选、日期/拓扑排序、
哈希定位、文件搜索、可拖动的说明区域、未提交改动、仓库配置组和原有工具栏操作。 - 更新安装路径。 README 链接到已公开的 Marketplace 扩展;中文说明随安装包提供。
Open VSX 尚未完成发布,使用该注册中心的编辑器可先从 GitHub 下载 VSIX。 - 保留可复现的素材流程。 使用隔离的示例仓库、Git 配置和 VS Code 配置录制;示例含真实分叉、
合并和发布分支差异。开发录制脚本、截图、原始帧与依赖不进入运行时包。
升级与兼容
已安装 Marketplace 版本的用户可正常升级。首次从 Polylog 切换时,请禁用或卸载
lntvan166.polylog-git,只启用 whwitpohe.linyra,再重新加载窗口。
现有 polylog.* 设置、命令和快捷键保持兼容;不同扩展 ID 的私有面板状态分别保存。
旧 v1.4.0 标签、历史 Polylog 包和校验值不替换。本版安装包为
whwitpohe.linyra-1.4.1.vsix,对应新的 v1.4.1 源码标签;SHA-256 见附件 SHA256SUMS.txt。
安装
Marketplace 扩展 ID:whwitpohe.linyra。
code --install-extension whwitpohe.linyra --force手动安装本 Release 的包:
code --install-extension .\whwitpohe.linyra-1.4.1.vsix --force验证范围
本地 308 条单测、lint(0 错误)、类型检查、主题变量、设计规则和隐私扫描通过。
稳定版 VS Code 1.143.1 与最低支持版 1.85.0 各 92 项集成测试通过,1 项平台测试跳过。
核对 83 个命令、6 项设置、8 处菜单注册不变;包内 7 份运行代码及图标与 1.4.0 逐字节一致。
VSIX 包内容与隐私扫描通过,合并后的 main CI 和远程图片链接验证通过后上传商店。
合并后 main CI:全部检查通过。
VSIX SHA-256:b2157fb06eed1ec4ecfdab399e357080e678a241123c135f828f06108c7f35f2。
Polylog 1.4.0
Polylog v1.4.0
本次升级集中解决多仓库查提交时的阅读效率、筛选能力和面板误触,并补齐简体中文和分支操作。
最重要的变化
- 日志和分支比较不再因点击标题右侧空白而整块折叠。 日志/更改与比较三区各自使用稳定的面板;内部折叠由小箭头或明确键盘动作控制。
- 完整提交说明有独立区域。 正文保留段落和共同作者信息,作者/邮箱/时间/哈希独立展示,分支引用和包含此提交的分支可直接查看。区域可拖动、折叠并记住大小。
- 默认全分支,分支和作者均可搜索多选。 多分支结果取并集,共同提交不重复;清空分支选择恢复全部本地/远程分支。
- 真实多轨道提交图与两种排序。 支持按提交日期或拓扑方式查看历史,保留真实分叉/合并关系,避免不同仓库误连,并可折叠长线性历史段。
- 新增哈希定位和更改文件内搜索。 在顶部粘贴完整或至少七位哈希即可定位旧提交;在文件区输入名称、路径或重命名前路径即可缩小当前更改列表。
- 简体中文与分支侧栏。 命令、菜单和提示随 VS Code 语言切换,分支树提供搜索、收藏、查看历史和明确仓库范围的 Git 操作。
旧功能保留情况
日志工具栏保留仓库分组、分支比较、未提交侧栏、获取/拉取、落后仓库筛选及仓库配置。更改区保留全部文件切换、多选、展开折叠、复制和独立打开。分支比较保留“文件/提交”、分支选择、左右交换、刷新、收藏、最近使用、相同内容过滤、加载更多及原有右键菜单。
所有 Diff 仍使用 VS Code 原生编辑器,交换或选择分支后继续跟随正确左右版本;重命名路径和 Git 状态颜色继续保留。
如何使用
- 搜索框继续按提交标题和正文匹配普通关键词;输入完整或至少七位十六进制哈希进入定位模式。需要更短的前缀时使用
sha:abcd。 - 哈希定位在所选仓库内临时忽略其他筛选,界面会提示;清空搜索立即恢复之前的条件。
- 更改文件搜索支持名称、完整路径和旧路径;Enter 打开首个匹配 Diff,Escape 清空。在“全部文件”模式下搜索的是该提交的更改文件。
- 日志和比较的布局按钮可切换左右/上下排列,分隔线可拖动,各区可独立显示、隐藏和滚动。
- 分支比较顶部“文件/提交”切换仍在;相同内容过滤及每侧的展开/折叠按钮也保留。
升级注意
- 日期默认仍是最近 24 小时,分支默认范围改为全部本地/远程分支。已有明确分支选择会保留。
- 原生小视图的旧位置由面板内布局替代,首次升级可重新拖动到习惯的大小。
- 读取历史、搜索和折叠不写仓库。检出、推送、合并、删除等 Git 写操作仅在明确选择对应命令时执行,并继续接受必要检查和确认。
- 沿用原扩展 ID,升级后保留设置。本版本通过本仓库的 GitHub Release 提供 VSIX,未向 Marketplace 或 Open VSX 发布。
验证
- 完整单测通过,类型检查、lint(无错误)、主题变量、设计规则和隐私扫描通过。
- Windows 上分别运行稳定版 VS Code 1.143.1 和最低支持版 1.85.0:各 92 项集成测试通过,1 项不适用于 Windows 的测试跳过。
- 回归覆盖原工具栏入口、文件/提交模式、交换与刷新后的 Diff、未提交操作、分支操作和设置恢复。
安装
下载本 Release 附件 polylog-git-1.4.0.vsix,在 VS Code 中执行“扩展:从 VSIX 安装”,或运行:
code --install-extension .\polylog-git-1.4.0.vsix --force安装完成后执行“开发者:重新加载窗口”。附件校验值见 SHA256SUMS.txt。