From b8ebda97ddc0f777c5758eb1be3966a9c3f6b04d Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Mon, 8 Jun 2020 19:51:21 -0700 Subject: [PATCH] contrib: avoid applying --replace-text to binary files in bfg-ish Signed-off-by: Elijah Newren --- contrib/filter-repo-demos/bfg-ish | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/contrib/filter-repo-demos/bfg-ish b/contrib/filter-repo-demos/bfg-ish index d7d1733..29ae8f1 100755 --- a/contrib/filter-repo-demos/bfg-ish +++ b/contrib/filter-repo-demos/bfg-ish @@ -248,10 +248,11 @@ class BFG_ish: # FIXME: This next line assumes the file fits in memory; though the way # fr.Blob works we kind of have that assumption baked in elsewhere too... contents = self.cat_file_proc.stdout.read(int(objsize)) - for literal, replacement in self.replacement_rules['literals']: - contents = contents.replace(literal, replacement) - for regex, replacement in self.replacement_rules['regexes']: - contents = regex.sub(replacement, contents) + if not any(x == b"0" for x in contents[0:8192]): # not binaries + for literal, replacement in self.replacement_rules['literals']: + contents = contents.replace(literal, replacement) + for regex, replacement in self.replacement_rules['regexes']: + contents = regex.sub(replacement, contents) self.cat_file_proc.stdout.read(1) # Read trailing newline blob = fr.Blob(contents)