]> source.dussan.org Git - gitea.git/commitdiff
response 404 for diff/patch of a commit that not exist (#15221)
authora1012112796 <1012112796@qq.com>
Thu, 1 Apr 2021 05:17:14 +0000 (13:17 +0800)
committerGitHub <noreply@github.com>
Thu, 1 Apr 2021 05:17:14 +0000 (08:17 +0300)
* 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>
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 c06d092613d7cc09a826fd3bc78dde988ec0e144..74f1778626122ba6c870844c5f7d08bf4b2cca8b 100644 (file)
@@ -6,6 +6,7 @@
 package repo
 
 import (
+       "errors"
        "path"
        "strings"
 
@@ -388,6 +389,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
        }