From 31f00a9ff836e7d1afcdb3433c5549bd7f17f5a8 Mon Sep 17 00:00:00 2001 From: Elijah Newren Date: Sat, 6 Jun 2020 10:23:22 -0700 Subject: [PATCH] filter-repo: avoid applying --replace-text to binary files --replace-text is meant to replace _text_ throughout the repository, not binary data. Use the same scheme as the lint-history script uses to avoid applying the changes to binary blob data. Reported-by: Tobias Gruetzmacher Signed-off-by: Elijah Newren --- git-filter-repo | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/git-filter-repo b/git-filter-repo index 51d7346..8e73004 100755 --- a/git-filter-repo +++ b/git-filter-repo @@ -3231,7 +3231,8 @@ class RepoFilter(object): if blob.original_id in self._args.strip_blobs_with_ids: blob.skip() - if self._args.replace_text: + if self._args.replace_text and \ + not any(x == b"0" for x in blob.data[0:8192]): for literal, replacement in self._args.replace_text['literals']: blob.data = blob.data.replace(literal, replacement) for regex, replacement in self._args.replace_text['regexes']: