##// END OF EJS Templates
scm: git: fix changesets aren't read after clear_changesets call (#12409)...
Toshi MARUYAMA -
r10629:5d8d38aa609b
parent child
Show More
@@ -427,5 +427,9 class Repository < ActiveRecord::Base
427 connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
427 connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
428 connection.delete("DELETE FROM #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
428 connection.delete("DELETE FROM #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
429 connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}")
429 connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}")
430 clear_extra_info_of_changesets
431 end
432
433 def clear_extra_info_of_changesets
430 end
434 end
431 end
435 end
@@ -255,4 +255,14 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 v = extra_info["extra_report_last_commit"]
261 write_attribute(:extra_info, nil)
262 h = {}
263 h["extra_report_last_commit"] = v
264 merge_extra_info(h)
265 self.save
266 end
267 private :clear_extra_info_of_changesets
258 end
268 end
@@ -217,6 +217,40 class RepositoryGitTest < ActiveSupport::TestCase
217 assert_equal h1, h2
217 assert_equal h1, h2
218 end
218 end
219
219
220 def test_keep_extra_report_last_commit_in_clear_changesets
221 assert_nil @repository.extra_info
222 h = {}
223 h["extra_report_last_commit"] = 1
224 @repository.merge_extra_info(h)
225 @repository.save
226 @project.reload
227
228 assert_equal 0, @repository.changesets.count
229 @repository.fetch_changesets
230 @project.reload
231
232 assert_equal NUM_REV, @repository.changesets.count
233 @repository.send(:clear_changesets)
234 assert_equal 1, @repository.extra_info.size
235 assert_equal 1, @repository.extra_info["extra_report_last_commit"]
236 end
237
238 def test_refetch_after_clear_changesets
239 assert_nil @repository.extra_info
240 assert_equal 0, @repository.changesets.count
241 @repository.fetch_changesets
242 @project.reload
243 assert_equal NUM_REV, @repository.changesets.count
244
245 @repository.send(:clear_changesets)
246 @project.reload
247 assert_equal 0, @repository.changesets.count
248
249 @repository.fetch_changesets
250 @project.reload
251 assert_equal NUM_REV, @repository.changesets.count
252 end
253
220 def test_parents
254 def test_parents
221 assert_equal 0, @repository.changesets.count
255 assert_equal 0, @repository.changesets.count
222 @repository.fetch_changesets
256 @repository.fetch_changesets
General Comments 0
You need to be logged in to leave comments. Login now