[Bug] 未忽略的 Rust 构建产物和工作树填满 Git 变更列表并导致 macOS 界面卡顿
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Start by checking the repository’s .gitignore rules for rust/lithe-core/target/ and .worktrees/, then trace the Rust Core git status --porcelain=v2 --untracked-files=all call and the macOS Git Changes panel’s grouping and loading path. The report describes the current full scan and view traversal; determine where large untracked directories are enumerated and how staging, selection, and diff viewing behave. Done means build artifacts and local worktrees are ignored by default, and large directories load incrementally while preserving those behaviors.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Platform / 平台
macOS
Area / 模块
Git
Lithe version / Lithe 版本
源码构建;无独立发布版本号;用于定位的工作区提交为 33f43040160acd9f0c0c2eb254ca12d9b6d7e7ce(仅作构建定位参考)。
Priority / 优先级
P0 / 立即处理:已严重影响使用体验,核心流程受阻或无法正常使用
OS and architecture / 操作系统与架构
macOS 27.2(Build 26B5112a),Apple Silicon,arm64,物理机,24 GB 内存。
Environment / 环境信息
- 本地 Git 工作区,项目为 Lithe-IDEA。
- Git 2.56.0。
- rustc 1.96.0,Cargo 1.96.0。
- 工作区包含 9 个本地 linked worktree。
rust/lithe-core/target约 2.5 GB,包含 5,273 个未跟踪文件。.worktrees约 83 GB。- 当前
.gitignore已忽略rust/target/,但没有忽略rust/lithe-core/target/和.worktrees/。 - JDK、Maven、JDTLS、WebView2、Tauri 与本问题无关。
Steps to reproduce / 复现步骤
- 打开一个包含 Rust Core 源码的本地 Lithe-IDEA 工作区。
- 执行 Rust/Cargo 构建或测试,使
rust/lithe-core/target产生大量构建文件。 - 工作区中保留本地 linked worktree 目录,例如
.worktrees。 - 打开 Lithe 的 Git Changes / 提交面板。
- 观察变更列表的数量、加载过程和界面帧率。
Expected behavior / 预期行为
- 仓库默认配置应忽略明确的构建产物、缓存和本地工作树目录,例如
rust/lithe-core/target/和.worktrees/。 - 对于无法通过忽略规则排除的大型未跟踪目录,Git 变更面板不应在初次打开时枚举并创建全部文件对象。
- 大目录应先显示目录级节点和数量,初始只加载根目录及前两层;用户展开目录后,再按需加载下一层内容。
- 初始加载应有明确上限或分批加载机制,同时保留正确的暂存、取消暂存、选择和差异查看行为。
Actual behavior / 实际行为
截图中 Git 变更面板显示 5,325 个变更,底部状态显示 Lithe 内存约 2.61 GB、帧率约 2 FPS,界面基本无法正常操作。
本地诊断显示:
rust/lithe-core/target贡献了 5,273 个构建文件。.worktrees贡献了 9 个工作树入口。- 在截图对应状态附近,
git status --untracked-files=all统计到约 5,282 个未跟踪项。
初步源码检查发现:
- Rust Core 使用
git status --porcelain=v2 --untracked-files=all,会一次性取得所有未跟踪文件。 - macOS 变更面板随后对完整变更数组进行分组,并在展开变更列表时遍历所有文件。
- 现有
LazyVStack只能延迟部分视图布局,无法阻止全量状态扫描、分组和对象保存。
Logs or diagnostic output / 日志或诊断输出
$ git --version
git version 2.56.0
$ rustc --version
rustc 1.96.0 (ac68faa20 2026-05-25)
$ cargo --version
cargo 1.96.0 (30a34c682 2026-05-25)
$ git ls-files --others --exclude-standard rust/lithe-core/target | wc -l
5273
$ du -sh rust/lithe-core/target .worktrees
2.5G rust/lithe-core/target
83G .worktrees
$ git check-ignore -v rust/lithe-core/target/.rustc_info.json .worktrees/agent-history-incremental/.git
# 无输出,说明这些路径当前未被忽略
Screenshots or recordings / 截图或录屏
提交表单时上传工作区中的脱敏文件:.issue-evidence-git-changes.webp。
Checklist / 提交前检查
- I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复报告。
- I removed secrets and personal data from the report. / 我已从报告中移除敏感信息和个人数据。
- Ngôn ngữ chính
- TypeScript
- Star
- 1.8k
- Fork
- 151
- Merge trung bình
- 12 giờ 26 phút
- Pull request đã merge (30 ngày)
- 339
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của 1lck/Lithe-IDEA
-
area:editor bug P0 platform:macos review: low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
1lck/Lithe-IDEA#1118 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Feature] Lithe 启动阶段展示启动动画,避免冷启动期间窗口空白无反馈Có thể đã có người làm @Reance195 đã nhận 1 ngày trước. Đang mởarea:ux enhancement issue-form:feature P2 platform:cross-platform review: low
1lck/Lithe-IDEA#1391 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area:run bug issue-form:bug P1 platform:windows review: low
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
1lck/Lithe-IDEA#1389 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] Windows 打开 3.76 MB / 6.8 万行 Markdown 文档切换到预览后,界面帧率跌到 1–3 fps 并持续数分钟卡死Có thể đã có người làm @milestone-17 đã nhận 1 ngày trước. Đang mởarea:editor bug claimed issue-form:bug P1 platform:windows review: medium
1lck/Lithe-IDEA#1380 · 3 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement issue-form:feature P2 platform:cross-platform review: high
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
1lck/Lithe-IDEA#1373 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của 1lck/Lithe-IDEA
Issue tương tự
-
Add: Pbs KidsĐang mởcheck:passed streams:add
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Maintainer thường phản hồi trong vòng 2 ngày
-
maintanance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
inmanta/web-console#7583 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
deltachat/deltachat-desktop#6881 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
[Bug Report][3.13.7] VDataTable with select-strategy="single" shows select-all checkbox in mobile modeCó thể đã có người làm @lazerg đã nhận hôm nay. Đang mởS: triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
phivk/rubiks-lab#33 ·
Maintainer thường phản hồi trong vòng 1 ngày