From fd86ddd93af958495aaceda7aa056cdb2b5fe288 Mon Sep 17 00:00:00 2001 From: David Vartanian Date: Tue, 16 Feb 2016 15:42:14 +0000 Subject: [PATCH] Fix the encoding issue - 'split': invalid byte sequence in UTF-8 (Argument Error) #190 - from up-to-date master --- lib/git/diff.rb | 3 ++- lib/git/lib.rb | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/git/diff.rb b/lib/git/diff.rb index d7c0d535..4f3119b8 100644 --- a/lib/git/diff.rb +++ b/lib/git/diff.rb @@ -124,7 +124,8 @@ def process_full_diff } final = {} current_file = nil - @full_diff.split("\n").each do |line| + full_diff_utf8_encoded = @full_diff.encode("UTF-8", "binary", :invalid => "replace", :undef => "replace") + full_diff_utf8_encoded.split("\n").each do |line| if m = /^diff --git a\/(.*?) b\/(.*?)/.match(line) current_file = m[1] final[current_file] = defaults.merge({:patch => line, :path => current_file}) diff --git a/lib/git/lib.rb b/lib/git/lib.rb index a0c25de6..c8c106ab 100644 --- a/lib/git/lib.rb +++ b/lib/git/lib.rb @@ -843,7 +843,9 @@ def meets_required_version? ENV_VARIABLE_NAMES = ['GIT_DIR', 'GIT_WORK_TREE', 'GIT_INDEX_FILE', 'GIT_SSH'] def command_lines(cmd, opts = [], chdir = true, redirect = '') - command(cmd, opts, chdir).split("\n") + cmd_op = command(cmd, opts, chdir) + op = cmd_op.encode("UTF-8", "binary", :invalid => "replace", :undef => "replace") + op.split("\n") end # Takes the current git's system ENV variables and store them.