╭ changed ───╮ │src/push.zig│ ╰────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │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 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯