diff options
author | zeripath <art27@cantab.net> | 2019-11-10 08:42:51 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-10 08:42:51 +0000 |
commit | 8eeb2877d5803d0501815466d651a519b32bbd3a (patch) | |
tree | ffd1abc59788797e0d99169b8a88655f51d4128f /routers/api | |
parent | 31416a5f4e70d4972c351cde170b59d13fcbb77f (diff) | |
download | gitea-8eeb2877d5803d0501815466d651a519b32bbd3a.tar.gz gitea-8eeb2877d5803d0501815466d651a519b32bbd3a.zip |
Adjust error reporting from merge failures and use LC_ALL=C for git (#8548)
There are two major components to this PR:
* This PR handles merge and rebase failures from merging a little more nicely with Flash errors rather a 500.
* All git commands are run in the LC_ALL="C" environment to ensure that error messages are in English. This DefaultLocale is defined in a way that if necessary (due to platform weirdness) it can be overridden at build time using LDFLAGS="-X "code.gitea.io/gitea/modules/git.DefaultLocale=C"" with C changed for the locale as necessary.
Diffstat (limited to 'routers/api')
-rw-r--r-- | routers/api/v1/repo/pull.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go index 6d86105a15..6af1ba1b04 100644 --- a/routers/api/v1/repo/pull.go +++ b/routers/api/v1/repo/pull.go @@ -626,6 +626,18 @@ func MergePullRequest(ctx *context.APIContext, form auth.MergePullRequestForm) { if models.IsErrInvalidMergeStyle(err) { ctx.Status(405) return + } else if models.IsErrMergeConflicts(err) { + conflictError := err.(models.ErrMergeConflicts) + ctx.JSON(http.StatusConflict, conflictError) + } else if models.IsErrRebaseConflicts(err) { + conflictError := err.(models.ErrRebaseConflicts) + ctx.JSON(http.StatusConflict, conflictError) + } else if models.IsErrMergeUnrelatedHistories(err) { + conflictError := err.(models.ErrMergeUnrelatedHistories) + ctx.JSON(http.StatusConflict, conflictError) + } else if models.IsErrMergePushOutOfDate(err) { + ctx.Status(http.StatusConflict) + return } ctx.Error(500, "Merge", err) return |