diff --git a/src/main/scala/app/RepositoryViewerController.scala b/src/main/scala/app/RepositoryViewerController.scala index 7bb93bf..94093b9 100644 --- a/src/main/scala/app/RepositoryViewerController.scala +++ b/src/main/scala/app/RepositoryViewerController.scala @@ -157,7 +157,27 @@ JGitUtil.withGit(getRepositoryDir(owner, repository)){ git => val revCommit = JGitUtil.getRevCommitFromId(git, git.getRepository.resolve(id)) - repo.html.commit(id, new JGitUtil.CommitInfo(revCommit), + + import scala.collection.JavaConverters._ + import org.eclipse.jgit.lib.Constants + val walk = new org.eclipse.jgit.revwalk.RevWalk(git.getRepository) + val commit = walk.parseCommit(git.getRepository.resolve(revCommit.getName + "^0")) + + // TODO move to JGitUtil + val branchs = git.getRepository.getAllRefs.entrySet.asScala.filter { e => + (e.getKey.startsWith(Constants.R_HEADS) && walk.isMergedInto(commit, walk.parseCommit(e.getValue.getObjectId))) + }.map { e => + e.getValue.getName.substring(org.eclipse.jgit.lib.Constants.R_HEADS.length) + }.toList.sorted + + // TODO move to JGitUtil + val tags = git.getRepository.getAllRefs.entrySet.asScala.filter { e => + (e.getKey.startsWith(Constants.R_TAGS) && walk.isMergedInto(commit, walk.parseCommit(e.getValue.getObjectId))) + }.map { e => + e.getValue.getName.substring(org.eclipse.jgit.lib.Constants.R_TAGS.length) + }.toList.sorted.reverse + + repo.html.commit(id, new JGitUtil.CommitInfo(revCommit), branchs, tags, getRepository(owner, repository, baseUrl).get, JGitUtil.getDiffs(git, id)) } }) diff --git a/src/main/twirl/repo/commit.scala.html b/src/main/twirl/repo/commit.scala.html index c75555f..a786779 100644 --- a/src/main/twirl/repo/commit.scala.html +++ b/src/main/twirl/repo/commit.scala.html @@ -1,10 +1,11 @@ -@(branch: String, commit: util.JGitUtil.CommitInfo, repository: service.RepositoryService.RepositoryInfo, diffs: Seq[util.JGitUtil.DiffInfo])(implicit context: app.Context) +@(commitId: String, commit: util.JGitUtil.CommitInfo, branchs: List[String], tags: List[String], repository: service.RepositoryService.RepositoryInfo, diffs: Seq[util.JGitUtil.DiffInfo])(implicit context: app.Context) @import context._ @import view.helpers +@import view.implicits._ @import org.eclipse.jgit.diff.DiffEntry.ChangeType @html.main(commit.shortMessage){ @html.header("code", repository) - @navtab(branch, repository, "commits") + @navtab(commitId, repository, "commits") @@ -35,10 +45,9 @@ @if(commit.parents.size > 1){
@commit.parents.size parents - @commit.parents.zipWithIndex.map { case (parent, i) => - @if(i != 0){ + } + @commit.parents.map { parent => @parent.substring(0, 7) - } + }.mkHtml(" + ")
} @@ -61,16 +70,16 @@ 0){ class="border"}> @if(diff.changeType == ChangeType.COPY || diff.changeType == ChangeType.RENAME){ - @diff.oldPath -> @diff.newPath + @diff.oldPath -> @diff.newPath } @if(diff.changeType == ChangeType.ADD){ - @diff.newPath + @diff.newPath } @if(diff.changeType == ChangeType.MODIFY){ - @diff.newPath + @diff.newPath } @if(diff.changeType == ChangeType.DELETE){ - @diff.oldPath + @diff.oldPath } diff --git a/src/main/webapp/assets/common/images/diff_add.png b/src/main/webapp/assets/common/images/diff_add.png new file mode 100644 index 0000000..853f7c0 --- /dev/null +++ b/src/main/webapp/assets/common/images/diff_add.png Binary files differ diff --git a/src/main/webapp/assets/common/images/diff_delete.png b/src/main/webapp/assets/common/images/diff_delete.png new file mode 100644 index 0000000..f5e36ea --- /dev/null +++ b/src/main/webapp/assets/common/images/diff_delete.png Binary files differ diff --git a/src/main/webapp/assets/common/images/diff_edit.png b/src/main/webapp/assets/common/images/diff_edit.png new file mode 100644 index 0000000..c0e0b06 --- /dev/null +++ b/src/main/webapp/assets/common/images/diff_edit.png Binary files differ diff --git a/src/main/webapp/assets/common/images/diff_move.png b/src/main/webapp/assets/common/images/diff_move.png new file mode 100644 index 0000000..25a9c1e --- /dev/null +++ b/src/main/webapp/assets/common/images/diff_move.png Binary files differ diff --git a/src/main/webapp/assets/common/images/page_add.png b/src/main/webapp/assets/common/images/page_add.png deleted file mode 100644 index d5bfa07..0000000 --- a/src/main/webapp/assets/common/images/page_add.png +++ /dev/null Binary files differ diff --git a/src/main/webapp/assets/common/images/page_copy.png b/src/main/webapp/assets/common/images/page_copy.png deleted file mode 100644 index 195dc6d..0000000 --- a/src/main/webapp/assets/common/images/page_copy.png +++ /dev/null Binary files differ diff --git a/src/main/webapp/assets/common/images/page_delete.png b/src/main/webapp/assets/common/images/page_delete.png deleted file mode 100644 index 3141467..0000000 --- a/src/main/webapp/assets/common/images/page_delete.png +++ /dev/null Binary files differ diff --git a/src/main/webapp/assets/common/images/page_edit.png b/src/main/webapp/assets/common/images/page_edit.png deleted file mode 100644 index 046811e..0000000 --- a/src/main/webapp/assets/common/images/page_edit.png +++ /dev/null Binary files differ
@@ -15,7 +16,16 @@ @if(commit.description.isDefined){
@commit.description.get
} -
@branch
+ @* +
+ + @branchs.map { branch => @branch }.mkHtml(", ") + + + @tags.map { tag => @tag }.mkHtml(", ") + +
+ *@