╭ changed ───╮ │src/fork.zig│ ╰────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │242 const fork_id = try evt.parseEventId(id); │ │243 + var user_repo = (try evt.openUserRepo(io, allocator, users_dir, forker_id)) orelse return error.InvalidPatchDraft; │ │244 + defer user_repo.deinit(io, allocator); │ │245 var arena = std.heap.ArenaAllocator.init(allocator); │ │246 defer arena.deinit(); │ │220 - const moment = (try evt.userMoment(user_repo)) orelse return error.InvalidPatchDraft; │ │247 + const moment = (try evt.userMoment(&user_repo)) orelse return error.InvalidPatchDraft; │ │248 const record = (try evt.Fork.readById(evt.UserDB, evt.user_repo_opts.hash, moment, &arena, &fork_id)) orelse return error.InvalidPatchDraft;│ │222 - if (!record.removed) try evt.remove(.server, .user, .xit, evt.user_repo_opts, io, allocator, user_repo, &fork_id, .fork, author); │ │249 + if (!record.removed) try evt.remove(.server, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, &fork_id, .fork, author); │ │250 │ │224 - const path = try forkPath(allocator, repo_root_path, id); │ │251 + const path = try forkPath(allocator, users_dir, forker_id, &fork_id); │ │252 defer allocator.free(path); │ │253 try std.Io.Dir.cwd().deleteTree(io, path); │ │254 } │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │255 │ │229 -// the id of the user who created the fork at `fork_path`, or null when it's gone │ │230 -pub fn readForkerId(io: std.Io, allocator: std.mem.Allocator, fork_path: []const u8) !?[evt.event_id_size]u8 { │ │231 - var fork_repo = rp.Repo(.xit, .{}).open(io, allocator, .{ .path = fork_path, .require_repo_root = true }) catch |err| switch (err) {│ │232 - error.RepoNotFound, error.FileNotFound => return null, │ │233 - else => |e| return e, │ │234 - }; │ │235 - defer fork_repo.deinit(io, allocator); │ │236 - var config = try fork_repo.listConfig(io, allocator); │ │237 - defer config.deinit(); │ │238 - const section = config.sections.get("haxy") orelse return error.InvalidPatchDraft; │ │239 - return try evt.parseEventId(section.get("forker") orelse return error.InvalidPatchDraft); │ │240 -} │ │241 - │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯