diff --git a/libs/service/git/commit.rs b/libs/service/git/commit.rs index 56d8ac3..386c16c 100644 --- a/libs/service/git/commit.rs +++ b/libs/service/git/commit.rs @@ -1031,6 +1031,15 @@ impl AppService { ) -> Result, AppError> { let repo = self.utils_find_repo(namespace, repo_name, ctx).await?; + // If refname is None and HEAD is detached, fall back to default_branch + let refname = refname.or_else(|| { + if repo.default_branch.is_empty() { + None + } else { + Some(repo.default_branch.clone()) + } + }); + let entries = git_spawn!(repo, domain -> { domain.reflog_entries(refname.as_deref()) })?; @@ -1064,7 +1073,13 @@ impl AppService { } let repo = self.utils_find_repo(namespace, repo_name, ctx).await?; - let rev_clone = query.rev.clone(); + let rev_clone = query.rev.clone().or_else(|| { + if repo.default_branch.is_empty() { + None + } else { + Some(format!("refs/heads/{}", repo.default_branch)) + } + }); let limit = query.limit.unwrap_or(0); let graph = git_spawn!(repo, domain -> { @@ -1112,7 +1127,13 @@ impl AppService { } let repo = self.utils_find_repo(namespace, repo_name, ctx).await?; - let rev_clone = query.rev.clone(); + let rev_clone = query.rev.clone().or_else(|| { + if repo.default_branch.is_empty() { + None + } else { + Some(format!("refs/heads/{}", repo.default_branch)) + } + }); let limit = query.limit.unwrap_or(0); let (graph, refs_grouped) = git_spawn!(repo, domain -> {