@@ -415,5 +415,9 class Repository < ActiveRecord::Base | |||||
415 | connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})") |
|
415 | connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})") | |
416 | connection.delete("DELETE FROM #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})") |
|
416 | connection.delete("DELETE FROM #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})") | |
417 | connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}") |
|
417 | connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}") | |
|
418 | clear_extra_info_of_changesets | |||
|
419 | end | |||
|
420 | ||||
|
421 | def clear_extra_info_of_changesets | |||
418 | end |
|
422 | end | |
419 | end |
|
423 | end |
@@ -255,4 +255,15 class Repository::Git < Repository | |||||
255 | :order => 'committed_on DESC' |
|
255 | :order => 'committed_on DESC' | |
256 | ) |
|
256 | ) | |
257 | end |
|
257 | end | |
|
258 | ||||
|
259 | def clear_extra_info_of_changesets | |||
|
260 | return if extra_info.nil? | |||
|
261 | v = extra_info["extra_report_last_commit"] | |||
|
262 | write_attribute(:extra_info, nil) | |||
|
263 | h = {} | |||
|
264 | h["extra_report_last_commit"] = v | |||
|
265 | merge_extra_info(h) | |||
|
266 | self.save | |||
|
267 | end | |||
|
268 | private :clear_extra_info_of_changesets | |||
258 | end |
|
269 | end |
@@ -4,6 +4,10 Redmine - project management software | |||||
4 | Copyright (C) 2006-2012 Jean-Philippe Lang |
|
4 | Copyright (C) 2006-2012 Jean-Philippe Lang | |
5 | http://www.redmine.org/ |
|
5 | http://www.redmine.org/ | |
6 |
|
6 | |||
|
7 | == TBD v1.4.6 | |||
|
8 | ||||
|
9 | * Defect #12409: Git: changesets aren't read after clear_changesets call | |||
|
10 | ||||
7 | == 2012-11-17 v1.4.5 |
|
11 | == 2012-11-17 v1.4.5 | |
8 |
|
12 | |||
9 | * Defect #10818: Running rake in test environment causes exception |
|
13 | * Defect #10818: Running rake in test environment causes exception |
@@ -212,6 +212,40 class RepositoryGitTest < ActiveSupport::TestCase | |||||
212 | assert_equal h1, h2 |
|
212 | assert_equal h1, h2 | |
213 | end |
|
213 | end | |
214 |
|
214 | |||
|
215 | def test_keep_extra_report_last_commit_in_clear_changesets | |||
|
216 | assert_nil @repository.extra_info | |||
|
217 | h = {} | |||
|
218 | h["extra_report_last_commit"] = 1 | |||
|
219 | @repository.merge_extra_info(h) | |||
|
220 | @repository.save | |||
|
221 | @project.reload | |||
|
222 | ||||
|
223 | assert_equal 0, @repository.changesets.count | |||
|
224 | @repository.fetch_changesets | |||
|
225 | @project.reload | |||
|
226 | ||||
|
227 | assert_equal NUM_REV, @repository.changesets.count | |||
|
228 | @repository.send(:clear_changesets) | |||
|
229 | assert_equal 1, @repository.extra_info.size | |||
|
230 | assert_equal 1, @repository.extra_info["extra_report_last_commit"] | |||
|
231 | end | |||
|
232 | ||||
|
233 | def test_refetch_after_clear_changesets | |||
|
234 | assert_nil @repository.extra_info | |||
|
235 | assert_equal 0, @repository.changesets.count | |||
|
236 | @repository.fetch_changesets | |||
|
237 | @project.reload | |||
|
238 | assert_equal NUM_REV, @repository.changesets.count | |||
|
239 | ||||
|
240 | @repository.send(:clear_changesets) | |||
|
241 | @project.reload | |||
|
242 | assert_equal 0, @repository.changesets.count | |||
|
243 | ||||
|
244 | @repository.fetch_changesets | |||
|
245 | @project.reload | |||
|
246 | assert_equal NUM_REV, @repository.changesets.count | |||
|
247 | end | |||
|
248 | ||||
215 | def test_parents |
|
249 | def test_parents | |
216 | assert_equal 0, @repository.changesets.count |
|
250 | assert_equal 0, @repository.changesets.count | |
217 | @repository.fetch_changesets |
|
251 | @repository.fetch_changesets |
General Comments 0
You need to be logged in to leave comments.
Login now