Merged r10856 and r10857 from trunk to 1.4-stable (#12409)
scm: git: fix changesets aren't read after clear_changesets call. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.4-stable@10859 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -415,5 +415,9 @@ class Repository < ActiveRecord::Base
|
|||||||
connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
|
connection.delete("DELETE FROM #{ci} WHERE #{ci}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
|
||||||
connection.delete("DELETE FROM #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
|
connection.delete("DELETE FROM #{cp} WHERE #{cp}.changeset_id IN (SELECT #{cs}.id FROM #{cs} WHERE #{cs}.repository_id = #{id})")
|
||||||
connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}")
|
connection.delete("DELETE FROM #{cs} WHERE #{cs}.repository_id = #{id}")
|
||||||
|
clear_extra_info_of_changesets
|
||||||
|
end
|
||||||
|
|
||||||
|
def clear_extra_info_of_changesets
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -255,4 +255,15 @@ class Repository::Git < Repository
|
|||||||
:order => 'committed_on DESC'
|
:order => 'committed_on DESC'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def clear_extra_info_of_changesets
|
||||||
|
return if extra_info.nil?
|
||||||
|
v = extra_info["extra_report_last_commit"]
|
||||||
|
write_attribute(:extra_info, nil)
|
||||||
|
h = {}
|
||||||
|
h["extra_report_last_commit"] = v
|
||||||
|
merge_extra_info(h)
|
||||||
|
self.save
|
||||||
|
end
|
||||||
|
private :clear_extra_info_of_changesets
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -4,6 +4,10 @@ Redmine - project management software
|
|||||||
Copyright (C) 2006-2012 Jean-Philippe Lang
|
Copyright (C) 2006-2012 Jean-Philippe Lang
|
||||||
http://www.redmine.org/
|
http://www.redmine.org/
|
||||||
|
|
||||||
|
== TBD v1.4.6
|
||||||
|
|
||||||
|
* Defect #12409: Git: changesets aren't read after clear_changesets call
|
||||||
|
|
||||||
== 2012-11-17 v1.4.5
|
== 2012-11-17 v1.4.5
|
||||||
|
|
||||||
* Defect #10818: Running rake in test environment causes exception
|
* Defect #10818: Running rake in test environment causes exception
|
||||||
|
|||||||
@@ -212,6 +212,40 @@ class RepositoryGitTest < ActiveSupport::TestCase
|
|||||||
assert_equal h1, h2
|
assert_equal h1, h2
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_keep_extra_report_last_commit_in_clear_changesets
|
||||||
|
assert_nil @repository.extra_info
|
||||||
|
h = {}
|
||||||
|
h["extra_report_last_commit"] = 1
|
||||||
|
@repository.merge_extra_info(h)
|
||||||
|
@repository.save
|
||||||
|
@project.reload
|
||||||
|
|
||||||
|
assert_equal 0, @repository.changesets.count
|
||||||
|
@repository.fetch_changesets
|
||||||
|
@project.reload
|
||||||
|
|
||||||
|
assert_equal NUM_REV, @repository.changesets.count
|
||||||
|
@repository.send(:clear_changesets)
|
||||||
|
assert_equal 1, @repository.extra_info.size
|
||||||
|
assert_equal 1, @repository.extra_info["extra_report_last_commit"]
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_refetch_after_clear_changesets
|
||||||
|
assert_nil @repository.extra_info
|
||||||
|
assert_equal 0, @repository.changesets.count
|
||||||
|
@repository.fetch_changesets
|
||||||
|
@project.reload
|
||||||
|
assert_equal NUM_REV, @repository.changesets.count
|
||||||
|
|
||||||
|
@repository.send(:clear_changesets)
|
||||||
|
@project.reload
|
||||||
|
assert_equal 0, @repository.changesets.count
|
||||||
|
|
||||||
|
@repository.fetch_changesets
|
||||||
|
@project.reload
|
||||||
|
assert_equal NUM_REV, @repository.changesets.count
|
||||||
|
end
|
||||||
|
|
||||||
def test_parents
|
def test_parents
|
||||||
assert_equal 0, @repository.changesets.count
|
assert_equal 0, @repository.changesets.count
|
||||||
@repository.fetch_changesets
|
@repository.fetch_changesets
|
||||||
|
|||||||
Reference in New Issue
Block a user