OSDN Git Service

scm: mercurial: rewrite MercurialAdapter#info by using helper extention (#4455).
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Wed, 16 Feb 2011 04:41:30 +0000 (04:41 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Wed, 16 Feb 2011 04:41:30 +0000 (04:41 +0000)
Contributed by Yuya Nishihara.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4846 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/scm/adapters/mercurial_adapter.rb
test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb

index 6024a52..a1b9ca5 100644 (file)
@@ -79,18 +79,10 @@ module Redmine
         end
 
         def info
-          cmd = "#{self.class.sq_bin} -R #{target('')} root"
-          root_url = nil
-          shellout(cmd) do |io|
-            root_url = io.read
-          end
-          return nil if $? && $?.exitstatus != 0
-          info = Info.new({:root_url => root_url.chomp,
-                            :lastrev => revisions(nil,nil,nil,{:limit => 1}).last
-                          })
-          info
-        rescue CommandFailed
-          return nil
+          tip = summary['repository']['tip']
+          Info.new(:root_url => CGI.unescape(summary['repository']['root']),
+                   :lastrev => Revision.new(:revision => tip['revision'],
+                                            :scmid => tip['node']))
         end
 
         def summary
index ecf0f35..3d07034 100644 (file)
@@ -47,7 +47,7 @@ begin
              REPOSITORY_PATH + "//"].each do |repo|
           adp = Redmine::Scm::Adapters::MercurialAdapter.new(repo)
           assert_equal REPOSITORY_PATH, adp.info.root_url
-          assert_equal '16', adp.info.lastrev.revision
+          assert_equal '16', adp.info.lastrev.revision
           assert_equal '4cddb4e45f52',adp.info.lastrev.scmid
         end
       end