Show tags in commit view

This commit is contained in:
Hannes Rosenögger 2015-01-17 14:12:49 +01:00
parent ada6c6080b
commit 8243eb3f0e
5 changed files with 32 additions and 1 deletions

View File

@ -11,7 +11,7 @@ v 7.8.0
-
-
-
-
- Show tags in commit view (Hannes Rosenögger)
-
-
-

View File

@ -12,6 +12,7 @@ class Projects::CommitController < Projects::ApplicationController
@line_notes = @project.notes.for_commit_id(commit.id).inline
@branches = @project.repository.branch_names_contains(commit.id)
@tags = @project.repository.tag_names_contains(commit.id)
@diffs = @commit.diffs
@note = @project.build_commit_note(commit)
@notes_count = @project.notes.for_commit_id(commit.id).count

View File

@ -65,6 +65,12 @@ module CommitsHelper
branches.sort.map { |branch| link_to(branch, project_tree_path(project, branch)) }.join(", ").html_safe
end
# Returns the sorted links to tags, separated by a comma
def commit_tags_links(project, tags)
sorted = VersionSorter.rsort(tags)
sorted.map { |tag| link_to(tag, project_commits_path(project, project.repository.find_tag(tag).name)) }.join(", ").html_safe
end
def link_to_browse_code(project, commit)
if current_controller?(:projects, :commits)
if @repo.blob_at(commit.id, @path)

View File

@ -312,4 +312,21 @@ class Repository
[]
end
end
def tag_names_contains(sha)
args = %W(git tag --contains #{sha})
names = Gitlab::Popen.popen(args, path_to_repo).first
if names.respond_to?(:split)
names = names.split("\n").map(&:strip)
names.each do |name|
name.slice! '* '
end
names
else
[]
end
end
end

View File

@ -50,6 +50,13 @@
%span.js-details-content.hide
= commit_branches_links(@project, @branches)
- if @tags.any?
.commit-info-row
%span.cgray
Tags:
%span
= commit_tags_links(@project, @tags)
.commit-box
%h3.commit-title
= gfm escape_once(@commit.title)