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,8 +132,11 @@ class Changeset < ActiveRecord::Base
|
||||||
issue, hours = find_referenced_issue_by_id(m[0].to_i), m[2]
|
issue, hours = find_referenced_issue_by_id(m[0].to_i), m[2]
|
||||||
if issue
|
if issue
|
||||||
referenced_issues << issue
|
referenced_issues << issue
|
||||||
fix_issue(issue, action) if fix_keywords.include?(action)
|
# Don't update issues or log time when importing old commits
|
||||||
log_time(issue, hours) if hours && Setting.commit_logtime_enabled?
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -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: ""
|
login: ""
|
||||||
type: Repository::Subversion
|
type: Repository::Subversion
|
||||||
is_default: true
|
is_default: true
|
||||||
|
created_on: 2006-07-19 19:04:21 +02:00
|
||||||
repositories_002:
|
repositories_002:
|
||||||
project_id: 2
|
project_id: 2
|
||||||
url: svn://localhost/test
|
url: svn://localhost/test
|
||||||
|
@ -17,3 +18,4 @@ repositories_002:
|
||||||
login: ""
|
login: ""
|
||||||
type: Repository::Subversion
|
type: Repository::Subversion
|
||||||
is_default: true
|
is_default: true
|
||||||
|
created_on: 2006-07-19 19:04:21 +02:00
|
||||||
|
|
|
@ -254,6 +254,28 @@ class ChangesetTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
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
|
def test_text_tag_revision
|
||||||
c = Changeset.new(:revision => '520')
|
c = Changeset.new(:revision => '520')
|
||||||
assert_equal 'r520', c.text_tag
|
assert_equal 'r520', c.text_tag
|
||||||
|
|
Loading…
Reference in New Issue