diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-21 15:56:29 -0800 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-01-21 15:56:29 -0800 |
commit | 45bebd76d639e72aeb5b415a1f801659d8df8607 (patch) | |
tree | 3904b46c1c557396327bfc3d6b808c358f435b32 /app | |
parent | 6a1aa4763aa47c32ba6bd97e77d2bc0409dfdd6f (diff) | |
parent | 8a66a10c2a13463e5889bb1503bc84a300b13f6a (diff) | |
download | gitlab-ce-45bebd76d639e72aeb5b415a1f801659d8df8607.tar.gz |
Merge branch 'master' of gitlab.com:gitlab-org/gitlab-ce
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects/commit_controller.rb | 1 | ||||
-rw-r--r-- | app/helpers/commits_helper.rb | 6 | ||||
-rw-r--r-- | app/models/repository.rb | 17 | ||||
-rw-r--r-- | app/models/user.rb | 2 | ||||
-rw-r--r-- | app/views/projects/commit/_commit_box.html.haml | 7 |
5 files changed, 32 insertions, 1 deletions
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb index dac858d8e16..470efbd2114 100644 --- a/app/controllers/projects/commit_controller.rb +++ b/app/controllers/projects/commit_controller.rb @@ -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 diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb index 36adeadd8a5..6a6d483ba66 100644 --- a/app/helpers/commits_helper.rb +++ b/app/helpers/commits_helper.rb @@ -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) diff --git a/app/models/repository.rb b/app/models/repository.rb index 93994123a90..e93c76790c7 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -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 diff --git a/app/models/user.rb b/app/models/user.rb index 743410c22e3..06521d9fd5c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -497,7 +497,7 @@ class User < ActiveRecord::Base def avatar_url(size = nil) if avatar.present? - [gitlab_config.url, avatar.url].join("/") + [gitlab_config.url, avatar.url].join else GravatarService.new.execute(email, size) end diff --git a/app/views/projects/commit/_commit_box.html.haml b/app/views/projects/commit/_commit_box.html.haml index e149f017f84..1d4658432ae 100644 --- a/app/views/projects/commit/_commit_box.html.haml +++ b/app/views/projects/commit/_commit_box.html.haml @@ -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) |