]> source.dussan.org Git - redmine.git/commitdiff
scm: mercurial: add new "nodes_in_branch()" method in adapter (#7246, #4455).
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Sun, 13 Mar 2011 00:48:07 +0000 (00:48 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Sun, 13 Mar 2011 00:48:07 +0000 (00:48 +0000)
For latest changesets supporting named branch.

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

lib/redmine/scm/adapters/mercurial_adapter.rb

index 6a2613fcfe1e7ec4d8bc22e1d4b099aa3490ac73..df021ea1c7c8d28e2b96631f3832d5a22ec75c16 100644 (file)
@@ -219,6 +219,17 @@ module Redmine
           self
         end
 
+        # Returns list of nodes in the specified branch
+        def nodes_in_branch(branch, path=nil, identifier_from=nil, identifier_to=nil, options={})
+          p1 = scm_iconv(@path_encoding, 'UTF-8', path)
+          hg_args = ['rhlog', '--template', '{node|short}\n', '--rhbranch', CGI.escape(branch)]
+          hg_args << '--from' << CGI.escape(hgrev(identifier_from))
+          hg_args << '--to'   << CGI.escape(hgrev(identifier_to))
+          hg_args << '--limit' << options[:limit] if options[:limit]
+          hg_args << CGI.escape(hgtarget(p1)) unless path.blank?
+          hg(*hg_args) { |io| io.readlines.map { |e| e.chomp } }
+        end
+
         def diff(path, identifier_from, identifier_to=nil)
           hg_args = %w|rhdiff|
           if identifier_to