╭ changed ────╮ │build.zig.zon│ ╰─────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 3 .version = "0.0.0", │ │ 4 .dependencies = .{ │ │ 5 .xit = .{ │ │ 6 - .url = "git+https://github.com/xit-vcs/xit#f5b3d82ba63b4ca83d3f54c5d04a67c7d8dff927",│ │ 7 - .hash = "xit-0.0.0-Ub3nDFMUVAFAfwp8pq3gSIFeCjdZLNzQZ83t7dzZftB0", │ │ 6 + .url = "git+https://github.com/xit-vcs/xit#6e9fadd5ab588713e55d2e04de356f6268c31c11",│ │ 7 + .hash = "xit-0.0.0-Ub3nDGIeVAHjs7mnOQ7nhvZth93VPbIENFyaiJgtBtjE", │ │ 8 }, │ │ 9 }, │ │10 .paths = .{ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───╮ │src/push.zig│ ╰────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │28 defer config.deinit(); │ │29 try config.add(state, io, .{ .name = "merge.algorithm", .value = "patch" }); │ │30 │ │31 - var iter = try obj.ObjectIterator(.xit, repo_opts).init(state.readOnly(), io, allocator, .{ .kind = .commit });│ │32 - defer iter.deinit(); │ │31 + // every ref is a tip │ │32 + var tips: std.ArrayList([hash.hexLen(repo_opts.hash)]u8) = .empty; │ │33 + defer tips.deinit(allocator); │ │34 var refs = try rf.AllRefIterator(.xit, repo_opts).init(state.readOnly(), allocator); │ │35 defer refs.deinit(); │ │36 while (try refs.next()) |ref| { │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │36 - if (try rf.readRecur(.xit, repo_opts, state.readOnly(), io, .{ .ref = ref })) |oid| { │ │37 - try iter.include(&oid); │ │38 - } │ │37 + if (try rf.readRecur(.xit, repo_opts, state.readOnly(), io, .{ .ref = ref })) |oid| try tips.append(allocator, oid);│ │38 } │ │39 var sideband = progress.Sideband{ .response = response, .writer = writer }; │ │41 - try xit.patch.writePatches(repo_opts, state, io, allocator, &iter, &sideband); │ │40 + try xit.patch.writePatches(repo_opts, state, io, allocator, tips.items, &sideband); │ │41 } │ │42 │ │43 // the action a received push records │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯