aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authora1012112796 <1012112796@qq.com>2021-04-01 13:17:14 +0800
committerGitHub <noreply@github.com>2021-04-01 08:17:14 +0300
commit007fb00c0ec613b89e2a272f224b60c174fc78bd (patch)
tree6d830d6680da1a255a0c02697282e6f698b4b2dd
parentf07b137e040dc0531ce646763a5c874547d1ac7f (diff)
downloadgitea-007fb00c0ec613b89e2a272f224b60c174fc78bd.tar.gz
gitea-007fb00c0ec613b89e2a272f224b60c174fc78bd.zip
response 404 for diff/patch of a commit that not exist (#15221)
* 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>
-rw-r--r--modules/git/diff.go2
-rw-r--r--routers/repo/commit.go6
2 files changed, 7 insertions, 1 deletions
diff --git a/modules/git/diff.go b/modules/git/diff.go
index 6faad1c3c0..5da53568e5 100644
--- a/modules/git/diff.go
+++ b/modules/git/diff.go
@@ -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 {
diff --git a/routers/repo/commit.go b/routers/repo/commit.go
index c06d092613..74f1778626 100644
--- a/routers/repo/commit.go
+++ b/routers/repo/commit.go
@@ -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
}