]> source.dussan.org Git - gitea.git/commitdiff
response 404 for diff/patch of a commit that not exist (#15221) (#15238)
authora1012112796 <1012112796@qq.com>
Fri, 2 Apr 2021 03:30:14 +0000 (11:30 +0800)
committerGitHub <noreply@github.com>
Fri, 2 Apr 2021 03:30:14 +0000 (04:30 +0100)
* response 404 for diff/patch of a commit that not exist

fix #15217

Signed-off-by: a1012112796 <1012112796@qq.com>
* Update routers/repo/commit.go

Co-authored-by: silverwind <me@silverwind.io>
* use ctx.NotFound()

Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: 6543 <6543@obermui.de>
modules/git/diff.go
routers/repo/commit.go

index 6faad1c3c0a380a488358cb40d685ee31e83d8c3..5da53568e5705ba332a6e4fa811751f46e309343 100644 (file)
@@ -47,7 +47,7 @@ func GetRawDiffForFile(repoPath, startCommit, endCommit string, diffType RawDiff
 func GetRepoRawDiffForFile(repo *Repository, startCommit, endCommit string, diffType RawDiffType, file string, writer io.Writer) error {
        commit, err := repo.GetCommit(endCommit)
        if err != nil {
-               return fmt.Errorf("GetCommit: %v", err)
+               return err
        }
        fileArgs := make([]string, 0)
        if len(file) > 0 {
index d9547cc51de625f7074b1ab30560df20123b0aee..11329727e4dccc66c65548af0122d83a596901ed 100644 (file)
@@ -6,6 +6,7 @@
 package repo
 
 import (
+       "errors"
        "path"
        "strings"
 
@@ -341,6 +342,11 @@ func RawDiff(ctx *context.Context) {
                git.RawDiffType(ctx.Params(":ext")),
                ctx.Resp,
        ); err != nil {
+               if git.IsErrNotExist(err) {
+                       ctx.NotFound("GetRawDiff",
+                               errors.New("commit "+ctx.Params(":sha")+" does not exist."))
+                       return
+               }
                ctx.ServerError("GetRawDiff", err)
                return
        }