Feature #5386 » 5386-tags-in-associated-revisions-2.3-stable.diff
app/models/repository/git.rb Thu May 30 15:36:29 2013 +0200 | ||
---|---|---|
210 | 210 |
# that it's not in the db. |
211 | 211 |
save_revision(rev) |
212 | 212 |
save_revision_branches(rev) |
213 |
save_revision_tags(rev) |
|
213 | 214 |
end |
214 | 215 |
end |
215 | 216 |
h["heads"] = repo_heads.dup |
... | ... | |
218 | 219 |
end |
219 | 220 |
private :save_revisions |
220 | 221 | |
222 |
def save_revision_tags(rev) |
|
223 |
db_rev = find_changeset_by_name(rev.scmid) |
|
224 |
unless db_rev.nil? |
|
225 |
tags = scm.revision_tags(rev.scmid) |
|
226 |
unless tags.nil? |
|
227 |
db_rev.tags = tags.join(',') |
|
228 |
db_rev.save |
|
229 |
end |
|
230 |
end |
|
231 |
end |
|
232 |
private :save_revision_tags |
|
233 | ||
221 | 234 |
def save_revision_branches(rev) |
222 | 235 |
db_rev = find_changeset_by_name(rev.scmid) |
223 | 236 |
unless db_rev.nil? |
... | ... | |
230 | 243 |
end |
231 | 244 |
private :save_revision_branches |
232 | 245 | |
246 |
|
|
233 | 247 |
def save_revision(rev) |
234 | 248 |
parents = (rev.parents || []).collect{|rp| find_changeset_by_name(rp)}.compact |
235 | 249 |
changeset = Changeset.create( |
app/views/issues/_changesets.html.erb Thu May 30 15:36:29 2013 +0200 | ||
---|---|---|
10 | 10 |
</span> |
11 | 11 |
<% end %> |
12 | 12 |
<br /> |
13 | ||
13 |
<% if changeset.tags? %> |
|
14 |
<span style="float: right;"> |
|
15 |
<%== changeset.tags.split(',').collect{ |tag| |
|
16 |
changeset.repository.tags.include?(tag) ? |
|
17 |
tag : nil }.compact.join(' / ') %> |
|
18 |
</span> |
|
19 |
<% end %> |
|
20 |
<br /> |
|
14 | 21 |
<span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p> |
15 | 22 |
<div class="wiki"> |
16 | 23 |
<%= textilizable(changeset, :comments) %> |
db/migrate/20130530152055_add_changesets_tags.rb Thu May 30 15:36:29 2013 +0200 | ||
---|---|---|
1 |
class AddChangesetsTags < ActiveRecord::Migration |
|
2 |
def self.up |
|
3 |
add_column :changesets, :tags, :string, :limit => nil, :default => nil |
|
4 |
end |
|
5 | ||
6 |
def self.down |
|
7 |
remove_column :changesets, :tags |
|
8 |
end |
|
9 |
end |
lib/redmine/scm/adapters/git_adapter.rb Thu May 30 15:36:29 2013 +0200 | ||
---|---|---|
325 | 325 |
nil |
326 | 326 |
end |
327 | 327 | |
328 |
def revision_tags(identifier) |
|
329 |
cmd_args = %w|tag -l --contains| |
|
330 |
cmd_args << identifier |
|
331 |
tags = [] |
|
332 |
git_cmd(cmd_args) do |io| |
|
333 |
io.each_line do |line| |
|
334 |
tags << line.match('(.*)$')[1] |
|
335 |
end |
|
336 |
end |
|
337 |
tags.sort! |
|
338 |
rescue ScmCommandAborted |
|
339 |
nil |
|
340 |
end |
|
341 |
|
|
328 | 342 |
def diff(path, identifier_from, identifier_to=nil) |
329 | 343 |
path ||= '' |
330 | 344 |
cmd_args = [] |