]> source.dussan.org Git - redmine.git/commitdiff
scm: mercurial: use scmid as identifier (#3724).
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Tue, 11 Jan 2011 16:03:01 +0000 (16:03 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Tue, 11 Jan 2011 16:03:01 +0000 (16:03 +0000)
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
test/unit/repository_mercurial_test.rb

index 8e2ed4517e5294b26a98b0a4aa2e6603be84da71..2157f9d790b88c9e731ba8a72a7711b001bc16f6 100644 (file)
@@ -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
index 8cbd00a8498edce3eca67d244856feed4ab53ca0..09798edab937d4dccea892bfb6051a41eb33056b 100644 (file)
@@ -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