Don't update issues nor log time when importing old changesets (#4823).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12199 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
0444ecca3c
commit
7b1b605ae8
|
@ -132,11 +132,14 @@ class Changeset < ActiveRecord::Base
|
|||
issue, hours = find_referenced_issue_by_id(m[0].to_i), m[2]
|
||||
if issue
|
||||
referenced_issues << issue
|
||||
# Don't update issues or log time when importing old commits
|
||||
unless repository.created_on && committed_on && committed_on < repository.created_on
|
||||
fix_issue(issue, action) if fix_keywords.include?(action)
|
||||
log_time(issue, hours) if hours && Setting.commit_logtime_enabled?
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
referenced_issues.uniq!
|
||||
self.issues = referenced_issues unless referenced_issues.empty?
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
class AddRepositoriesCreatedOn < ActiveRecord::Migration
|
||||
def up
|
||||
add_column :repositories, :created_on, :timestamp
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :repositories, :created_on
|
||||
end
|
||||
end
|
|
@ -8,6 +8,7 @@ repositories_001:
|
|||
login: ""
|
||||
type: Repository::Subversion
|
||||
is_default: true
|
||||
created_on: 2006-07-19 19:04:21 +02:00
|
||||
repositories_002:
|
||||
project_id: 2
|
||||
url: svn://localhost/test
|
||||
|
@ -17,3 +18,4 @@ repositories_002:
|
|||
login: ""
|
||||
type: Repository::Subversion
|
||||
is_default: true
|
||||
created_on: 2006-07-19 19:04:21 +02:00
|
||||
|
|
|
@ -254,6 +254,28 @@ class ChangesetTest < ActiveSupport::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_old_commits_should_not_update_issues_nor_log_time
|
||||
Setting.commit_ref_keywords = '*'
|
||||
Setting.commit_update_keywords = {'fixes , closes' => {'status_id' => '5', 'done_ratio' => '90'}}
|
||||
Setting.commit_logtime_enabled = '1'
|
||||
|
||||
repository = Project.find(1).repository
|
||||
repository.created_on = Time.now
|
||||
repository.save!
|
||||
|
||||
c = Changeset.new(:repository => repository,
|
||||
:committed_on => 1.month.ago,
|
||||
:comments => 'New commit (#2). Fixes #1 @1h',
|
||||
:revision => '12345')
|
||||
assert_no_difference 'TimeEntry.count' do
|
||||
assert c.save
|
||||
end
|
||||
assert_equal [1, 2], c.issue_ids.sort
|
||||
issue = Issue.find(1)
|
||||
assert_equal 1, issue.status_id
|
||||
assert_equal 0, issue.done_ratio
|
||||
end
|
||||
|
||||
def test_text_tag_revision
|
||||
c = Changeset.new(:revision => '520')
|
||||
assert_equal 'r520', c.text_tag
|
||||
|
|
Loading…
Reference in New Issue