Compare commits

..

No commits in common. "aec833f991fbccf93b95c9daba3836922ad1f634" and "a6ebf32529650236fa2879e88b52880335c291d7" have entirely different histories.

View file

@ -463,19 +463,12 @@ module Make (Pclock : Mirage_clock.PCLOCK) = struct
let last_modified t key = let last_modified t key =
let open Lwt.Infix in let open Lwt.Infix in
match t.committed, t.head with find_blob t key >>=
| None, None -> Option.fold
Lwt.return (Error (`Not_found key)) ~none:(Lwt.return (Error (`Not_found key)))
| Some _, _ -> ~some:(fun head ->
Lwt.return_ok Store.read_exn t.store head >|= function
(Option.fold | Commit c ->
~none:Ptime.epoch
~some:Fun.id (Ptime.of_float_s (Int64.to_float (now ()))))
| None, Some head ->
(* See https://github.com/ocaml/ocaml/issues/9301 why we have the
intermediate [r] value. *)
let+ r = Store.read_exn t.store head in
let[@warning "-8"] Commit c = r in
let author = Git_commit.author c in let author = Git_commit.author c in
let secs, tz_offset = author.Git.User.date in let secs, tz_offset = author.Git.User.date in
let secs = let secs =
@ -493,6 +486,10 @@ module Make (Pclock : Mirage_clock.PCLOCK) = struct
~some:Fun.id (Ptime.of_float_s (Int64.to_float secs)) ~some:Fun.id (Ptime.of_float_s (Int64.to_float secs))
in in
Ok ts Ok ts
| _ ->
Ok (Option.fold
~none:Ptime.epoch
~some:Fun.id (Ptime.of_float_s (Int64.to_float (now ())))))
let digest t key = let digest t key =
let open Lwt.Infix in let open Lwt.Infix in