From 4946275b48bfc92ce4b420e36c6cf48694776bbc Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sat, 1 Mar 2025 19:19:30 +0100 Subject: Start work on Git "un"helper functions. Worse is better. I'll revisit the OCaml Git package once I'm more comfortable with OCaml overall. --- lib/git_helpers.ml | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'lib/git_helpers.ml') diff --git a/lib/git_helpers.ml b/lib/git_helpers.ml index d973a88..0626d02 100644 --- a/lib/git_helpers.ml +++ b/lib/git_helpers.ml @@ -1,20 +1,11 @@ open Lwt.Infix -open Git_unix let get_head_commit_hash repo_path = - let root = Fpath.v repo_path in - - (* 1. Open the Git repository *) - let%lwt repo = - Store.v root >>= function - | Ok repo -> Lwt.return repo - | Error _ -> Lwt.fail_with "Could not open the Git repository." - in - - (* 2. Resolve HEAD to get the latest commit hash *) - let%lwt commit_hash = - Git_unix.Store.Ref.resolve repo Git.Reference.master >>= function - | Ok hash -> Lwt.return hash - | Error _ -> Lwt.fail_with "Failed to resolve HEAD" - in - Lwt.return @@ (commit_hash |> Digestif.SHA1.to_hex) + let full_path = Filename.concat Config.git_directory repo_path in + let%lwt store_result = Git_unix.Store.v @@ Fpath.v full_path in + match store_result with + | Error _ -> Lwt.return_error "Could not open the Git repository." + | Ok store -> ( + Git_unix.Store.Ref.resolve store Git.Reference.head >|= function + | Error _ -> Error ("Failed to resolve HEAD for repo " ^ repo_path) + | Ok hash -> Ok (Git_unix.Store.Hash.to_hex hash)) -- cgit v1.2.3