2.5 KiB
2.5 KiB
作成
LocalTicketBackend によって作成されました。
Intake summary
Marked ready by yoi ticket state.
State changed
Marked ready by yoi ticket state.
State changed
Ticket を yoi ticket が queued にしました。
State changed
State changed to inprogress.
Implementation report
workdir materialization の dirty source check を selector == "HEAD" の場合だけ実行するようにした。
変更点:
LocalGitWorktreeMaterializer::materializeで selector を先に確定。- selector が
HEADの時だけgit status --porcelainによる dirty source rejection を行う。 - 明示 branch selector では source worktree が dirty でも
git rev-parse <selector>^{commit}で commit 解決し、detached worktree を作る。 - branch selector + dirty source の回帰テストを追加し、未コミットファイルが materialized worktree に入らないことを確認。
検証:
cargo test -p worker-runtime --features ws-server,fs-store branch_selector_allows_dirty_source_materialization --quietcargo test -p worker-runtime --features ws-server,fs-store dirty_source_is_rejected_by_materialization --quietcargo test -p worker-runtime --features ws-server,fs-store local_git_repo_materializes_detached_worktree_under_runtime_root --quietcargo fmt --checkgit diff --check
State changed
Ticket を closed にしました。
完了
Workdir dirty source rejection is now scoped to the HEAD selector. Explicit branch selectors can materialize detached workdirs from their resolved commit even when the source worktree has uncommitted changes.