summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/project.rb2
-rw-r--r--test/unit/project_test.rb16
2 files changed, 17 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index e3889ff23..da58c96db 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -776,7 +776,7 @@ class Project < ActiveRecord::Base
new_issue.copy_from(issue, :subtasks => false)
new_issue.project = self
# Reassign fixed_versions by name, since names are unique per project
- if issue.fixed_version
+ if issue.fixed_version && issue.fixed_version.project == project
new_issue.fixed_version = self.versions.detect {|v| v.name == issue.fixed_version.name}
end
# Reassign the category by name, since names are unique per project
diff --git a/test/unit/project_test.rb b/test/unit/project_test.rb
index 1171c5e93..fac2307ed 100644
--- a/test/unit/project_test.rb
+++ b/test/unit/project_test.rb
@@ -844,6 +844,22 @@ class ProjectTest < ActiveSupport::TestCase
assert_not_equal assigned_version.id, copied_issue.fixed_version.id # Different record
end
+ should "keep target shared versions from other project" do
+ assigned_version = Version.generate!(:name => "Assigned Issues", :status => 'open', :project_id => 1, :sharing => 'system')
+ issue = Issue.generate_for_project!(@source_project,
+ :fixed_version => assigned_version,
+ :subject => "keep target shared versions",
+ :tracker_id => 1,
+ :project_id => @source_project.id)
+
+ assert @project.copy(@source_project)
+ @project.reload
+ copied_issue = @project.issues.first(:conditions => {:subject => "keep target shared versions"})
+
+ assert copied_issue
+ assert_equal assigned_version, copied_issue.fixed_version
+ end
+
should "copy issue relations" do
Setting.cross_project_issue_relations = '1'