╭─────────────╮ │scroll to top│ ╰─────────────╯ ╭ Events.zig ───────────────────────────────────────────────────╮ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╰───────────────────────────────────────────────────────────────╯
╭────╮ ╭ clone ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │http│ ssh │ │ ╰────╯ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯
862 const local_oid = try repo.readRef(io, evt.events_ref); 863 const remote_oid = try repo.readRef(io, remote_ref); 864 if (local_oid == null and remote_oid == null) { 865 try evt.consume(.local, .repo, repo_kind, repo_opts, io, allocator, repo, evt.events_ref, &.{}); 866 return null; 867 } 868 if (remote_oid != null) try evt.mergeEvents(repo_kind, repo_opts, io, allocator, repo, remote_ref); 869 try evt.consume(.local, .repo, repo_kind, repo_opts, io, allocator, repo, evt.events_ref, &.{}); 870 871 const push_refspec = try std.fmt.allocPrint(allocator, "refs/heads/{s}:refs/heads/{s}", .{ evt.events_ref.name, evt.events_ref.name }); 872 defer allocator.free(push_refspec); 873 message.clearRetainingCapacity(); 874 repo.push(io, allocator, remote_name, push_refspec, false, push_transport_opts) catch |err| { 875 if (err == error.ServerReportedError and message.written().len != 0) return try allocator.dupe(u8, message.written()); 876 return err; 877 }; 878 message.clearRetainingCapacity(); 879 repo.fetch(io, allocator, remote_name, fetch_opts) catch |err| { 880 if (err == error.ServerReportedError and message.written().len != 0) return try allocator.dupe(u8, message.written()); 881 return err; 882 }; 883 }, 884 } 885 }, 886 } 887 return null; 888 } 889