summaryrefslogtreecommitdiffstats
path: root/app/models/changeset.rb
diff options
context:
space:
mode:
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-01-02 09:45:05 +0000
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-01-02 09:45:05 +0000
commit2e1bcb2abff6f78f028064299125480cbf3c2c2a (patch)
tree0e277b38e1f527d703466a2857c56953f12cf7ff /app/models/changeset.rb
parent2ae2d3ef834c4d17b1c7a4e09f299b537f91d3cc (diff)
downloadredmine-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.rb22
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))