diff --git a/src/main/scala/app/PullRequestsController.scala b/src/main/scala/app/PullRequestsController.scala index e7680e9af..8fd467283 100644 --- a/src/main/scala/app/PullRequestsController.scala +++ b/src/main/scala/app/PullRequestsController.scala @@ -443,7 +443,7 @@ trait PullRequestsControllerBase extends ControllerBase { val commits = newGit.log.addRange(oldId, newId).call.iterator.asScala.map { revCommit => new CommitInfo(revCommit) }.toList.splitWith { (commit1, commit2) => - view.helpers.date(commit1.time) == view.helpers.date(commit2.time) + view.helpers.date(commit1.commitTime) == view.helpers.date(commit2.commitTime) } val diffs = JGitUtil.getDiffs(newGit, oldId.getName, newId.getName, true) diff --git a/src/main/scala/app/RepositoryViewerController.scala b/src/main/scala/app/RepositoryViewerController.scala index ab2cf05cd..0fea61fb0 100644 --- a/src/main/scala/app/RepositoryViewerController.scala +++ b/src/main/scala/app/RepositoryViewerController.scala @@ -106,7 +106,7 @@ trait RepositoryViewerControllerBase extends ControllerBase { case Right((logs, hasNext)) => repo.html.commits(if(path.isEmpty) Nil else path.split("/").toList, branchName, repository, logs.splitWith{ (commit1, commit2) => - view.helpers.date(commit1.time) == view.helpers.date(commit2.time) + view.helpers.date(commit1.commitTime) == view.helpers.date(commit2.commitTime) }, page, hasNext) case Left(_) => NotFound } diff --git a/src/main/scala/service/WebHookService.scala b/src/main/scala/service/WebHookService.scala index 9061a0733..ea6501ab7 100644 --- a/src/main/scala/service/WebHookService.scala +++ b/src/main/scala/service/WebHookService.scala @@ -89,15 +89,15 @@ object WebHookService { WebHookCommit( id = commit.id, message = commit.fullMessage, - timestamp = commit.time.toString, + timestamp = commit.commitTime.toString, url = commitUrl, added = diffs._1.collect { case x if(x.changeType == DiffEntry.ChangeType.ADD) => x.newPath }, removed = diffs._1.collect { case x if(x.changeType == DiffEntry.ChangeType.DELETE) => x.oldPath }, modified = diffs._1.collect { case x if(x.changeType != DiffEntry.ChangeType.ADD && x.changeType != DiffEntry.ChangeType.DELETE) => x.newPath }, author = WebHookUser( - name = commit.committer, - email = commit.mailAddress + name = commit.committerName, + email = commit.committerEmailAddress ) ) }, diff --git a/src/main/scala/servlet/GitRepositoryServlet.scala b/src/main/scala/servlet/GitRepositoryServlet.scala index 0b1985880..747dbf57a 100644 --- a/src/main/scala/servlet/GitRepositoryServlet.scala +++ b/src/main/scala/servlet/GitRepositoryServlet.scala @@ -205,7 +205,7 @@ class CommitLogHook(owner: String, repository: String, pusher: String, baseUrl: private def createIssueComment(commit: CommitInfo) = { StringUtil.extractIssueId(commit.fullMessage).foreach { issueId => if(getIssue(owner, repository, issueId).isDefined){ - getAccountByMailAddress(commit.mailAddress).foreach { account => + getAccountByMailAddress(commit.committerEmailAddress).foreach { account => createComment(owner, repository, account.userName, issueId.toInt, commit.fullMessage + " " + commit.id, "commit") } } diff --git a/src/main/scala/util/JGitUtil.scala b/src/main/scala/util/JGitUtil.scala index f4ced75cc..46f088833 100644 --- a/src/main/scala/util/JGitUtil.scala +++ b/src/main/scala/util/JGitUtil.scala @@ -61,24 +61,31 @@ object JGitUtil { * The commit data. * * @param id the commit id - * @param time the commit time - * @param committer the committer name - * @param mailAddress the mail address of the committer * @param shortMessage the short message * @param fullMessage the full message * @param parents the list of parent commit id + * @param authorTime the author time + * @param authorName the author name + * @param authorEmailAddress the mail address of the author + * @param commitTime the commit time + * @param committerName the committer name + * @param committerEmailAddress the mail address of the committer */ - case class CommitInfo(id: String, time: Date, committer: String, mailAddress: String, - shortMessage: String, fullMessage: String, parents: List[String]){ + case class CommitInfo(id: String, shortMessage: String, fullMessage: String, parents: List[String], + authorTime: Date, authorName: String, authorEmailAddress: String, + commitTime: Date, committerName: String, committerEmailAddress: String){ def this(rev: org.eclipse.jgit.revwalk.RevCommit) = this( rev.getName, + rev.getFullMessage, + rev.getShortMessage, + rev.getParents().map(_.name).toList, + rev.getAuthorIdent.getWhen, + rev.getAuthorIdent.getName, + rev.getAuthorIdent.getEmailAddress, rev.getCommitterIdent.getWhen, rev.getCommitterIdent.getName, - rev.getCommitterIdent.getEmailAddress, - rev.getShortMessage, - rev.getFullMessage, - rev.getParents().map(_.name).toList) + rev.getCommitterIdent.getEmailAddress) val summary = getSummaryMessage(fullMessage, shortMessage) @@ -87,6 +94,8 @@ object JGitUtil { Some(fullMessage.trim.substring(i).trim) } else None } + + def isDiffrentCommitter: Boolean = authorName != committerName || authorEmailAddress != committerEmailAddress } case class DiffInfo(changeType: ChangeType, oldPath: String, newPath: String, oldContent: Option[String], newContent: Option[String]) diff --git a/src/main/scala/view/helpers.scala b/src/main/scala/view/helpers.scala index ddf4a0ae4..e83606a2e 100644 --- a/src/main/scala/view/helpers.scala +++ b/src/main/scala/view/helpers.scala @@ -74,7 +74,7 @@ object helpers extends AvatarImageProvider with LinkConverter with RequestCache * This method looks up Gravatar if avatar icon has not been configured in user settings. */ def avatar(commit: util.JGitUtil.CommitInfo, size: Int)(implicit context: app.Context): Html = - getAvatarImageHtml(commit.committer, size, commit.mailAddress) + getAvatarImageHtml(commit.authorName, size, commit.authorEmailAddress) /** * Converts commit id, issue id and username to the link. diff --git a/src/main/twirl/pulls/commits.scala.html b/src/main/twirl/pulls/commits.scala.html index 68636d5f5..fa180562d 100644 --- a/src/main/twirl/pulls/commits.scala.html +++ b/src/main/twirl/pulls/commits.scala.html @@ -6,13 +6,13 @@ @commits.map { day => - + @day.map { commit =>
@date(day.head.time)@date(day.head.commitTime)
@avatar(commit, 20) - @user(commit.committer, commit.mailAddress, "username") + @user(commit.authorName, commit.authorEmailAddress, "username") @commit.shortMessage diff --git a/src/main/twirl/repo/blob.scala.html b/src/main/twirl/repo/blob.scala.html index df13f90c2..9df602c59 100644 --- a/src/main/twirl/repo/blob.scala.html +++ b/src/main/twirl/repo/blob.scala.html @@ -33,8 +33,8 @@
@avatar(latestCommit, 20) - @user(latestCommit.committer, latestCommit.mailAddress, "username strong") - @datetime(latestCommit.time) + @user(latestCommit.committerName, latestCommit.committerEmailAddress, "username strong") + @datetime(latestCommit.commitTime) @link(latestCommit.summary, repository)
diff --git a/src/main/twirl/repo/commit.scala.html b/src/main/twirl/repo/commit.scala.html index 61a2ce49c..ac8992e27 100644 --- a/src/main/twirl/repo/commit.scala.html +++ b/src/main/twirl/repo/commit.scala.html @@ -42,9 +42,6 @@
- @avatar(commit, 20) - @user(commit.committer, commit.mailAddress, "username strong") - @datetime(commit.time)
@if(commit.parents.size == 0){ @@ -66,6 +63,21 @@
}
+ +
+
+ @avatar(commit, 20) + @user(commit.authorName, commit.authorEmailAddress, "username strong") + authored on @datetime(commit.authorTime) +
+ @if(commit.isDiffrentCommitter) { +
+ + @user(commit.committerName, commit.committerEmailAddress, "username strong") + committed on @datetime(commit.commitTime) +
+ } +
diff --git a/src/main/twirl/repo/commits.scala.html b/src/main/twirl/repo/commits.scala.html index 8fc49bfaa..ae93996cc 100644 --- a/src/main/twirl/repo/commits.scala.html +++ b/src/main/twirl/repo/commits.scala.html @@ -36,7 +36,7 @@ @commits.map { day => - + @day.map { commit => @@ -57,8 +57,8 @@ }
- @user(commit.committer, commit.mailAddress, "username") - @datetime(commit.time) + @user(commit.committerName, commit.committerEmailAddress, "username") + @datetime(commit.commitTime)
diff --git a/src/main/twirl/repo/files.scala.html b/src/main/twirl/repo/files.scala.html index 3e6d9993e..9744ed4fb 100644 --- a/src/main/twirl/repo/files.scala.html +++ b/src/main/twirl/repo/files.scala.html @@ -41,8 +41,8 @@ - + } diff --git a/src/main/webapp/assets/common/css/gitbucket.css b/src/main/webapp/assets/common/css/gitbucket.css index 934080dac..e4a29880c 100644 --- a/src/main/webapp/assets/common/css/gitbucket.css +++ b/src/main/webapp/assets/common/css/gitbucket.css @@ -824,6 +824,15 @@ a.absent { color: #c00; } +/****************************************************************************/ +/* Commit */ +/****************************************************************************/ +div.author-info div.committer { + display: block; + margin-left: 25px; + font-size: 12px; +} + /****************************************************************************/ /* Diff */ /****************************************************************************/
@date(day.head.time)@date(day.head.commitTime)
@avatar(latestCommit, 20) - @user(latestCommit.committer, latestCommit.mailAddress, "username strong") - @datetime(latestCommit.time) + @user(latestCommit.committerName, latestCommit.committerEmailAddress, "username strong") + @datetime(latestCommit.commitTime) diff --git a/src/main/twirl/wiki/history.scala.html b/src/main/twirl/wiki/history.scala.html index 198f0b1d0..6c5c2ac7f 100644 --- a/src/main/twirl/wiki/history.scala.html +++ b/src/main/twirl/wiki/history.scala.html @@ -34,9 +34,9 @@ @commits.map { commit =>
@avatar(commit, 20) @user(commit.committer, commit.mailAddress)@avatar(commit, 20) @user(commit.committerName, commit.committerEmailAddress) - @datetime(commit.time): @commit.shortMessage + @datetime(commit.commitTime): @commit.shortMessage