To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / lib / redmine / scm / adapters / mercurial_adapter.rb.rej @ 441:cbce1fd3b1b7

History | View | Annotate | Download (2.28 KB)

1
--- lib/redmine/scm/adapters/mercurial_adapter.rb
2
+++ lib/redmine/scm/adapters/mercurial_adapter.rb
3
@@ -67,19 +67,17 @@
4
         end
5
         
6
         def info
7
-          cmd = "#{HG_BIN} -R #{target('')} root"
8
-          root_url = nil
9
-          shellout(cmd) do |io|
10
-            root_url = io.gets
11
-          end
12
-          return nil if $? && $?.exitstatus != 0
13
-          info = Info.new({:root_url => root_url.chomp,
14
-                            :lastrev => revisions(nil,nil,nil,{:limit => 1}).last
15
-                          })
16
-          info
17
-        rescue CommandFailed
18
-          return nil
19
+          tip = summary['tip'].first
20
+          Info.new(:root_url => summary['root'].first['path'],
21
+                   :lastrev => Revision.new(:identifier => tip['rev'].to_i,
22
+                                            :revision => tip['rev'],
23
+                                            :scmid => tip['node']))
24
         end
25
+
26
+        def summary
27
+          @summary ||= fetchg 'rhsummary'
28
+        end
29
+        private :summary
30
         
31
         def entries(path=nil, identifier=nil)
32
           path ||= ''
33
--- lib/redmine/scm/adapters/mercurial_adapter.rb
34
+++ lib/redmine/scm/adapters/mercurial_adapter.rb
35
@@ -74,6 +74,16 @@
36
                                             :scmid => tip['node']))
37
         end
38
 
39
+        def tags
40
+          summary['tags'].map { |e| e['name'] }
41
+        end
42
+
43
+        # Returns map of {'tag' => 'nodeid', ...}
44
+        def tagmap
45
+          alist = summary['tags'].map { |e| e.values_at('name', 'node') }
46
+          Hash[*alist.flatten]
47
+        end
48
+
49
         def summary
50
           @summary ||= fetchg 'rhsummary'
51
         end
52
--- lib/redmine/scm/adapters/mercurial_adapter.rb
53
+++ lib/redmine/scm/adapters/mercurial_adapter.rb
54
@@ -84,6 +84,19 @@
55
           Hash[*alist.flatten]
56
         end
57
 
58
+        def branches
59
+          summary['branches'].map { |e| e['name'] }
60
+        end
61
+
62
+        # Returns map of {'branch' => 'nodeid', ...}
63
+        def branchmap
64
+          alist = summary['branches'].map { |e| e.values_at('name', 'node') }
65
+          Hash[*alist.flatten]
66
+        end
67
+
68
+        # NOTE: DO NOT IMPLEMENT default_branch !!
69
+        # It's used as the default revision by RepositoriesController.
70
+
71
         def summary
72
           @summary ||= fetchg 'rhsummary'
73
         end