Skip to content

Commit c7fb35a

Browse files
committed
Fix the encoding issue - 'split': invalid byte sequence in UTF-8 (ArgumentError)
1 parent f495812 commit c7fb35a

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

lib/git/diff.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ def cache_stats
118118
def process_full_diff
119119
final = {}
120120
current_file = nil
121-
@full_diff.split("\n").each do |line|
121+
full_diff_utf8_encoded = @full_diff.encode("UTF-8", "binary", invalid: :replace, undef: :replace)
122+
full_diff_utf8_encoded.split("\n").each do |line|
122123
if m = /diff --git a\/(.*?) b\/(.*?)/.match(line)
123124
current_file = m[1]
124125
final[current_file] = {:patch => line, :path => current_file,

lib/git/lib.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,9 @@ def meets_required_version?
730730
private
731731

732732
def command_lines(cmd, opts = [], chdir = true, redirect = '')
733-
command(cmd, opts, chdir).split("\n")
733+
cmd_op = command(cmd, opts, chdir)
734+
op = cmd_op.encode("UTF-8", "binary", invalid: :replace, undef: :replace)
735+
op.split("\n")
734736
end
735737

736738
def command(cmd, opts = [], chdir = true, redirect = '', &block)

0 commit comments

Comments
 (0)