@@ -44,10 +44,8 class Repository::Git < Repository | |||||
44 | scm_revision = scm_info.lastrev.scmid |
|
44 | scm_revision = scm_info.lastrev.scmid | |
45 |
|
45 | |||
46 | unless changesets.find_by_scmid(scm_revision) |
|
46 | unless changesets.find_by_scmid(scm_revision) | |
47 |
|
47 | scm.revisions('', db_revision, nil, :reverse => true) do |revision| | ||
48 | revisions = scm.revisions('', db_revision, nil) |
|
48 | transaction do | |
49 | transaction do |
|
|||
50 | revisions.reverse_each do |revision| |
|
|||
51 | changeset = Changeset.create(:repository => self, |
|
49 | changeset = Changeset.create(:repository => self, | |
52 | :revision => revision.identifier, |
|
50 | :revision => revision.identifier, | |
53 | :scmid => revision.scmid, |
|
51 | :scmid => revision.scmid, |
@@ -139,10 +139,10 module Redmine | |||||
139 | def revisions(path, identifier_from, identifier_to, options={}) |
|
139 | def revisions(path, identifier_from, identifier_to, options={}) | |
140 | revisions = Revisions.new |
|
140 | revisions = Revisions.new | |
141 | cmd = "#{GIT_BIN} --git-dir #{target('')} log --raw " |
|
141 | cmd = "#{GIT_BIN} --git-dir #{target('')} log --raw " | |
|
142 | cmd << " --reverse" if options[:reverse] | |||
142 | cmd << " -n #{options[:limit].to_i} " if (!options.nil?) && options[:limit] |
|
143 | cmd << " -n #{options[:limit].to_i} " if (!options.nil?) && options[:limit] | |
143 | cmd << " #{shell_quote(identifier_from + '..')} " if identifier_from |
|
144 | cmd << " #{shell_quote(identifier_from + '..')} " if identifier_from | |
144 | cmd << " #{shell_quote identifier_to} " if identifier_to |
|
145 | cmd << " #{shell_quote identifier_to} " if identifier_to | |
145 | #cmd << " HEAD " if !identifier_to |
|
|||
146 | shellout(cmd) do |io| |
|
146 | shellout(cmd) do |io| | |
147 | files=[] |
|
147 | files=[] | |
148 | changeset = {} |
|
148 | changeset = {} | |
@@ -155,13 +155,18 module Redmine | |||||
155 | value = $1 |
|
155 | value = $1 | |
156 | if (parsing_descr == 1 || parsing_descr == 2) |
|
156 | if (parsing_descr == 1 || parsing_descr == 2) | |
157 | parsing_descr = 0 |
|
157 | parsing_descr = 0 | |
158 |
revision |
|
158 | revision = Revision.new({:identifier => changeset[:commit], | |
159 |
|
|
159 | :scmid => changeset[:commit], | |
160 |
|
|
160 | :author => changeset[:author], | |
161 |
|
|
161 | :time => Time.parse(changeset[:date]), | |
162 |
|
|
162 | :message => changeset[:description], | |
163 |
|
|
163 | :paths => files | |
164 |
|
|
164 | }) | |
|
165 | if block_given? | |||
|
166 | yield revision | |||
|
167 | else | |||
|
168 | revisions << revision | |||
|
169 | end | |||
165 | changeset = {} |
|
170 | changeset = {} | |
166 | files = [] |
|
171 | files = [] | |
167 | revno = revno + 1 |
|
172 | revno = revno + 1 | |
@@ -190,14 +195,20 module Redmine | |||||
190 | end |
|
195 | end | |
191 | end |
|
196 | end | |
192 |
|
197 | |||
193 |
|
|
198 | if changeset[:commit] | |
|
199 | revision = Revision.new({:identifier => changeset[:commit], | |||
194 | :scmid => changeset[:commit], |
|
200 | :scmid => changeset[:commit], | |
195 | :author => changeset[:author], |
|
201 | :author => changeset[:author], | |
196 | :time => Time.parse(changeset[:date]), |
|
202 | :time => Time.parse(changeset[:date]), | |
197 | :message => changeset[:description], |
|
203 | :message => changeset[:description], | |
198 | :paths => files |
|
204 | :paths => files | |
199 |
}) |
|
205 | }) | |
200 |
|
206 | if block_given? | ||
|
207 | yield revision | |||
|
208 | else | |||
|
209 | revisions << revision | |||
|
210 | end | |||
|
211 | end | |||
201 | end |
|
212 | end | |
202 |
|
213 | |||
203 | return nil if $? && $?.exitstatus != 0 |
|
214 | return nil if $? && $?.exitstatus != 0 |
General Comments 0
You need to be logged in to leave comments.
Login now