Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .aoci/baseline.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"version": 1,
"created_at": "2026-08-07T17:44:36Z",
"updated_at": "2026-09-25T10:48:53Z",
"updated_at": "2026-09-26T03:39:41Z",
"files": {
".gitattributes": {
"role": "index",
Expand Down Expand Up @@ -1557,10 +1557,10 @@
},
"internal/cli/index_entries_apply_atomic_test.go": {
"role": "observe",
"sha256": "374b9e938ae55b0a0159a843379ea390e61e113ac575141f8e6341bceac0d367",
"size": 16393,
"normalized_sha256": "374b9e938ae55b0a0159a843379ea390e61e113ac575141f8e6341bceac0d367",
"format_sha256": "374b9e938ae55b0a0159a843379ea390e61e113ac575141f8e6341bceac0d367",
"sha256": "e39bf6a626f094bd937ad7f903af0acd0a82aea3b94d49da8548396013da7729",
"size": 16584,
"normalized_sha256": "e39bf6a626f094bd937ad7f903af0acd0a82aea3b94d49da8548396013da7729",
"format_sha256": "e39bf6a626f094bd937ad7f903af0acd0a82aea3b94d49da8548396013da7729",
"format_kind": "gofmt"
},
"internal/cli/index_entries_audit_test.go": {
Expand Down
18 changes: 14 additions & 4 deletions internal/cli/index_entries_apply_atomic_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ const (
manualAtomicNewB = "b.go[XUT5T]: F:原子新职责乙 | R:a.go | A:- | S:-"
)

// blockBaselineBackupReplacement以非空目录占据备份目标。
// POSIX rename不能覆盖目录,Windows回退删除也不能移除非空目录,
// 因而两端都会在真实AtomicWrite备份阶段稳定失败。
// blockBaselineBackupReplacement occupies the backup target with a nonempty
// directory. Keep it open so Windows cannot rename it aside during AtomicWrite's
// fallback; POSIX already rejects replacing the directory with a file.
func blockBaselineBackupReplacement(t *testing.T, root string) func() {
t.Helper()
backupPath := filepath.Join(root, ".aoci", "baseline.json.bak")
Expand All @@ -49,19 +49,29 @@ func blockBaselineBackupReplacement(t *testing.T, root string) func() {
if err := os.WriteFile(blockerPath, []byte("block\n"), 0o644); err != nil {
t.Fatal(err)
}
backup, err := os.Open(backupPath)
if err != nil {
t.Fatal(err)
}
blocked := true
return func() {
unblock := func() {
t.Helper()
if !blocked {
return
}
blocked = false
if err := backup.Close(); err != nil {
t.Fatal(err)
}
if err := os.Remove(blockerPath); err != nil {
t.Fatal(err)
}
if err := os.Remove(backupPath); err != nil {
t.Fatal(err)
}
}
t.Cleanup(unblock)
return unblock
}

// buildManualAtomicEntriesRepo构造不启用Host-Agent Plan防线的Endpoint草稿仓。
Expand Down
Loading