diff options
author | Runxi Yu <me@runxiyu.org> | 2025-03-05 10:34:24 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-03-05 10:34:24 +0800 |
commit | d0e00c2879ddad6f7238b52f9720475d4068d759 (patch) | |
tree | 9167a5a0bbed1a05207de8955123612e62691980 /http_handle_repo_contrib_one.go | |
parent | render_readme: Rename (diff) | |
download | forge-d0e00c2879ddad6f7238b52f9720475d4068d759.tar.gz forge-d0e00c2879ddad6f7238b52f9720475d4068d759.tar.zst forge-d0e00c2879ddad6f7238b52f9720475d4068d759.zip |
repo/contrib/one: Diff against merge base
Diffstat (limited to 'http_handle_repo_contrib_one.go')
-rw-r--r-- | http_handle_repo_contrib_one.go | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/http_handle_repo_contrib_one.go b/http_handle_repo_contrib_one.go index 9810d5d..7ed0d6f 100644 --- a/http_handle_repo_contrib_one.go +++ b/http_handle_repo_contrib_one.go @@ -68,7 +68,15 @@ func handle_repo_contrib_one(w http.ResponseWriter, r *http.Request, params map[ } params["destination_commit"] = destination_commit - patch, err := destination_commit.Patch(source_commit) + merge_bases, err := source_commit.MergeBase(destination_commit) + if err != nil { + http.Error(w, "Error getting merge base: "+err.Error(), http.StatusInternalServerError) + return + } + merge_base := merge_bases[0] + params["merge_base"] = merge_base + + patch, err := merge_base.Patch(source_commit) if err != nil { http.Error(w, "Error getting patch: "+err.Error(), http.StatusInternalServerError) return |