]> source.dussan.org Git - gitea.git/commitdiff
models/action.go: mirror fix on #892
authorUnknwon <joe2010xtmf@163.com>
Sat, 7 Feb 2015 01:34:49 +0000 (20:34 -0500)
committerUnknwon <joe2010xtmf@163.com>
Sat, 7 Feb 2015 01:34:49 +0000 (20:34 -0500)
- modules/base/markdown.go: fix issue link issue
- routers/repo/view.go: remove useless code

models/action.go
modules/base/markdown.go
routers/repo/view.go

index 318a5f6ad4b2ebcf1177925a44eeb2652255ebf6..ed90ad900e2d0470c1e1cb9e46136a743542847d 100644 (file)
@@ -41,14 +41,14 @@ var (
 
 var (
        // Same as Github. See https://help.github.com/articles/closing-issues-via-commit-messages
-       IssueCloseKeywords    = []string{"close", "closes", "closed", "fix", "fixes", "fixed", "resolve", "resolves", "resolved"}
-       IssueCloseKeywordsPat *regexp.Regexp
+       IssueCloseKeywords        = []string{"close", "closes", "closed", "fix", "fixes", "fixed", "resolve", "resolves", "resolved"}
+       IssueCloseKeywordsPat     *regexp.Regexp
        IssueReferenceKeywordsPat *regexp.Regexp
 )
 
 func init() {
        IssueCloseKeywordsPat = regexp.MustCompile(fmt.Sprintf(`(?i)(?:%s) \S+`, strings.Join(IssueCloseKeywords, "|")))
-       IssueReferenceKeywordsPat = regexp.MustCompile(fmt.Sprintf(`(?i)(?:) \S+`))
+       IssueReferenceKeywordsPat = regexp.MustCompile(`(?i)(?:)(^| )\S+`)
 }
 
 // Action represents user operation type and other information to repository.,
@@ -113,12 +113,14 @@ func (a Action) GetIssueInfos() []string {
 func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, commits []*base.PushCommit) error {
        for _, c := range commits {
                references := IssueReferenceKeywordsPat.FindAllString(c.Message, -1)
-               
+
+               // FIXME: should not be a reference when it comes with action.
+               // e.g. fixes #1 will not have duplicated reference message.
                for _, ref := range references {
                        ref := ref[strings.IndexByte(ref, byte(' '))+1:]
                        ref = strings.TrimRightFunc(ref, func(c rune) bool {
-                                       return !unicode.IsDigit(c)
-                               })
+                               return !unicode.IsDigit(c)
+                       })
 
                        if len(ref) == 0 {
                                continue
@@ -128,7 +130,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
                        if ref[0] == '#' {
                                ref = fmt.Sprintf("%s/%s%s", repoUserName, repoName, ref)
                        } else if strings.Contains(ref, "/") == false {
-                               // We don't support User#ID syntax yet
+                               // FIXME: We don't support User#ID syntax yet
                                // return ErrNotImplemented
 
                                continue
@@ -153,8 +155,8 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
                for _, ref := range closes {
                        ref := ref[strings.IndexByte(ref, byte(' '))+1:]
                        ref = strings.TrimRightFunc(ref, func(c rune) bool {
-                                       return !unicode.IsDigit(c)
-                               })
+                               return !unicode.IsDigit(c)
+                       })
 
                        if len(ref) == 0 {
                                continue
@@ -199,7 +201,7 @@ func updateIssuesCommit(userId, repoId int64, repoUserName, repoName string, com
                                }
                        }
                }
-               
+
        }
 
        return nil
index 41220986182dcafc3c29d9c810a7226b8b144f55..b5f397dce0bbed641a25282cdb32d7cfed54538f 100644 (file)
@@ -177,8 +177,8 @@ func RenderSha1CurrentPattern(rawBytes []byte, urlPrefix string) []byte {
 func RenderIssueIndexPattern(rawBytes []byte, urlPrefix string) []byte {
        ms := issueIndexPattern.FindAll(rawBytes, -1)
        for _, m := range ms {
-               rawBytes = bytes.Replace(rawBytes, m, []byte(fmt.Sprintf(
-                       `<a href="%s/issues/%s">%s</a>`, urlPrefix, m[1:], m)), -1)
+               rawBytes = bytes.Replace(rawBytes, m, []byte(fmt.Sprintf(`<a href="%s/issues/%s">%s</a>`,
+                       urlPrefix, strings.TrimPrefix(string(m[1:]), "#"), m)), -1)
        }
        return rawBytes
 }
index cb689df6a0ad8b0c854724aa55753a8e5fa76daf..cfe0fa010c789a57839c7aa45497028047f90ed2 100644 (file)
@@ -127,7 +127,6 @@ func Home(ctx *middleware.Context) {
                entries.Sort()
 
                files := make([][]interface{}, 0, len(entries))
-
                for _, te := range entries {
                        if te.Type != git.COMMIT {
                                c, err := ctx.Repo.Commit.GetCommitOfRelPath(filepath.Join(treePath, te.Name()))
@@ -151,16 +150,6 @@ func Home(ctx *middleware.Context) {
                                files = append(files, []interface{}{te, git.NewSubModuleFile(c, sm.Url, te.Id.String())})
                        }
                }
-
-               // Render issue index links.
-               for _, f := range files {
-                       switch c := f[1].(type) {
-                       case *git.Commit:
-                               c.CommitMessage = c.CommitMessage
-                       case *git.SubModuleFile:
-                               c.CommitMessage = c.CommitMessage
-                       }
-               }
                ctx.Data["Files"] = files
 
                var readmeFile *git.Blob
@@ -208,7 +197,6 @@ func Home(ctx *middleware.Context) {
                }
 
                lastCommit := ctx.Repo.Commit
-               lastCommit.CommitMessage = string(base.RenderIssueIndexPattern([]byte(lastCommit.CommitMessage), ctx.Repo.RepoLink))
                if len(treePath) > 0 {
                        c, err := ctx.Repo.Commit.GetCommitOfRelPath(treePath)
                        if err != nil {