##// END OF EJS Templates
Fixed that changesets parents associations are not deleted when deleting a repository....
Jean-Philippe Lang -
r8727:8f921216067c
parent child
Show More
@@ -403,10 +403,16 class Repository < ActiveRecord::Base
403
403
404 private
404 private
405
405
406 # Deletes repository data
406 def clear_changesets
407 def clear_changesets
407 cs, ch, ci = Changeset.table_name, Change.table_name, "#{table_name_prefix}changesets_issues#{table_name_suffix}"
408 cs = Changeset.table_name
409 ch = Change.table_name
410 ci = "#{table_name_prefix}changesets_issues#{table_name_suffix}"
411 cp = "#{table_name_prefix}changeset_parents#{table_name_suffix}"
412
408 connection.delete("DELETE FROM #{ch} WHERE #{ch}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
413 connection.delete("DELETE FROM #{ch} WHERE #{ch}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
409 connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
414 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 #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
410 connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}")
416 connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}")
411 end
417 end
412 end
418 end
@@ -74,6 +74,15 class RepositoryTest < ActiveSupport::TestCase
74 end
74 end
75 end
75 end
76
76
77 def test_destroy_should_delete_parents_associations
78 changeset = Changeset.find(102)
79 changeset.parents = Changeset.find_all_by_id([100, 101])
80
81 assert_difference 'Changeset.connection.select_all("select * from changeset_parents").size', -2 do
82 Repository.find(10).destroy
83 end
84 end
85
77 def test_should_not_create_with_disabled_scm
86 def test_should_not_create_with_disabled_scm
78 # disable Subversion
87 # disable Subversion
79 with_settings :enabled_scm => ['Darcs', 'Git'] do
88 with_settings :enabled_scm => ['Darcs', 'Git'] do
General Comments 0
You need to be logged in to leave comments. Login now