Browse Source

pkg/markup: allow match SHA1 length 7-40 (#3321)

Unknwon 5 years ago
parent
commit
844d69143f
4 changed files with 11 additions and 16 deletions
  1. 1 1
      gogs.go
  2. 2 3
      pkg/markup/markup.go
  3. 7 11
      routes/repo/commit.go
  4. 1 1
      templates/.VERSION

+ 1 - 1
gogs.go

@@ -16,7 +16,7 @@ import (
 	"github.com/gogs/gogs/pkg/setting"
 )
 
-const APP_VER = "0.11.61.0816"
+const APP_VER = "0.11.62.0817"
 
 func init() {
 	setting.AppVer = APP_VER

+ 2 - 3
pkg/markup/markup.go

@@ -53,9 +53,8 @@ var (
 	CrossReferenceIssueNumericPattern = regexp.MustCompile(`( |^)[0-9a-zA-Z-_\.]+/[0-9a-zA-Z-_\.]+#[0-9]+\b`)
 
 	// Sha1CurrentPattern matches string that represents a commit SHA, e.g. d8a994ef243349f321568f9e36d5c3f444b99cae
-	// FIXME: this pattern matches pure numbers as well, right now we do a hack to check in RenderSha1CurrentPattern
-	// by converting string to a number.
-	Sha1CurrentPattern = regexp.MustCompile(`\b[0-9a-f]{40}\b`)
+	// FIXME: this pattern matches pure numbers as well, right now we do a hack to check in RenderSha1CurrentPattern by converting string to a number.
+	Sha1CurrentPattern = regexp.MustCompile(`\b[0-9a-f]{7,40}\b`)
 )
 
 // FindAllMentions matches mention patterns in given content

+ 7 - 11
routes/repo/commit.go

@@ -121,8 +121,8 @@ func FileHistory(c *context.Context) {
 }
 
 func Diff(c *context.Context) {
-	c.Data["PageIsDiff"] = true
-	c.Data["RequireHighlightJS"] = true
+	c.PageIs("Diff")
+	c.RequireHighlightJS()
 
 	userName := c.Repo.Owner.Name
 	repoName := c.Repo.Repository.Name
@@ -130,11 +130,7 @@ func Diff(c *context.Context) {
 
 	commit, err := c.Repo.GitRepo.GetCommit(commitID)
 	if err != nil {
-		if git.IsErrNotExist(err) {
-			c.Handle(404, "Repo.GitRepo.GetCommit", err)
-		} else {
-			c.Handle(500, "Repo.GitRepo.GetCommit", err)
-		}
+		c.NotFoundOrServerError("get commit by ID", git.IsErrNotExist, err)
 		return
 	}
 
@@ -142,7 +138,7 @@ func Diff(c *context.Context) {
 		commitID, setting.Git.MaxGitDiffLines,
 		setting.Git.MaxGitDiffLineCharacters, setting.Git.MaxGitDiffFiles)
 	if err != nil {
-		c.NotFoundOrServerError("GetDiffCommit", git.IsErrNotExist, err)
+		c.NotFoundOrServerError("get diff commit", git.IsErrNotExist, err)
 		return
 	}
 
@@ -151,7 +147,7 @@ func Diff(c *context.Context) {
 		sha, err := commit.ParentID(i)
 		parents[i] = sha.String()
 		if err != nil {
-			c.Handle(404, "repo.Diff", err)
+			c.NotFound()
 			return
 		}
 	}
@@ -161,12 +157,12 @@ func Diff(c *context.Context) {
 		return
 	}
 
+	c.Title(commit.Summary() + " · " + tool.ShortSHA1(commitID))
 	c.Data["CommitID"] = commitID
 	c.Data["IsSplitStyle"] = c.Query("style") == "split"
 	c.Data["Username"] = userName
 	c.Data["Reponame"] = repoName
 	c.Data["IsImageFile"] = commit.IsImageFile
-	c.Data["Title"] = commit.Summary() + " · " + tool.ShortSHA1(commitID)
 	c.Data["Commit"] = commit
 	c.Data["Author"] = models.ValidateCommitWithEmail(commit)
 	c.Data["Diff"] = diff
@@ -177,7 +173,7 @@ func Diff(c *context.Context) {
 		c.Data["BeforeSourcePath"] = setting.AppSubURL + "/" + path.Join(userName, repoName, "src", parents[0])
 	}
 	c.Data["RawPath"] = setting.AppSubURL + "/" + path.Join(userName, repoName, "raw", commitID)
-	c.HTML(200, DIFF)
+	c.Success(DIFF)
 }
 
 func RawDiff(c *context.Context) {

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.11.61.0816
+0.11.62.0817