forked from gitea/gitea
		
	Merge branch 'master' of https://github.com/gogits/gogs
This commit is contained in:
		
						commit
						0b22d90b7c
					
				
							
								
								
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								gogs.go
									
									
									
									
									
								
							| @ -19,7 +19,7 @@ import ( | ||||
| // Test that go1.2 tag above is included in builds. main.go refers to this definition. | ||||
| const go12tag = true | ||||
| 
 | ||||
| const APP_VER = "0.1.8.0325" | ||||
| const APP_VER = "0.1.8.0326" | ||||
| 
 | ||||
| func init() { | ||||
| 	base.AppVer = APP_VER | ||||
|  | ||||
| @ -274,7 +274,6 @@ const DIFF_HEAD = "diff --git " | ||||
| 
 | ||||
| func ParsePatch(reader io.Reader) (*Diff, error) { | ||||
| 	scanner := bufio.NewScanner(reader) | ||||
| 	var totalAdd, totalDel int | ||||
| 	var curFile *DiffFile | ||||
| 	curSection := &DiffSection{ | ||||
| 		Lines: make([]*DiffLine, 0, 10), | ||||
| @ -285,6 +284,10 @@ func ParsePatch(reader io.Reader) (*Diff, error) { | ||||
| 	for scanner.Scan() { | ||||
| 		line := scanner.Text() | ||||
| 		fmt.Println(i, line) | ||||
| 		if strings.HasPrefix(line, "+++ ") || strings.HasPrefix(line, "--- ") { | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		i = i + 1 | ||||
| 		if line == "" { | ||||
| 			continue | ||||
| @ -300,40 +303,51 @@ func ParsePatch(reader io.Reader) (*Diff, error) { | ||||
| 			diffLine := &DiffLine{Type: DIFF_LINE_SECTION, Content: "@@" + ss[len(ss)-2] + "@@"} | ||||
| 			curSection.Lines = append(curSection.Lines, diffLine) | ||||
| 
 | ||||
| 			diffLine = &DiffLine{Type: DIFF_LINE_PLAIN, Content: ss[len(ss)-1]} | ||||
| 			curSection.Lines = append(curSection.Lines, diffLine) | ||||
| 			if len(ss[len(ss)-1]) > 0 { | ||||
| 				diffLine = &DiffLine{Type: DIFF_LINE_PLAIN, Content: ss[len(ss)-1]} | ||||
| 				curSection.Lines = append(curSection.Lines, diffLine) | ||||
| 			} | ||||
| 			continue | ||||
| 		} else if line[0] == '+' { | ||||
| 			curFile.Addition++ | ||||
| 			diff.TotalAddition++ | ||||
| 			diffLine := &DiffLine{Type: DIFF_LINE_ADD, Content: line} | ||||
| 			curSection.Lines = append(curSection.Lines, diffLine) | ||||
| 			continue | ||||
| 		} else if line[0] == '-' { | ||||
| 			curFile.Deletion++ | ||||
| 			diff.TotalDeletion++ | ||||
| 			diffLine := &DiffLine{Type: DIFF_LINE_DEL, Content: line} | ||||
| 			curSection.Lines = append(curSection.Lines, diffLine) | ||||
| 			continue | ||||
| 		} | ||||
| 
 | ||||
| 		// Get new file. | ||||
| 		if strings.HasPrefix(line, DIFF_HEAD) { | ||||
| 			if curFile != nil { | ||||
| 				curFile.Addition, totalAdd = totalAdd, 0 | ||||
| 				curFile.Deletion, totalDel = totalDel, 0 | ||||
| 				curFile = nil | ||||
| 			} | ||||
| 			fs := strings.Split(line[len(DIFF_HEAD):], " ") | ||||
| 			a := fs[0] | ||||
| 
 | ||||
| 			curFile = &DiffFile{ | ||||
| 				Name:     a[strings.Index(a, "/")+1:], | ||||
| 				Type:     DIFF_FILE_CHANGE, | ||||
| 				Sections: make([]*DiffSection, 0), | ||||
| 				Sections: make([]*DiffSection, 0, 10), | ||||
| 			} | ||||
| 			diff.Files = append(diff.Files, curFile) | ||||
| 			scanner.Scan() | ||||
| 			scanner.Scan() | ||||
| 			if scanner.Text() == "--- /dev/null" { | ||||
| 				curFile.Type = DIFF_FILE_ADD | ||||
| 
 | ||||
| 			// Check file diff type. | ||||
| 			for scanner.Scan() { | ||||
| 				switch { | ||||
| 				case strings.HasPrefix(scanner.Text(), "new file"): | ||||
| 					curFile.Type = DIFF_FILE_ADD | ||||
| 				case strings.HasPrefix(scanner.Text(), "deleted"): | ||||
| 					curFile.Type = DIFF_FILE_DEL | ||||
| 				case strings.HasPrefix(scanner.Text(), "index"): | ||||
| 					curFile.Type = DIFF_FILE_CHANGE | ||||
| 				} | ||||
| 				if curFile.Type > 0 { | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
| 			scanner.Scan() | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| @ -351,14 +365,13 @@ func GetDiff(repoPath, commitid string) (*Diff, error) { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	// ???? | ||||
| 	if commit.ParentCount() == 0 { | ||||
| 		return &Diff{}, err | ||||
| 	} | ||||
| 
 | ||||
| 	rd, wr := io.Pipe() | ||||
| 	go func() { | ||||
| 		cmd := exec.Command("git", "diff", commitid, commit.Parent(0).Oid.String()) | ||||
| 		cmd := exec.Command("git", "diff", commit.Parent(0).Oid.String(), commitid) | ||||
| 		cmd.Dir = repoPath | ||||
| 		cmd.Stdout = wr | ||||
| 		cmd.Stdin = os.Stdin | ||||
|  | ||||
| @ -70,4 +70,5 @@ var TemplateFuncs template.FuncMap = map[string]interface{}{ | ||||
| 	"SubStr": func(str string, start, length int) string { | ||||
| 		return str[start : start+length] | ||||
| 	}, | ||||
| 	"DiffTypeToStr": DiffTypeToStr, | ||||
| } | ||||
|  | ||||
| @ -539,3 +539,16 @@ func ActionDesc(act Actioner, avatarLink string) string { | ||||
| 		return "invalid type" | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func DiffTypeToStr(diffType int) string { | ||||
| 	switch diffType { | ||||
| 	case 1: | ||||
| 		return "add" | ||||
| 	case 2: | ||||
| 		return "modify" | ||||
| 	case 3: | ||||
| 		return "del" | ||||
| 	default: | ||||
| 		return "unknown" | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @ -55,11 +55,6 @@ func Issues(ctx *middleware.Context, params martini.Params) { | ||||
| } | ||||
| 
 | ||||
| func CreateIssue(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) { | ||||
| 	if !ctx.Repo.IsOwner { | ||||
| 		ctx.Handle(404, "issue.CreateIssue", nil) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	ctx.Data["Title"] = "Create issue" | ||||
| 	ctx.Data["IsRepoToolbarIssues"] = true | ||||
| 	ctx.Data["IsRepoToolbarIssuesList"] = false | ||||
| @ -125,11 +120,6 @@ func ViewIssue(ctx *middleware.Context, params martini.Params) { | ||||
| } | ||||
| 
 | ||||
| func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.CreateIssueForm) { | ||||
| 	if !ctx.Repo.IsOwner { | ||||
| 		ctx.Handle(404, "issue.UpdateIssue", nil) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	index, err := base.StrTo(params["index"]).Int() | ||||
| 	if err != nil { | ||||
| 		ctx.Handle(404, "issue.UpdateIssue", err) | ||||
| @ -146,6 +136,11 @@ func UpdateIssue(ctx *middleware.Context, params martini.Params, form auth.Creat | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	if ctx.User.Id != issue.PosterId { | ||||
| 		ctx.Handle(404, "issue.UpdateIssue", nil) | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	issue.Name = form.IssueName | ||||
| 	issue.MilestoneId = form.MilestoneId | ||||
| 	issue.AssigneeId = form.AssigneeId | ||||
|  | ||||
| @ -39,7 +39,7 @@ | ||||
|                         <span class="del" data-line="{{.Deletion}}">{{.Deletion}}</span> | ||||
|                     </div> | ||||
|                     <!-- todo finish all file status, now modify, add, delete and rename --> | ||||
|                     <span class="status modify" data-toggle="tooltip" data-placement="right" title="modify"> </span> | ||||
|                     <span class="status {{DiffTypeToStr .Type}}" data-toggle="tooltip" data-placement="right" title="{{DiffTypeToStr .Type}}"> </span> | ||||
|                     <a class="file" href="#diff-1">{{.Name}}</a> | ||||
|                 </li> | ||||
|                 {{end}} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 FuXiaoHei
						FuXiaoHei