Browse Source

#1595 pushing new branch will rereference issues in previous branch

tags/v0.9.99
Unknwon 8 years ago
parent
commit
c8d92fad30
5 changed files with 40 additions and 15 deletions
  1. 1
    1
      gogs.go
  2. 1
    1
      models/action.go
  3. 37
    11
      models/issue.go
  4. 0
    1
      modules/base/tool.go
  5. 1
    1
      templates/.VERSION

+ 1
- 1
gogs.go View File

@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)

const APP_VER = "0.6.9.0909 Beta"
const APP_VER = "0.6.9.0910 Beta"

func init() {
runtime.GOMAXPROCS(runtime.NumCPU())

+ 1
- 1
models/action.go View File

@@ -220,7 +220,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string

url := fmt.Sprintf("%s/%s/%s/commit/%s", setting.AppSubUrl, repoUserName, repoName, c.Sha1)
message := fmt.Sprintf(`<a href="%s">%s</a>`, url, c.Message)
if _, err = CreateComment(u, repo, issue, 0, 0, COMMENT_TYPE_COMMIT_REF, message, nil); err != nil {
if err = CreateRefComment(u, repo, issue, message, c.Sha1); err != nil {
return err
}
}

+ 37
- 11
models/issue.go View File

@@ -1685,6 +1685,9 @@ type Comment struct {
RenderedContent string `xorm:"-"`
Created time.Time `xorm:"CREATED"`

// Reference issue in commit message
CommitSHA string `xorm:"VARCHAR(40)"`

Attachments []*Attachment `xorm:"-"`

// For view issue page.
@@ -1733,14 +1736,15 @@ func (c *Comment) EventTag() string {
return "event-" + com.ToStr(c.ID)
}

func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content string, uuids []string) (_ *Comment, err error) {
func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content, commitSHA string, uuids []string) (_ *Comment, err error) {
comment := &Comment{
PosterID: u.Id,
Type: cmtType,
IssueID: issue.ID,
CommitID: commitID,
Line: line,
Content: content,
PosterID: u.Id,
Type: cmtType,
IssueID: issue.ID,
CommitID: commitID,
Line: line,
Content: content,
CommitSHA: commitSHA,
}
if _, err = e.Insert(comment); err != nil {
return nil, err
@@ -1819,18 +1823,18 @@ func createStatusComment(e *xorm.Session, doer *User, repo *Repository, issue *I
if !issue.IsClosed {
cmtType = COMMENT_TYPE_REOPEN
}
return createComment(e, doer, repo, issue, 0, 0, cmtType, "", nil)
return createComment(e, doer, repo, issue, 0, 0, cmtType, "", "", nil)
}

// CreateComment creates comment of issue or commit.
func CreateComment(doer *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content string, attachments []string) (comment *Comment, err error) {
func CreateComment(doer *User, repo *Repository, issue *Issue, commitID, line int64, cmtType CommentType, content, commitSHA string, attachments []string) (comment *Comment, err error) {
sess := x.NewSession()
defer sessionRelease(sess)
if err = sess.Begin(); err != nil {
return nil, err
}

comment, err = createComment(sess, doer, repo, issue, commitID, line, cmtType, content, attachments)
comment, err = createComment(sess, doer, repo, issue, commitID, line, cmtType, content, commitSHA, attachments)
if err != nil {
return nil, err
}
@@ -1840,7 +1844,29 @@ func CreateComment(doer *User, repo *Repository, issue *Issue, commitID, line in

// CreateIssueComment creates a plain issue comment.
func CreateIssueComment(doer *User, repo *Repository, issue *Issue, content string, attachments []string) (*Comment, error) {
return CreateComment(doer, repo, issue, 0, 0, COMMENT_TYPE_COMMENT, content, attachments)
return CreateComment(doer, repo, issue, 0, 0, COMMENT_TYPE_COMMENT, content, "", attachments)
}

// CreateRefComment creates a commit reference comment to issue.
func CreateRefComment(doer *User, repo *Repository, issue *Issue, content, commitSHA string) error {
if len(commitSHA) == 0 {
return fmt.Errorf("cannot create reference with empty commit SHA")
}

// Check if same reference from same commit has already existed.
has, err := x.Get(&Comment{
Type: COMMENT_TYPE_COMMIT_REF,
IssueID: issue.ID,
CommitSHA: commitSHA,
})
if err != nil {
return fmt.Errorf("check reference comment: %v", err)
} else if has {
return nil
}

_, err = CreateComment(doer, repo, issue, 0, 0, COMMENT_TYPE_COMMIT_REF, content, commitSHA, nil)
return err
}

// GetCommentByID returns the comment by given ID.

+ 0
- 1
modules/base/tool.go View File

@@ -29,7 +29,6 @@ import (

var Sanitizer = bluemonday.UGCPolicy().AllowAttrs("class").Matching(regexp.MustCompile(`[\p{L}\p{N}\s\-_',:\[\]!\./\\\(\)&]*`)).OnElements("code")


// Encode string to md5 hex value.
func EncodeMd5(str string) string {
m := md5.New()

+ 1
- 1
templates/.VERSION View File

@@ -1 +1 @@
0.6.9.0909 Beta
0.6.9.0910 Beta

Loading…
Cancel
Save