diff options
author | Toshi MARUYAMA <marutosijp2@yahoo.co.jp> | 2011-01-02 09:45:05 +0000 |
---|---|---|
committer | Toshi MARUYAMA <marutosijp2@yahoo.co.jp> | 2011-01-02 09:45:05 +0000 |
commit | 2e1bcb2abff6f78f028064299125480cbf3c2c2a (patch) | |
tree | 0e277b38e1f527d703466a2857c56953f12cf7ff /app/models/changeset.rb | |
parent | 2ae2d3ef834c4d17b1c7a4e09f299b537f91d3cc (diff) | |
download | redmine-2e1bcb2abff6f78f028064299125480cbf3c2c2a.tar.gz redmine-2e1bcb2abff6f78f028064299125480cbf3c2c2a.zip |
Changing revision label and identifier at SCM adapter level (#3724, #6092)
Contributed by Yuya Nishihara.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4613 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models/changeset.rb')
-rw-r--r-- | app/models/changeset.rb | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/app/models/changeset.rb b/app/models/changeset.rb index ca4daace8..e49113ebf 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -23,10 +23,10 @@ class Changeset < ActiveRecord::Base has_many :changes, :dependent => :delete_all has_and_belongs_to_many :issues - acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.revision}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))}, + acts_as_event :title => Proc.new {|o| "#{l(:label_revision)} #{o.format_identifier}" + (o.short_comments.blank? ? '' : (': ' + o.short_comments))}, :description => :long_comments, :datetime => :committed_on, - :url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.revision}} + :url => Proc.new {|o| {:controller => 'repositories', :action => 'revision', :id => o.repository.project, :rev => o.identifier}} acts_as_searchable :columns => 'comments', :include => {:repository => :project}, @@ -47,6 +47,15 @@ class Changeset < ActiveRecord::Base def revision=(r) write_attribute :revision, (r.nil? ? nil : r.to_s) end + + # Returns the identifier of this changeset; depending on repository backends + def identifier + if repository.class.respond_to? :changeset_identifier + repository.class.changeset_identifier self + else + revision.to_s + end + end def comments=(comment) write_attribute(:comments, Changeset.normalize_comments(comment)) @@ -56,6 +65,15 @@ class Changeset < ActiveRecord::Base self.commit_date = date super end + + # Returns the readable identifier + def format_identifier + if repository.class.respond_to? :format_changeset_identifier + repository.class.format_changeset_identifier self + else + identifier + end + end def committer=(arg) write_attribute(:committer, self.class.to_utf8(arg.to_s)) |