From d67185ec7e1aad57954633b70d71fc4c6a0ba58e Mon Sep 17 00:00:00 2001 From: Toshi MARUYAMA Date: Tue, 11 Jan 2011 16:03:01 +0000 Subject: [PATCH] scm: mercurial: use scmid as identifier (#3724). Contributed by Yuya Nishihara. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4695 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/repository/mercurial.rb | 15 +++++++++++++-- test/unit/repository_mercurial_test.rb | 7 +++++++ 2 files changed, 20 insertions(+), 2 deletions(-) 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