summaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
authornemoinho <felix@nehrke.info>2018-08-14 19:49:33 +0200
committertechknowlogick <techknowlogick@users.noreply.github.com>2018-08-14 13:49:33 -0400
commitca112f0a04ea7f4fdb8e6dc1e83e293a598abc50 (patch)
tree419042b6b41dccc68030df68f8112d08f3a6b1c0 /routers/repo
parent03e558c29b55c522c52608065d2b688f8a9a4bc3 (diff)
downloadgitea-ca112f0a04ea7f4fdb8e6dc1e83e293a598abc50.tar.gz
gitea-ca112f0a04ea7f4fdb8e6dc1e83e293a598abc50.zip
Add whitespace handling to PR-comparsion (#4683)
* Add whitespace handling to PR-comparsion In a PR we have to keep an eye on a lot of different things. But sometimes the bare code is the key-thing we want to care about and just don't want to care about fixed indention on some places. Especially if we follow the pathfinder rule we face a lot of these situations because these changes don't break the code in many languages but improve the readability a lot. So this change introduce a fine graned button to adjust the way how the reviewer want to see whitespace-changes within the code. The possibilities reflect the possibilities from git itself except of the `--ignore-blank-lines` flag because that one is also handled by `-b` and is really rare. Signed-off-by: Felix Nehrke <felix@nehrke.info>
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/middlewares.go11
-rw-r--r--routers/repo/pull.go13
2 files changed, 21 insertions, 3 deletions
diff --git a/routers/repo/middlewares.go b/routers/repo/middlewares.go
index 8afad5be64..4dee272edb 100644
--- a/routers/repo/middlewares.go
+++ b/routers/repo/middlewares.go
@@ -50,3 +50,14 @@ func SetDiffViewStyle(ctx *context.Context) {
ctx.ServerError("ErrUpdateDiffViewStyle", err)
}
}
+
+// SetWhitespaceBehavior set whitespace behavior as render variable
+func SetWhitespaceBehavior(ctx *context.Context) {
+ whitespaceBehavior := ctx.Query("whitespace")
+ switch whitespaceBehavior {
+ case "ignore-all", "ignore-eol", "ignore-change":
+ ctx.Data["WhitespaceBehavior"] = whitespaceBehavior
+ default:
+ ctx.Data["WhitespaceBehavior"] = ""
+ }
+}
diff --git a/routers/repo/pull.go b/routers/repo/pull.go
index 6a1aaf314d..57fe33f855 100644
--- a/routers/repo/pull.go
+++ b/routers/repo/pull.go
@@ -390,6 +390,12 @@ func ViewPullFiles(ctx *context.Context) {
}
pull := issue.PullRequest
+ whitespaceFlags := map[string]string{
+ "ignore-all": "-w",
+ "ignore-change": "-b",
+ "ignore-eol": "--ignore-space-at-eol",
+ "": ""}
+
var (
diffRepoPath string
startCommitID string
@@ -455,11 +461,12 @@ func ViewPullFiles(ctx *context.Context) {
ctx.Data["Reponame"] = pull.HeadRepo.Name
}
- diff, err := models.GetDiffRange(diffRepoPath,
+ diff, err := models.GetDiffRangeWithWhitespaceBehavior(diffRepoPath,
startCommitID, endCommitID, setting.Git.MaxGitDiffLines,
- setting.Git.MaxGitDiffLineCharacters, setting.Git.MaxGitDiffFiles)
+ setting.Git.MaxGitDiffLineCharacters, setting.Git.MaxGitDiffFiles,
+ whitespaceFlags[ctx.Data["WhitespaceBehavior"].(string)])
if err != nil {
- ctx.ServerError("GetDiffRange", err)
+ ctx.ServerError("GetDiffRangeWithWhitespaceBehavior", err)
return
}