scm: mercurial: code clean up model.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5931 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2011-05-26 10:12:00 +00:00
parent adbe6af44a
commit a267babfe8
1 changed files with 16 additions and 13 deletions

View File

@ -19,12 +19,15 @@ require 'redmine/scm/adapters/mercurial_adapter'
class Repository::Mercurial < Repository
# sort changesets by revision number
has_many :changesets, :order => "#{Changeset.table_name}.id DESC", :foreign_key => 'repository_id'
has_many :changesets,
:order => "#{Changeset.table_name}.id DESC",
:foreign_key => 'repository_id'
attr_protected :root_url
validates_presence_of :url
FETCH_AT_ONCE = 100 # number of changesets to fetch at once
# number of changesets to fetch at once
FETCH_AT_ONCE = 100
def self.human_attribute_name(attribute_key_name)
attr_name = attribute_key_name
@ -84,9 +87,11 @@ class Repository::Mercurial < Repository
# Sqlite3 and PostgreSQL pass.
# Is this MySQL bug?
def latest_changesets(path, rev, limit=10)
changesets.find(:all, :include => :user,
changesets.find(:all,
:include => :user,
:conditions => latest_changesets_cond(path, rev, limit),
:limit => limit, :order => "#{Changeset.table_name}.id DESC")
:limit => limit,
:order => "#{Changeset.table_name}.id DESC")
end
def latest_changesets_cond(path, rev, limit)
@ -108,7 +113,6 @@ class Repository::Mercurial < Repository
cond << "#{Changeset.table_name}.id <= ?"
args << last.id
end
unless path.blank?
cond << "EXISTS (SELECT * FROM #{Change.table_name}
WHERE #{Change.table_name}.changeset_id = #{Changeset.table_name}.id
@ -117,7 +121,6 @@ class Repository::Mercurial < Repository
args << path.with_leading_slash
args << "#{path.with_leading_slash.gsub(%r{[%_\\]}) { |s| "\\#{s}" }}/%" << '\\'
end
[cond.join(' AND '), *args] unless cond.empty?
end
private :latest_changesets_cond