From 8b97d66913a12463b98c306f80dc5b48e3981187 Mon Sep 17 00:00:00 2001
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Mon, 7 Nov 2016 02:54:27 +0000
Subject: [PATCH] vcs.rb: use chdir option

* tool/vcs.rb (export_changelog): for old git, use chdir option
  instead of git -C option, and set language environmets to C.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
---
 tool/vcs.rb | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/tool/vcs.rb b/tool/vcs.rb
index 97ff155914..140dcb72ec 100644
--- a/tool/vcs.rb
+++ b/tool/vcs.rb
@@ -77,6 +77,16 @@ if RUBY_VERSION < "2.0"
       end
     end
   end
+else
+  module DebugPOpen
+    refine IO.singleton_class do
+      def popen(*args)
+        STDERR.puts args.inspect if $DEBUG
+        super
+      end
+    end
+  end
+  using DebugPOpen
 end
 
 class VCS
@@ -295,7 +305,8 @@ class VCS
     end
 
     def export_changelog(srcdir, url, from, to, path)
-      IO.popen({'TZ' => 'JST-9'}, "svn log -r#{to}:#{from} #{url}") do |r|
+      IO.popen({'TZ' => 'JST-9', 'LANG' => 'C', 'LC_ALL' => 'C'},
+               %W"svn log -r#{to}:#{from} #{url}") do |r|
         open(path, 'w') do |w|
           IO.copy_stream(r, w)
         end
@@ -378,9 +389,15 @@ class VCS
     end
 
     def export_changelog(srcdir, url, from, to, path)
-      from = `git -C #{srcdir} log -n1 --format=format:%H --grep='^ *git-svn-id: .*@#{from} '`
-      to = `git -C #{srcdir} log -n1 --format=format:%H --grep='^ *git-svn-id: .*@#{to} '`
-      IO.popen({'TZ' => 'JST-9'}, "git -C #{srcdir} log --date=iso-local --topo-order #{from}..#{to}") do |r|
+      from = IO.pread(%W"git log -n1 --format=format:%H" +
+                      ["--grep=^ *git-svn-id: .*@#{from} "],
+                      :chdir => srcdir)
+      to &&= IO.pread(%W"git log -n1 --format=format:%H" +
+                      ["--grep=^ *git-svn-id: .*@#{to} "],
+                      :chdir => srcdir)
+      IO.popen({'TZ' => 'JST-9', 'LANG' => 'C', 'LC_ALL' => 'C'},
+               %W"git log --date=iso-local --topo-order #{from}..#{to}",
+               :chdir => srcdir) do |r|
         open(path, 'w') do |w|
           IO.copy_stream(r, w)
         end