diff --git a/app/models/changeset.rb b/app/models/changeset.rb index ff210e9b8..3d52df2bd 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -154,13 +154,14 @@ class Changeset < ActiveRecord::Base end def text_tag(ref_project=nil) - tag = if scmid? - "commit:#{scmid}" - else - "r#{revision}" - end + repo = "" if repository && repository.identifier.present? - tag = "#{repository.identifier}|#{tag}" + repo = "#{repository.identifier}|" + end + tag = if scmid? + "commit:#{repo}#{scmid}" + else + "#{repo}r#{revision}" end if ref_project && project && ref_project != project tag = "#{project.identifier}:#{tag}" diff --git a/test/unit/changeset_test.rb b/test/unit/changeset_test.rb index 0eea5f88b..d2db5e4fb 100644 --- a/test/unit/changeset_test.rb +++ b/test/unit/changeset_test.rb @@ -345,6 +345,16 @@ class ChangesetTest < ActiveSupport::TestCase assert_equal 'commit:0123456789', c.text_tag end + def test_text_tag_hash_with_repository_identifier + r = Repository::Subversion.new( + :project_id => 1, + :url => 'svn://localhost/test', + :identifier => 'documents') + c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => r) + assert_equal 'commit:documents|7234cb27', c.text_tag + assert_equal 'ecookbook:commit:documents|7234cb27', c.text_tag(Project.find(2)) + end + def test_previous changeset = Changeset.find_by_revision('3') assert_equal Changeset.find_by_revision('2'), changeset.previous