diff --git a/app/models/repository/mercurial.rb b/app/models/repository/mercurial.rb index 8e2ed4517..2157f9d79 100644 --- a/app/models/repository/mercurial.rb +++ b/app/models/repository/mercurial.rb @@ -27,11 +27,22 @@ class Repository::Mercurial < Repository def scm_adapter Redmine::Scm::Adapters::MercurialAdapter end - + def self.scm_name 'Mercurial' end - + + # Returns the readable identifier for the given mercurial changeset + def self.format_changeset_identifier(changeset) + # "#{changeset.revision}:#{changeset.scmid}" + changeset.revision + end + + # Returns the identifier for the given Mercurial changeset + def self.changeset_identifier(changeset) + changeset.scmid + end + def entries(path=nil, identifier=nil) entries=scm.entries(path, identifier) if entries diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb index 8cbd00a84..09798edab 100644 --- a/test/unit/repository_mercurial_test.rb +++ b/test/unit/repository_mercurial_test.rb @@ -139,6 +139,13 @@ class RepositoryMercurialTest < ActiveSupport::TestCase @repository.reload assert_nil @repository.find_changeset_by_name('100000') end + + def test_identifier + @repository.fetch_changesets + @repository.reload + c = @repository.changesets.find_by_revision('2') + assert_equal c.scmid, c.identifier + end else puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!" def test_fake; assert true end