OSDN Git Service

scm: cvs: use scm_cmd() for diff.
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Mon, 11 Apr 2011 05:53:35 +0000 (05:53 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Mon, 11 Apr 2011 05:53:35 +0000 (05:53 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5393 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/scm/adapters/cvs_adapter.rb

index d85c9e2..de8f65e 100644 (file)
@@ -275,15 +275,19 @@ module Redmine
           logger.debug "<cvs> diff path:'#{path}'" +
               ",identifier_from #{identifier_from}, identifier_to #{identifier_to}"
           path_with_project="#{url}#{with_leading_slash(path)}"
-          cmd = "#{self.class.sq_bin} -d #{shell_quote root_url} rdiff -u -r#{identifier_to} -r#{identifier_from} #{shell_quote path_with_project}"
+          cmd_args = %w|rdiff -u|
+          cmd_args << "-r#{identifier_to}"
+          cmd_args << "-r#{identifier_from}"
+          cmd_args << path_with_project
           diff = []
-          shellout(cmd) do |io|
+          scm_cmd(*cmd_args) do |io|
             io.each_line do |line|
               diff << line
             end
           end
-          return nil if $? && $?.exitstatus != 0
           diff
+        rescue ScmCommandAborted
+          nil
         end
 
         def cat(path, identifier=nil)