╭ changed ────╮ │src/event.zig│ ╰─────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────╮ │147 ref: rf.Ref, │ │148 events: []const EventWithId, │ │149 ) !void { │ │150 + var resolved_remote_name: ?[]u8 = null; │ │151 + defer if (resolved_remote_name) |name| allocator.free(name); │ │152 + │ │153 // a branch that only exists on a remote is consumed from its remote-tracking│ │154 // ref, while commits go on the local branch, continuing from the remote tip │ │155 // so a cloned repo's local branch stays connected to the server history │ ╰──────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ │161 const remote_ref: rf.Ref = .{ .kind = .{ .remote = remote_name }, .name = ref.name };│ │162 if (try repo.readRef(io, remote_ref)) |oid| { │ │163 if (events.len > 0) break :blk .{ ref, .{oid} }; │ │161 - break :blk .{ remote_ref, null }; │ │164 + const name = try allocator.dupe(u8, remote_name); │ │165 + resolved_remote_name = name; │ │166 + break :blk .{ rf.Ref{ .kind = .{ .remote = name }, .name = ref.name }, null }; │ │167 } │ │168 } │ │169 if (events.len > 0) break :blk .{ ref, null }; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯