╭ changed ────╮ │build.zig.zon│ ╰─────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 3 .version = "0.0.0", │ │ 4 .dependencies = .{ │ │ 5 .xit = .{ │ │ 6 - .url = "git+https://github.com/xit-vcs/xit#a594c9e17c97aa3b233e7cbbc9aa666c5f0e3063",│ │ 7 - .hash = "xit-0.0.0-Ub3nDM9TUwErU0debgLgn_KM2Ftq2eWale27GydrEn2J", │ │ 6 + .url = "git+https://github.com/xit-vcs/xit#ca588e800bf3443adbfa4504ab865e407d72f6a2",│ │ 7 + .hash = "xit-0.0.0-Ub3nDMpZUwGoPxMQg2ZaYvAnXCKTAlySUnS-GkbElHav", │ │ 8 }, │ │ 9 }, │ │10 .paths = .{ │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ────╮ │src/diff3.zig│ ╰─────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │27 // split base/ours/theirs into a chunk sequence. chunk texts are allocated in│ │28 // `arena` and hold whole lines joined with newlines. │ │29 pub fn chunks( │ │30 - io: std.Io, │ │30 gpa: std.mem.Allocator, │ │31 arena: *std.heap.ArenaAllocator, │ │32 base: []const u8, │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │35 ) ![]Chunk { │ │36 const aa = arena.allocator(); │ │37 │ │39 - var base_iter = try LineIterator.initFromTestBuffer(io, gpa, base); │ │38 + var base_iter = try LineIterator.initFromTestBuffer(gpa, base); │ │39 defer base_iter.deinit(); │ │41 - var ours_iter = try LineIterator.initFromTestBuffer(io, gpa, ours); │ │40 + var ours_iter = try LineIterator.initFromTestBuffer(gpa, ours); │ │41 defer ours_iter.deinit(); │ │43 - var theirs_iter = try LineIterator.initFromTestBuffer(io, gpa, theirs); │ │42 + var theirs_iter = try LineIterator.initFromTestBuffer(gpa, theirs); │ │43 defer theirs_iter.deinit(); │ │44 │ │45 // invalid utf-8 degrades an iterator to .binary with no lines, which would│ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ──────────╮ │src/event/Issue.zig│ ╰───────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │282 base_description = base.event.description; │ │283 } │ │284 │ │285 - const chunks = try diff3.chunks(io, allocator, arena, base_description, live.event.description, theirs.event.description);│ │285 + const chunks = try diff3.chunks(allocator, arena, base_description, live.event.description, theirs.event.description); │ │286 var resolutions: std.ArrayList([]const u8) = .empty; │ │287 var hunk_index: usize = 0; │ │288 for (chunks) |chunk| { │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ──────────╮ │src/event/Patch.zig│ ╰───────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │388 const base = try evt.read(Record, DB, repo_opts.hash, arena, try DB.HashMap(.read_only).init(base_cursor)); │ │389 base_description = base.event.description; │ │390 } │ │391 - const chunks = try diff3.chunks(io, allocator, arena, base_description, live.event.description, theirs.event.description);│ │391 + const chunks = try diff3.chunks(allocator, arena, base_description, live.event.description, theirs.event.description); │ │392 var resolutions: std.ArrayList([]const u8) = .empty; │ │393 var hunk_index: usize = 0; │ │394 for (chunks) |chunk| { │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───────────╮ │src/ui/Repo/Diff.zig│ ╰────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────╮ │175 .eql => |e| try hunk_iter.line_iter_b.get(e.new_line.num),│ │176 .ins => |e| try hunk_iter.line_iter_b.get(e.new_line.num),│ │177 .del => |e| try hunk_iter.line_iter_a.get(e.old_line.num),│ │178 - }; │ │179 - defer switch (edit) { │ │180 - .eql, .ins => hunk_iter.line_iter_b.free(text), │ │181 - .del => hunk_iter.line_iter_a.free(text), │ │178 }; │ │179 const prefix: u8 = switch (edit) { │ │180 .eql => ' ', │ ╰───────────────────────────────────────────────────────────────────────────╯ ╭ changed ────────────╮ │src/ui/Repo/Files.zig│ ╰─────────────────────╯ ╭───────────────────────────────────────────────────────────────╮ │219 var i = start; │ │220 while (i < end) : (i += 1) { │ │221 const line = try line_iter.get(i); │ │222 - defer line_iter.free(line); │ │222 try lines.append(arena, try arena.dupe(u8, line));│ │223 } │ │224 return .{ │ ╰───────────────────────────────────────────────────────────────╯ ╭ changed ───────────────╮ │src/ui/widget/thread.zig│ ╰────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │92 }; │ │93 } else if (std.mem.eql(u8, field, "description")) { │ │94 conflict.description = .{ │ │95 - .chunks = try diff3.chunks(io, arena.child_allocator, arena, if (base) |b| b.event.description else "", ours.event.description, theirs.event.description),│ │95 + .chunks = try diff3.chunks(arena.child_allocator, arena, if (base) |b| b.event.description else "", ours.event.description, theirs.event.description), │ │96 .ours_author = our_author, │ │97 .theirs_author = their_author, │ │98 }; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯