mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:06:18 +01:00 
			
		
		
		
	wiki history improvements (#7391)
* add history comments to detect page delete Signed-off-by: Michael Gnehr <michael@gnehr.de> * fix too much history entries - caused by --follow flag - if files with same contents exists Signed-off-by: Michael Gnehr <michael@gnehr.de> * style imprevements wiki - history - wrap long author names Signed-off-by: Michael Gnehr <michael@gnehr.de>
This commit is contained in:
		| @@ -266,6 +266,16 @@ func (repo *Repository) CommitsByFileAndRange(revision, file string, page int) ( | |||||||
| 	return repo.parsePrettyFormatLogToList(stdout) | 	return repo.parsePrettyFormatLogToList(stdout) | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // CommitsByFileAndRangeNoFollow return the commits according revison file and the page | ||||||
|  | func (repo *Repository) CommitsByFileAndRangeNoFollow(revision, file string, page int) (*list.List, error) { | ||||||
|  | 	stdout, err := NewCommand("log", revision, "--skip="+strconv.Itoa((page-1)*50), | ||||||
|  | 		"--max-count="+strconv.Itoa(CommitsRangeSize), prettyLogFormat, "--", file).RunInDirBytes(repo.Path) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	return repo.parsePrettyFormatLogToList(stdout) | ||||||
|  | } | ||||||
|  |  | ||||||
| // FilesCountBetween return the number of files changed between two commits | // FilesCountBetween return the number of files changed between two commits | ||||||
| func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error) { | func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error) { | ||||||
| 	stdout, err := NewCommand("diff", "--name-only", startCommitID+"..."+endCommitID).RunInDir(repo.Path) | 	stdout, err := NewCommand("diff", "--name-only", startCommitID+"..."+endCommitID).RunInDir(repo.Path) | ||||||
|   | |||||||
| @@ -292,7 +292,7 @@ footer .ui.left,footer .ui.right{line-height:40px} | |||||||
| .markdown:not(code) .ui.list .list,.markdown:not(code) ol.ui.list ol,.markdown:not(code) ul.ui.list ul{padding-left:2em} | .markdown:not(code) .ui.list .list,.markdown:not(code) ol.ui.list ol,.markdown:not(code) ul.ui.list ul{padding-left:2em} | ||||||
| .repository.wiki.revisions .ui.container>.ui.stackable.grid{flex-direction:row-reverse} | .repository.wiki.revisions .ui.container>.ui.stackable.grid{flex-direction:row-reverse} | ||||||
| .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header{margin-top:0} | .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header{margin-top:0} | ||||||
| .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header .sub.header{padding-left:52px} | .repository.wiki.revisions .ui.container>.ui.stackable.grid>.header .sub.header{padding-left:52px;word-break:break-word} | ||||||
| .file-revisions-btn{display:block;float:left;margin-bottom:2px!important;padding:11px!important;margin-right:10px!important} | .file-revisions-btn{display:block;float:left;margin-bottom:2px!important;padding:11px!important;margin-right:10px!important} | ||||||
| .file-revisions-btn i{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} | .file-revisions-btn i{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} | ||||||
| .home .logo{max-width:220px} | .home .logo{max-width:220px} | ||||||
|   | |||||||
| @@ -505,6 +505,7 @@ | |||||||
|  |  | ||||||
|             .sub.header { |             .sub.header { | ||||||
|                 padding-left: 52px; |                 padding-left: 52px; | ||||||
|  |                 word-break: break-word; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -248,9 +248,9 @@ func renderRevisionPage(ctx *context.Context) (*git.Repository, *git.TreeEntry) | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// get Commit Count | 	// get Commit Count | ||||||
| 	commitsHistory, err := wikiRepo.CommitsByFileAndRange("master", pageFilename, page) | 	commitsHistory, err := wikiRepo.CommitsByFileAndRangeNoFollow("master", pageFilename, page) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.ServerError("CommitsByFileAndRange", err) | 		ctx.ServerError("CommitsByFileAndRangeNoFollow", err) | ||||||
| 		return nil, nil | 		return nil, nil | ||||||
| 	} | 	} | ||||||
| 	commitsHistory = models.ValidateCommitsWithEmails(commitsHistory) | 	commitsHistory = models.ValidateCommitsWithEmails(commitsHistory) | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ | |||||||
| 			<div class="ui header eight wide column"> | 			<div class="ui header eight wide column"> | ||||||
| 				<a class="file-revisions-btn ui basic button" title="{{.i18n.Tr "repo.wiki.back_to_wiki"}}" href="{{.RepoLink}}/wiki/{{.PageURL}}" ><span>{{.revision}}</span> <i class="fa fa-fw fa-file-text-o"></i></a> | 				<a class="file-revisions-btn ui basic button" title="{{.i18n.Tr "repo.wiki.back_to_wiki"}}" href="{{.RepoLink}}/wiki/{{.PageURL}}" ><span>{{.revision}}</span> <i class="fa fa-fw fa-file-text-o"></i></a> | ||||||
| 				{{$title}} | 				{{$title}} | ||||||
| 				<div class="ui sub header"> | 				<div class="ui sub header wrap"> | ||||||
| 					{{$timeSince := TimeSince .Author.When $.Lang}} | 					{{$timeSince := TimeSince .Author.When $.Lang}} | ||||||
| 					{{.i18n.Tr "repo.wiki.last_commit_info" .Author.Name $timeSince | Safe}} | 					{{.i18n.Tr "repo.wiki.last_commit_info" .Author.Name $timeSince | Safe}} | ||||||
| 				</div> | 				</div> | ||||||
| @@ -52,8 +52,9 @@ | |||||||
| 					<table class="ui very basic striped fixed table single line" id="commits-table"> | 					<table class="ui very basic striped fixed table single line" id="commits-table"> | ||||||
| 						<thead> | 						<thead> | ||||||
| 							<tr> | 							<tr> | ||||||
| 								<th class="eight wide">{{.i18n.Tr "repo.commits.author"}}</th> | 								<th class="four wide">{{.i18n.Tr "repo.commits.author"}}</th> | ||||||
| 								<th class="four wide sha">SHA1</th> | 								<th class="tree wide sha">SHA1</th> | ||||||
|  | 								<th class="five wide message">{{.i18n.Tr "repo.commits.message"}}</th> | ||||||
| 								<th class="four wide">{{.i18n.Tr "repo.commits.date"}}</th> | 								<th class="four wide">{{.i18n.Tr "repo.commits.date"}}</th> | ||||||
| 							</tr> | 							</tr> | ||||||
| 						</thead> | 						</thead> | ||||||
| @@ -86,6 +87,15 @@ | |||||||
| 											{{end}} | 											{{end}} | ||||||
| 										</label> | 										</label> | ||||||
| 									</td> | 									</td> | ||||||
|  | 									<td class="message"> | ||||||
|  | 										<span class="message-wrapper"> | ||||||
|  | 											<span class="commit-summary has-emoji{{if gt .ParentCount 1}} grey text{{end}}" title="{{.Summary}}">{{.Summary}}</span> | ||||||
|  | 											{{if IsMultilineCommitMessage .Message}} | ||||||
|  | 											<button class="basic compact mini ui icon button commit-button"><i class="ellipsis horizontal icon"></i></button> | ||||||
|  | 											<pre class="commit-body" style="display: none;">{{RenderCommitBody .Message $.RepoLink $.Repository.ComposeMetas}}</pre> | ||||||
|  | 											{{end}} | ||||||
|  | 										</span> | ||||||
|  | 									</td> | ||||||
| 									<td class="grey text">{{TimeSince .Author.When $.Lang}}</td> | 									<td class="grey text">{{TimeSince .Author.When $.Lang}}</td> | ||||||
| 								</tr> | 								</tr> | ||||||
| 							{{end}} | 							{{end}} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user