diff --git a/appview/pages/templates/repo/compare/compare.html b/appview/pages/templates/repo/compare/compare.html
--- a/appview/pages/templates/repo/compare/compare.html
+++ b/appview/pages/templates/repo/compare/compare.html
@@ -17,7 +17,7 @@
{{ end }}
{{ define "mainLayout" }}
-
+
{{ block "contentLayout" . }}
{{ block "content" . }}{{ end }}
{{ end }}
diff --git a/appview/repo/compare.go b/appview/repo/compare.go
--- a/appview/repo/compare.go
+++ b/appview/repo/compare.go
@@ -116,17 +116,21 @@ diffOpts.Split = true
}
// if user is navigating to one of
- // /compare/{base}/{head}
// /compare/{base}...{head}
- base := chi.URLParam(r, "base")
- head := chi.URLParam(r, "head")
- if base == "" && head == "" {
- rest := chi.URLParam(r, "*") // master...feature/xyz
- parts := strings.SplitN(rest, "...", 2)
- if len(parts) == 2 {
- base = parts[0]
- head = parts[1]
- }
+ // /compare/{base}/{head}
+ var base, head string
+ rest := chi.URLParam(r, "*")
+
+ var parts []string
+ if strings.Contains(rest, "...") {
+ parts = strings.SplitN(rest, "...", 2)
+ } else if strings.Contains(rest, "/") {
+ parts = strings.SplitN(rest, "/", 2)
+ }
+
+ if len(parts) == 2 {
+ base = parts[0]
+ head = parts[1]
}
base, _ = url.PathUnescape(base)
diff --git a/appview/repo/router.go b/appview/repo/router.go
--- a/appview/repo/router.go
+++ b/appview/repo/router.go
@@ -61,7 +61,6 @@ // /compare/{ref1}...{ref2}
// for example:
// /compare/master...some/feature
// /compare/master...example.com:another/feature <- this is a fork
- r.Get("/{base}/{head}", rp.Compare)
r.Get("/*", rp.Compare)
})