╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ───────────────╮ │src/test/event/patch.zig│ ╰────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1032 .timestamp = 5, │ │1033 }); │ │1034 try std.testing.expectEqual(before_publish + 1, try target.core.db.rootCursor().count()); │ │1035 - try pch.publish(repo_opts, io, allocator, users_dir, &admin, &target, .{ │ │1035 + try pch.publish(repo_opts, io, allocator, .{ .users_dir = users_dir }, &admin, &target, .{│ │1036 .id = patch_id_hex, │ │1037 .user_id = user_id, │ │1038 .repo_id = repo_id, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1084 // │ │1085 │ │1086 try evt.Patch.update(.{ .server = .{ .users_dir = users_dir } }, .xit, repo_opts, io, allocator, &target, &patch_id, .{ .status = .closed }, author);│ │1087 - try std.testing.expectError(error.PatchClosed, pch.merge(repo_opts, io, allocator, users_dir, &target, .{ │ │1087 + try std.testing.expectError(error.PatchClosed, pch.merge(repo_opts, io, allocator, .{ .users_dir = users_dir }, &target, .{ │ │1088 .id = patch_id_hex, │ │1089 .revision = merge_revision, │ │1090 .author = author, │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1101 .squash => squash_oid, │ │1102 .source => source_oid, │ │1103 }; │ │1104 - try pch.mergeAndRemoveFork(repo_opts, io, allocator, users_dir, &target, .{ │ │1104 + try pch.mergeAndRemoveFork(repo_opts, io, allocator, .{ .users_dir = users_dir }, &target, .{│ │1105 .id = patch_id_hex, │ │1106 .revision = merge_revision, │ │1107 .author = author, │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1221 var squash_input = input; │ │1222 squash_input.revision = .squash; │ │1223 try std.testing.expectEqualDeep(pch.Mergeability{}, try readMergeability(target, io, allocator, id, patch)); │ │1224 - try std.testing.expectError(error.MergeCheckUnavailable, pch.merge(repo_opts, io, allocator, users_dir, target, input)); │ │1225 - try std.testing.expectError(error.MergeCheckUnavailable, pch.merge(repo_opts, io, allocator, users_dir, target, squash_input)); │ │1224 + try std.testing.expectError(error.MergeCheckUnavailable, pch.merge(repo_opts, io, allocator, .{ .users_dir = users_dir }, target, input)); │ │1225 + try std.testing.expectError(error.MergeCheckUnavailable, pch.merge(repo_opts, io, allocator, .{ .users_dir = users_dir }, target, squash_input));│ │1226 │ │1227 // local edits and server comments leave checks alone │ │1228 var edit = evt.Patch.Update{ .fields = .{ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1244 const events_before = try target.readRef(io, evt.events_ref); │ │1245 try std.testing.expectEqualDeep(pch.Mergeability{ .source = .conflict, .squash = .conflict }, try readMergeability(target, io, allocator, id, patch));│ │1246 try expectMergeabilityShortBytes(try target.core.latestMoment(), id); │ │1247 - try std.testing.expectError(error.MergeConflict, pch.merge(repo_opts, io, allocator, users_dir, target, input)); │ │1248 - try std.testing.expectError(error.MergeConflict, pch.merge(repo_opts, io, allocator, users_dir, target, squash_input)); │ │1247 + try std.testing.expectError(error.MergeConflict, pch.merge(repo_opts, io, allocator, .{ .users_dir = users_dir }, target, input)); │ │1248 + try std.testing.expectError(error.MergeConflict, pch.merge(repo_opts, io, allocator, .{ .users_dir = users_dir }, target, squash_input)); │ │1249 try std.testing.expectEqual(events_before, try target.readRef(io, evt.events_ref)); │ │1250 try std.testing.expectEqual(conflicting_target, (try target.readRef(io, .{ .kind = .head, .name = "master" })).?); │ │1251 try std.testing.expectEqual(null, try target.readRef(io, .{ .kind = .none, .name = "MERGE_HEAD" })); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1279 const log_level = std.testing.log_level; │ │1280 std.testing.log_level = .err; │ │1281 defer std.testing.log_level = log_level; │ │1282 - try std.testing.expectError(error.PatchDataUnavailable, pch.merge(repo_opts, io, allocator, users_dir, target, input)); │ │1282 + try std.testing.expectError(error.PatchDataUnavailable, pch.merge(repo_opts, io, allocator, .{ .users_dir = users_dir }, target, input));│ │1283 } │ │1284 try std.testing.expectEqualDeep(pch.Mergeability{}, try readMergeability(target, io, allocator, id, patch)); │ │1285 try std.testing.expectEqual(events_before, try target.readRef(io, evt.events_ref)); │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ added ──────────────────╮ │src/test/event/notify.zig│ ╰─────────────────────────╯ ╭ changed ───────╮ │src/test/net.zig│ ╰────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │628 try std.testing.expectError(error.NotFound, evt.currentMoment(repo_opts, &target)); │ │629 try std.testing.expectEqual(null, try (try target.core.latestMoment()).getCursor(hash.hashInt(hash_kind, evt.Patch.patch_id_to_mergeability_key)));│ │630 try target.addBranch(io, .{ .name = "feature" }); │ │631 - try pch.publish(repo_opts, io, allocator, users_dir, &admin, &target, .{ │ │631 + try pch.publish(repo_opts, io, allocator, .{ .users_dir = users_dir }, &admin, &target, .{ │ │632 .id = fork_id_hex, │ │633 .user_id = user_id, │ │634 .repo_id = repo_id, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ──╮ │src/try.zig│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │19 const fork = hx.fork; │ │20 const pch = hx.pch; │ │21 const push = hx.push; │ │22 +const notify = hx.notify; │ │23 │ │24 // cook the terminal before a panic/segfault trace is printed, so the trace│ │25 // isn't mangled by raw mode and the alternate buffer │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │292 // template repo and copy that to each repo's location below rather than │ │293 // redoing the expensive commit work for every repo. │ │294 const template_path = try std.Io.Dir.path.join(arena.allocator(), &.{ cwd_path, temp_dir_name, "template" });│ │295 + // the threads admin takes part in: its discussion, its assigned issue and its newest patch │ │296 + var admin_thread_ids: [3][evt.event_id_size]u8 = undefined; │ │297 { │ │298 var template_repo = try rp.Repo(.xit, .{}).init(io, allocator, .{ .path = template_path }); │ │299 defer template_repo.deinit(io, allocator); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯