Mercurial > hg > soundsoftware-site
view lib/redmine/scm/adapters/mercurial_adapter.rb.rej @ 799:9f2bc483b7ec feature_14
Fixes the html injection problem in the client side (Bug #341).
author | luisf <luis.figueira@eecs.qmul.ac.uk> |
---|---|
date | Mon, 21 Nov 2011 17:17:25 +0000 |
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