view lib/redmine/scm/adapters/mercurial_adapter.rb.rej @ 874:12771bc38f20 feature_123

Close obsolete branch feature_123
author Chris Cannam
date Sat, 02 Apr 2011 09:37:51 +0100
parents 1d32c0a0efbf
children
line wrap: on
line source
--- lib/redmine/scm/adapters/mercurial_adapter.rb
+++ lib/redmine/scm/adapters/mercurial_adapter.rb
@@ -67,19 +67,17 @@
         end
         
         def info
-          cmd = "#{HG_BIN} -R #{target('')} root"
-          root_url = nil
-          shellout(cmd) do |io|
-            root_url = io.gets
-          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['tip'].first
+          Info.new(:root_url => summary['root'].first['path'],
+                   :lastrev => Revision.new(:identifier => tip['rev'].to_i,
+                                            :revision => tip['rev'],
+                                            :scmid => tip['node']))
         end
+
+        def summary
+          @summary ||= fetchg 'rhsummary'
+        end
+        private :summary
         
         def entries(path=nil, identifier=nil)
           path ||= ''
--- lib/redmine/scm/adapters/mercurial_adapter.rb
+++ lib/redmine/scm/adapters/mercurial_adapter.rb
@@ -74,6 +74,16 @@
                                             :scmid => tip['node']))
         end
 
+        def tags
+          summary['tags'].map { |e| e['name'] }
+        end
+
+        # Returns map of {'tag' => 'nodeid', ...}
+        def tagmap
+          alist = summary['tags'].map { |e| e.values_at('name', 'node') }
+          Hash[*alist.flatten]
+        end
+
         def summary
           @summary ||= fetchg 'rhsummary'
         end
--- lib/redmine/scm/adapters/mercurial_adapter.rb
+++ lib/redmine/scm/adapters/mercurial_adapter.rb
@@ -84,6 +84,19 @@
           Hash[*alist.flatten]
         end
 
+        def branches
+          summary['branches'].map { |e| e['name'] }
+        end
+
+        # Returns map of {'branch' => 'nodeid', ...}
+        def branchmap
+          alist = summary['branches'].map { |e| e.values_at('name', 'node') }
+          Hash[*alist.flatten]
+        end
+
+        # NOTE: DO NOT IMPLEMENT default_branch !!
+        # It's used as the default revision by RepositoriesController.
+
         def summary
           @summary ||= fetchg 'rhsummary'
         end