╭ changed ────╮ │build.zig.zon│ ╰─────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 3 .version = "0.0.0", │ │ 4 .dependencies = .{ │ │ 5 .xit = .{ │ │ 6 - .url = "git+https://github.com/xit-vcs/xit#d8cd02bb1abc67fa749dabf78b2c5027657e3b60",│ │ 7 - .hash = "xit-0.0.0-Ub3nDJ20UwERGdBbdwrtZG9mMq5qfxQ2PBrdB1GhY8_Q", │ │ 6 + .url = "git+https://github.com/xit-vcs/xit#5e4e683bdb5606a8ea10e037437c0d6c9624cf8a",│ │ 7 + .hash = "xit-0.0.0-Ub3nDOwEVAGjvCCeQEntxdFIOAERTuVNrYXYDCzYv2Ve", │ │ 8 }, │ │ 9 }, │ │10 .paths = .{ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───╮ │src/push.zig│ ╰────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────╮ │316 var revision_id_maybe: ?[evt.event_id_size]u8 = null; │ │317 var response = xit.net_server_receive_pack.Response.init(allocator); │ │318 defer response.deinit(); │ │319 + var progress = PushProgress{ .response = &response, .writer = writer }; │ │320 │ │321 // execute a transaction that receives the push and materializes its revision│ │322 const result = blk: { │ ╰──────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │339 timestamp: u64, │ │340 newest: ?evt.PatchRev.WithId, │ │341 revision_id_maybe: *?[evt.event_id_size]u8, │ │342 + progress: *PushProgress, │ │343 │ │344 pub fn run(ctx: @This(), cursor: *DB.Cursor(.read_write)) !void {│ │345 // receive the branch update │ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │346 var moment = try DB.HashMap(.read_write).init(cursor.*); │ │347 const state = State(.read_write){ .core = ctx.core, .extra = .{ .moment = &moment } }; │ │346 - try xit.net_server_receive_pack.run(.xit, repo_opts, state, ctx.io, ctx.allocator, ctx.reader, ctx.writer, .{ .allowed_ref = "refs/heads/" ++ fork.ref.name, .deferred_response = ctx.response }); │ │348 + try xit.net_server_receive_pack.run(.xit, repo_opts, state, ctx.io, ctx.allocator, ctx.reader, ctx.writer, .{ .allowed_ref = "refs/heads/" ++ fork.ref.name, .deferred_response = ctx.response }, ctx.progress);│ │349 try writeReceivedPatches(repo_opts, state, ctx.io, ctx.allocator, ctx.response, ctx.writer); │ │350 │ │351 // copy the target history needed to preserve the merge base │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────╮ │432 .timestamp = timestamp, │ │433 .newest = newest, │ │434 .revision_id_maybe = &revision_id_maybe,│ │435 + .progress = &progress, │ │436 }); │ │437 }; │ │438 result catch |err| { │ ╰─────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │446 }; │ │447 if (!published) return response.finish(writer, null); │ │448 │ │446 - var progress = PushProgress{ .response = &response, .writer = writer, .label = "Updating patches" };│ │449 + progress.run(io, .{ .text = "Updating patches" }) catch {}; │ │450 progress.run(io, .{ .start = .{ .kind = .writing_patch, .estimated_total_items = 1 } }) catch {}; │ │451 │ │452 // best-effort update the published patch so it has the new revision │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯