Skip to content

Latest commit

 

History

History
156 lines (121 loc) · 6.35 KB

File metadata and controls

156 lines (121 loc) · 6.35 KB

TODO (Active Only)

最終整理日: 2026-05-17 現バージョン: v0.41.0 allowlist: 910 テスト known-breakage パッチ: 2 (scope 除外 1 + 大型未実装 1 のみ残) CI SHIM_CMDS: 108 コマンド e2e: 43/43 全パス t3404 (rebase -i): 129/132 (97.7%)

P0: Delegate → Native 残り

log (特殊フラグ)

  • --parents — 各コミットの親 OID を表示
  • --boundary — boundary コミットのマーク
  • --full-history / --simplify-merges — マージ簡略化制御
  • --ancestry-path — 2点間の ancestry パス
  • --show-signature — GPG 署名表示
  • --stdin — stdin からリビジョン読み取り

GPG 署名

  • rebase -S / --gpg-sign — rebase 中のコミット署名
  • merge -S / --gpg-sign — merge コミット署名
  • show --show-signature — 署名表示

その他

  • blame textconv ドライバー対応
  • clone file:// + --depth/--filter (shallow)
  • fetch --depth / --unshallow (shallow fetch)
  • stash push -p — interactive hunk 選択
  • rev-list --cherry-pick / --cherry-mark

P1: LFS

  • Phase 1: Read-Only — pointer 解決、batch download (v0.40.0)
  • Phase 1 セキュリティ — SHA-256 検証、SSRF 防止 (v0.40.1)
  • Phase 2: Clean filter — git add で pointer 化
  • Phase 3: Push — upload to LFS server
  • Phase 4: bit-relay LFS 転送

P1.5: Hub / GitHub sync

  • Cross-repo issue references (owner/repo#id)
  • GitHub sync pull (issues, PRs, comments)
  • GitHub sync push — org リポジトリ対応
  • --force-remote フラグ

P2: パフォーマンス

  • Pack bitmap 読み込み (t5310/t5326/t5333)
  • Commit-graph 活用 — log/rev-list 高速化

P2.5: Allowlist 拡大

  • 現在: 910
  • t0008-ignores.sh
  • t1400-update-ref.sh — per-test timeout を max(weight×3, 120s) に変更して enroll
  • t1901-repo-structure.sh
  • t3305-notes-fanout.sh
  • t4124-apply-ws-rule.sh — known-breakage patch 不要
  • t5300-pack-object.sh
  • t5310-pack-bitmaps.sh
  • t5326-multi-pack-bitmaps.sh
  • t5333-pseudo-merge-bitmaps.sh
  • t9210-scalar.sh / t9211-scalar-clone.sh — bit scalar 実装あり、無パッチで pass
  • t9300-fast-import.sh — known-breakage patch 不要 (t9301-9306 と同列)
  • 残候補 in-scope: なし (未収録 117 件は svn/cvs/p4/perl/send-email/svk 系 = スコープ外)

P2.6: Known-breakage パッチ精査 — audit pass 完了

  • 削除済: 18 → 2
    • case 1a (#54): t5610-clone-detached / t9350-fast-export / t5505-remote / t5801-remote-helpers
    • case 1b (#56): t1410-reflog / t2405-worktree-submodule / t3600-rm
    • case 1c (#58): t5572-pull-submodule
    • virtual gap SIGTERM (#60): t7502-commit-porcelain / t7600-merge — bit の index 書込は .git/index.lock を作らない
    • virtual gap promisor (#63): t0411-clone-from-partial / t5616-partial-clone / t7703-repack-geometric — pack-objects gap は実体無し
    • virtual gap cat-file (#64): t1006-cat-file %(rest) — upstream の動的 test_rest 分岐に任せて OK
    • virtual gap pack-object (#66): t5300-pack-object — unpack/verify/strict/prefetch の 8 件、 削除しても全部 pass
    • virtual gap completion (#67): t9902-completion — contrib/completion 修正は削除しても他に影響なし、テストは upstream test_expect_failure で吸収
  • 残 2 パッチ (どちらも audit で削除不可):
    • t5540-http-push-webdav — WebDAV 意図的非対応の skip_all 宣言、 機能追加無しでは削除不可
    • t7527-builtin-fsmonitor — fsmonitor--daemon 未実装。 daemon 実装が特大 (4000-6000 LOC)

P3: 将来タスク

  • WASM target カバレッジ拡大
    • diff3 wbtest (23/23 pass) / repo materialize wbtest (2/2 pass) — wasm CI 入り
    • grep pattern + search wbtest (28/28 pass) — wasm CI 入り
    • fingerprint / x-workspace の wbtest は async/process 依存で wasm 不可能、native のみ維持
  • Moonix integration

完了済み (v0.38.0 → v0.41.0)

展開

v0.41.0 (rebase 完全 native 化 + LFS + log 強化)

LFS Read-Only

  • Pointer 解決、batch download、checkout 統合
  • SHA-256 検証、SSRF 防止、サイズ検証、パス走査防止

Interactive Rebase (全コマンド native)

  • pick, reword, edit, squash, fixup, drop, exec, break, label, reset, merge
  • --autosquash, --exec/-x, --autostash, --keep-empty, --edit-todo
  • --show-current-patch, --update-refs, --root, --strategy/-X, --rebase-merges
  • Editor injection: lib 層は (String) -> String? コールバック、cmd 層は GIT_SEQUENCE_EDITOR
  • t3404: 129/132 (97.7%)

Log 強化

  • --graph, --stat, --name-only, --name-status
  • --topo-order, --date-order, --author-date-order
  • pathspec フィルタ (log -- path)

その他

  • core.hooksPath 対応
  • Cross-repo issue references + GitHub sync (read-only)
  • npm バージョン同期 (0.40.0)

v0.38.0

  • SHA-256 オブジェクトハッシュ基盤 (Phase 1-3)
  • Commit-graph 読込・生成
  • CI 安定化

実装済みコマンド (108 SHIM_CMDS)

init add diff diff-files diff-index ls-files tag branch checkout switch
commit log show reflog reset update-ref update-index status merge rebase
clone push fetch pull mv notes stash rm submodule worktree config show-ref
for-each-ref rev-parse symbolic-ref cherry-pick remote cat-file hash-object
ls-tree write-tree commit-tree receive-pack upload-pack pack-objects
index-pack format-patch describe gc clean sparse-checkout restore blame
grep shell rev-list bisect diff-tree read-tree fsck am apply bundle cherry
revert prune pack-refs mktree shortlog verify-pack unpack-objects
maintenance range-diff show-branch repack multi-pack-index pack-redundant
send-pack request-pull merge-base var stripspace ls-remote fmt-merge-msg
patch-id count-objects name-rev update-server-info check-ref-format mktag
interpret-trailers column merge-tree merge-file fast-import fast-export
verify-tag fetch-pack difftool rerere mailinfo archive check-attr
check-ignore show-index get-tar-commit-id verify-commit annotate

スコープ外

  • filter-branch — 非推奨 (git-filter-repo 推奨)
  • Perl Git.pm (t9700), svn/cvs/p4 (t9*)
  • bit mcp — 削除済 (v0.42.x)。必要になれば再実装