git_log_from_db.patch

Marc Mengel, 2010-10-06 18:12

Download (1.88 KB)

View differences:

app/models/repository/git.rb (working copy)
28 28
  def self.scm_name
29 29
    'Git'
30 30
  end
31
  
32
  def entries(path=nil, identifier=nil)
33
    entries=scm.entries(path, identifier)
34
    if entries
35
      entries.each do |entry|
36
        # Search the DB for the entry's last change
37
        change = changes.find(:first, :conditions => ["path = ? OR path LIKE ?", entry.path, "#{entry.path}/%"], :order => "changeset_id DESC")
38
        if change
39
          entry.lastrev.identifier = change.changeset.revision
40
          entry.lastrev.name = change.changeset.revision
41
          entry.lastrev.author = change.changeset.committer
42
          entry.lastrev.revision = change.revision
43
          entry.lastrev.time = change.changeset.committed_on
44
        end
45
      end
46
    end
47
    entries
48
  end
31 49

  
32 50
  def changesets_for_path(path)
33 51
    Change.find(:all, :include => {:changeset => :user}, 
lib/redmine/scm/adapters/git_adapter.rb (working copy)
125 125
                                       :path => (path.empty? ? name : "#{path}/#{name}"),
126 126
                                       :kind => ((type == "tree") ? 'dir' : 'file'),
127 127
                                       :size => ((type == "tree") ? nil : size),
128
                                       :lastrev => get_rev(identifier,(path.empty? ? name : "#{path}/#{name}")) 
128
                                       :lastrev => Revision.new
129 129
                                                                  
130 130
                                     }) unless entries.detect{|entry| entry.name == name}
131 131
              end